質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

Q&A

解決済

2回答

579閲覧

レスポンシブデザイン作成時に、PC版からCSSをスマホ版にコピーする際のコピーのおすすめ方法

opensee

総合スコア6

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

0グッド

0クリップ

投稿2023/01/18 04:02

編集2023/01/18 06:31

こんにちは。
表題の件で質問させていただきます。

HTMLコーダーの勉強をしているのですが、題名の通りおすすめのコピー方法を教えていただきたいです。
詳細を書きます。
まず前提としてPC版のレイアウトを先にコーディングします。
PC版が完成し、そのままスマホ版の作成に取り掛かるのですが、この時にPC版のCSSを
①そのまま全コピペする。⇨必要な箇所を変更していく
②class名やid名のみコピペする。⇨必要な箇所を記述していく
③その他方法

どれが一番効率が良いでしょうか?
自分は①、②どちらも実験的にやってみたのですがそもそもコーディングが遅いのでどちらが良いか分かりませんでした。

コーディングをする際の常識などあれば教えていただきたいです。

以下追記です。
現在作成しているページは外部へ出せないのでほんの一部分のみ抜粋です。
このような形でCSSは書いています。

css

1@charset "UTF-8"; 2 3@font-face { 4 font-family: "NotoSansJP"; 5 src: url("../font/Noto_Sans_JP/NotoSansJP-Medium.otf") format("opentype"); 6 font-weight: normal; 7 } 8@font-face { 9 font-family: "poppins"; 10 src: url("../font/Poppins/Poppins-ExtraBold.ttf") format("truetype"); 11 font-weight: normal; 12 } 13*{ 14 margin: 0; 15 padding: 0; 16} 17body{ 18 line-height: 1.15; 19 font-family: "NotoSansJP"; 20} 21header{ 22 background-image: url("../img/main_pc.png"); 23 background-size: cover; 24 width: 100%; 25 height: 50.0732vw; 26} 27h1{ 28 margin: 0; 29 background: linear-gradient(transparent 69%, #F940BC 0%); 30 padding-bottom: 0.86vw; 31 font-size: 3.2943vw; 32 width: 40.5vw; 33 text-shadow: 3px 0 #fff; 34} 35.header__content{ 36 padding: 7vw 0 0 52vw; 37 font-family: "NotoSansJP"; 38} 39@media screen and (max-width: 767px) { 40 *{ 41 margin: 0; 42 padding: 0; 43 } 44 body{ 45 line-height: 1.15; 46 } 47 header{ 48 background-image: url("../img/main_sp.png"); 49 background-size: cover; 50 width: 100%; 51 height: 111.2vw; 52 } 53 h1{ 54 margin: 0; 55 background: linear-gradient(transparent 71%, #F940BC 0%); 56 padding-bottom: 1.5vw; 57 font-size: 5.0667vw; 58 width: 62.5vw; 59 text-shadow: 4px 0 #fff; 60 } 61 .header__content{ 62 padding: 23vw 0 0 37vw; 63 font-family: "NotoSansJP";

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

penguin520

2023/01/18 04:11

現在のPC版とおっしゃっているページのHTMLとCSSのサンプルを掲載することは可能ですか? >コーディングをする際の常識 コピペを多用すると、エラーの原因を踏むので、あまりコピペは使いません。
maisumakun

2023/01/18 04:43

> 自分は①、②どちらも実験的にやってみたのですが レスポンシブなのにコピペする必要が生じた背景はどのようなものでしょうか?
opensee

2023/01/18 06:34

すみませんこちらの回答に気づいていませんでした。 cssのサンプル載せたものを更新しています。 ちなみに背景は今やっているブートキャンプでそう教わったためです。 初心者中の初心者です。
penguin520

2023/01/18 07:15

初心者中の初心者にしては、綺麗に描いたCSSですね。センスはあると思うので頑張ってください。一緒に仕事することになったら宜しくです。
guest

回答2

0

ベストアンサー

総じて要件によりますが、
現代では、①、②の方法をとることはほとんどありません。

ではどうするかというと、
多く採られている手法としては、
ベースのCSSの後行に、
メディアクエリにて上書きのスタイルを記述する手法です。
こうすれば、ファイル数が増えづらく、メンテナンスがしやすいですし、
エラーが起きた時の原因をしぼりやすくなります。

投稿2023/01/18 04:34

miyabi_takatsuk

総合スコア9528

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

opensee

2023/01/18 05:05

ご回答ありがとうございます。 メディアクエリは使用していますが、そのままコピペではないということですか? 自分はpc版とスマホ版完全に分けて作成しています。 @media~ より下は全てスマホ用 上は全てpc用としています。 こうするのではなく、一つ一つの要素に@media〜を仕込んでいくということでしょうか?
penguin520

2023/01/18 05:32

横やり失礼します。 どうなんでしょう。そもそも、PC版とおっしゃっていますが、ページをつくる時点で、PCでもモバイルでも表示できる構造で造るので、完全に分けることをしてないです。どうしても、モバイル表示の時だけって場合にメディアクエリを使います。
miyabi_takatsuk

2023/01/18 05:46

openseeさん > これ以上の話は、openseeさんが書いている現在のソースコードを見てみないとなんともいえません。 @media内に、まとめて、 スマホ用(スマホベースなら、PC用)の上書きスタイルを記載することはあるかと思いますが、 "完全に分ける"ことはほとんどありません。 (完全に分けると、HTMLをPC用とスマホ用に要素を分けることになり、SEO的にもあまり良くない) あくまで"スタイルの上書きが必要なセレクタのみ"のスタイルを上書きするよう記載します。
opensee

2023/01/18 06:31

追記させていただきました。 HTMLは一つのみです。
penguin520

2023/01/18 07:09

1個コードを別回答で載せますね。
miyabi_takatsuk

2023/01/18 07:10

追記されたCSSは、 ①の方法でしょうか? PCとスマホで同じ記述が入っている箇所が多いので、無駄が多いように思います。 かと言って、②では、そもそもスマホ用に改めてスタイリングが必要ではないセレクタもコピーすることになるでしょう。 やはり、スマホでは上書きスタイルが必要、というセレクタのみ、 メディアクエリ内に上書きスタイルを記載する、が、最適かと思われます。
opensee

2023/01/18 08:32

miyabi_takatsukさん このコードは①です。 デベロッパーツールを使ってスマホ用カンプに合わせて数値を変えたり、新たにcssを記述したりしながら作りました。 被っているコードは見つけたら消していくようにしています。(消し忘れもよくあります) 今取り組んでいるページが勉強用ということもありほとんどの要素で変更が必要になります。 そのためコピペが当たり前だと思っていました。 要件によるとはこのことですかね。 ちなみに私のこのコードのような形は普通ではないですか? いろんなサイトのソースコードを見ると@media~の記述が至る所にあるように見えます。(自分のように一か所にまとめるのではなく、セレクタの終わりに書き足すように@mediaが記載されています。(全体を通して@mediaの記述が多いような。。)
miyabi_takatsuk

2023/01/18 08:49

総じて要件によります。 都度都度@mediaを記載するのは、 何かしら理由があるかと思います。 (チーム開発で、すぐ変更点がわかるように、スタイルの直後行に記載するルールがある、など) 上記のような理由がなければ、記載者のただの好みになるかと思います。 (そっちのほうがなんとなく良い、など) 私は、なるたけ同じ記載は二度としないように、と拘ってコーディングするため、まとめて記載することが多いです。 が、それでも、要件や、ルールによっては、都度都度記載する事もあります。
opensee

2023/01/18 09:09

やはり現場でルールがあるのですね。 今受けているブートキャンプも”答えはない”とよく言われます。 悩んでいてもしょうがないのでまずは基本をおさえつつ慣れてきたらいろんなことをやっていきたいと思います。 少しスッキリしました。 長い時間ありがとうございました!
guest

0

ベストアンサーの回答へのコメントから派生しての回答になります。
どこの会社がバレそうで怖いですが、うちの会社のホームページの、わたしが書いたCSSはこんな感じです。

CSS

1* { 2 margin: 0; 3 } 4 5 body { 6 margin: 0; 7 } 8 9 p { 10 padding: 10px; 11 } 12 13 div#m2 { 14 background-color: #FFFFFF; 15 width: 80%; 16 margin: 0 auto; 17 display: none; 18 } 19 20 @media screen and (max-width: 1000px) { 21 h1 { 22 font-size: 30px; 23 } 24 25 h2 { 26 font-size: 24px; 27 } 28 29 h2 { 30 font-size: 22px; 31 } 32 33 p { 34 font-size: 20px; 35 } 36 37 img.none-img { 38 display: none; 39 } 40 41 nav { 42 display: none; 43 } 44 45 div#b { 46 margin: 0 !important; 47 } 48 } 49 50 nav ul { 51 width: 500px; 52 display: inline-flex; 53 flex-direction: row; 54 padding: 10; 55 margin: 0px 0px 8px 8px; 56 } 57 58 nav ul li { 59 width: 99px; 60 list-style-type: none; 61 border-left: 1px solid white; 62 color: white; 63 background-color: #000000; 64 text-align: center; 65 } 66 67 a.link-white { 68 text-decoration: none; 69 color: white; 70 } 71 72 a.link-white:visited { 73 color: white; 74 } 75 76 .balloon2-left { 77 position: relative; 78 display: inline-block; 79 margin: 1.5em 0 1.5em 15px; 80 padding: 7px 10px; 81 min-width: 120px; 82 max-width: 100%; 83 color: #555; 84 font-size: 16px; 85 background: #FFF; 86 border: solid 3px #555; 87 box-sizing: border-box; 88 } 89 90 .balloon2-left:before { 91 content: ""; 92 position: absolute; 93 top: 50%; 94 left: -24px; 95 margin-top: -12px; 96 border: 12px solid transparent; 97 border-right: 12px solid #FFF; 98 z-index: 2; 99 } 100 101 .balloon2-left:after { 102 content: ""; 103 position: absolute; 104 top: 50%; 105 left: -30px; 106 margin-top: -14px; 107 border: 14px solid transparent; 108 border-right: 14px solid #555; 109 z-index: 1; 110 } 111 112 .balloon2-left p { 113 margin: 0; 114 padding: 0; 115 } 116 117 118 .button { 119 background: lightblue; 120 color: #fff; 121 padding: 0 2em; 122 border: 0; 123 width: 500px; 124 height: 100px; 125 font-size: 45px; 126 border-radius: 5px; 127 font-weight: 900; 128 position: relative; 129 left: 400px; 130 top: 260px; 131 font-family: serif; 132 } 133 134 .button:hover { 135 background: lightcoral; 136 cursor: pointer; 137 } 138 139 .modal { 140 display: none; 141 position: fixed; 142 z-index: 1; 143 left: 0; 144 top: 0; 145 height: 100%; 146 width: 100%; 147 overflow: auto; 148 background-color: rgba(0, 0, 0, 0.5); 149 } 150 151 .modal-content { 152 background-color: #f4f4f4; 153 margin: 300px auto 10px auto; 154 width: 90%; 155 box-shadow: 0 5px 8px 0 rgba(0, 0, 0, 0.2), 0 7px 20px 0 rgba(0, 0, 0, 0.17); 156 animation-name: modalopen; 157 animation-duration: 1s; 158 } 159 160 @keyframes modalopen { 161 from { 162 opacity: 0 163 } 164 165 to { 166 opacity: 1 167 } 168 } 169 170 .modal-header h1 { 171 margin: 1rem 0; 172 } 173 174 .modal-header { 175 background: lightblue; 176 padding: 3px 15px; 177 display: flex; 178 justify-content: space-between; 179 } 180 181 .modalClose { 182 font-size: 2rem; 183 } 184 185 .modalClose:hover { 186 cursor: pointer; 187 } 188 189 .modal-body { 190 padding: 10px 20px; 191 color: black; 192 } 193 194 #container { 195 width: 100%; 196 } 197 198 /*========= LoadingのためのCSS ===============*/ 199 200 /* Loading背景画面設定 */ 201 #splash { 202 /*fixedで全面に固定*/ 203 position: fixed; 204 width: 100%; 205 height: 100%; 206 z-index: 999; 207 text-align: center; 208 color: #fff; 209 } 210 211 /* Loading画像中央配置 */ 212 #splash_text { 213 position: absolute; 214 top: 50%; 215 left: 50%; 216 z-index: 999; 217 transform: translate(-50%, -50%); 218 color: #fff; 219 width: 100%; 220 } 221 222 /*IE11対策用バーの線の高さ※対応しなければ削除してください*/ 223 #splash_text svg { 224 height: 2px; 225 } 226 227 /*割れる画面のアニメーション*/ 228 .loader_cover { 229 width: 100%; 230 height: 50%; 231 background-color: #333; 232 transition: all .2s cubic-bezier(.04, .435, .315, .9); 233 transform: scaleY(1); 234 } 235 236 /*上の画面*/ 237 .loader_cover-up { 238 transform-origin: center top; 239 } 240 241 /*下の画面*/ 242 .loader_cover-down { 243 position: absolute; 244 bottom: 0; 245 transform-origin: center bottom; 246 } 247 248 /*クラス名がついたらY軸方向に0*/ 249 .coveranime { 250 transform: scaleY(0); 251 }

投稿2023/01/18 07:12

penguin520

総合スコア345

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

opensee

2023/01/18 07:20

ご回答ありがとうございます。 自分の作っているものと似ているようで似ていないようで。。 こちらのサイトはレスポンシブではないということでしょうか? @keyframes modalopen ↑初めて見ました!
penguin520

2023/01/18 07:23

レシポンシブというか、モバイルフレンドリーで、スマホでもPCでも同じように見えるように作っています。
penguin520

2023/01/18 07:42

みていただいたらわかると思いますが。 h2 のフォントサイズを2回指定していたり(めんどくさいから消すのわすれてどっちだったかわかんなくなった)。 使ってない class の CSSも そのまんまにしてたりとかです。 最近、あんまりみなくなったんですが、コメントアウトの嵐とか普通だった時代もあったり。 ブートキャンプで、勉強中とのことなんですが。現場いくと、だいたいは WordPress つかってて、コード読めない書けない人間がごろごろいる現場もわりとあるので、実際にコード書く機会は少ないと思います。 どこかのフロントエンド開発にもし行ったとしたら、コーディングのルールが現場ごとにあるはずなので、それに従えばよいと思います。 ご質問のような、いまから、書き方とか、どうあるべきかとか、心配する必要ないと思うんです。
opensee

2023/01/18 08:15

そうなのですね。 綺麗に楽にコードを書くことに執念していましたが、少し考えた方が良さそうですね。 コーディングで副業するというのが最終目的になります。 なので自分でコードは書けるようになっていたいです。 しかしそれも現場でやり方があるのでしょうね。まずはしっかり基礎を押さえることに集中します!
penguin520

2023/01/18 08:19

センスはあると思うので頑張ってください。一緒に仕事することになったら宜しくです。
opensee

2023/01/18 08:34

ありがとうございます! 最初のうちは悩んでばっかりですがいつかマスターでできるよう頑張ります!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問