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

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

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

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

4回答

911閲覧

プレビューすると見た目は同じだが、書いてあるコードが違うのでこれで支障が生じるのか知りたい

Dai.

総合スコア5

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2020/02/10 06:43

前提・実現したいこと

下に書いてあるソースコードを実行すると見た目は同じことが実行されるが、上の例や下の例を使うことによって発生する違いはあるのかを知りたい。

発生している問題・エラーメッセージ

エラーは発生していません

該当のソースコード

ソースコード HTML <div class="contents"> <h1>レッスン</h1> </div> CSS .contents h1{ border-bottom: 2px solid #dee7ec; } と HTML <div class="contents"> <h1 class="lesson-title">レッスン</h1> </div> CSS .lesson-title { border-bottom: 2px solid #dee7ec; } ### 試したこと 実行してみたが見た目は同じである ### 補足情報(FW/ツールのバージョンなど) ここにより詳細な情報を記載してください。

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

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

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

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

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

m.ts10806

2020/02/10 06:55

(質問は編集できます) コードはマークダウンのcode機能を利用してご提示ください。 どのような見た目になるのかは他の質問や回答を参考にし、投稿前にプレビュー確認してください。
m.ts10806

2020/02/10 06:59

あと、「上の例」「下の例」ってなんでしょうか
guest

回答4

0

何を「支障」と捉えているのか不明ですが、このコードだけだと「ほぼ支障なし」と言えます。
もっと要素が増えて複雑に入り乱れるようになると調整が必要になることも出てくるのでは。
つまり要件次第。
大抵は画面設計してからどこにstyleを割り振るのか決めるので、余程の大追加でもなければ大改修に踏み切ることはないのではないでしょうか。
設計段階でどこまで想定するかによります。

投稿2020/02/10 06:58

m.ts10806

総合スコア80875

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

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

0

上の例は、contentsクラス内のh1要素にスタイルを設定している。
下の例は、lesson-titleクラスにスタイルを設定している。
という違いがあります。

結局、設定する対象は同じなので見た目は同じになります。
よって、現状では支障はないといえます。

将来、contentsクラス以外の場所にもこのスタイルを設定する可能性があるなら、下の例の方がいいでしょう。
将来も、このスタイルはcontentsクラス内のh1要素にしか設定しないなら、上の例にすればいいでしょう。

将来のことが分からないなら、どちらでもいいですが、下の例の方が柔軟性があると思います。

投稿2020/02/10 07:17

hatena19

総合スコア34075

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

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

0

詳細度の視点からの違いでいえば、この順で両方書いた場合でもより詳細度の高いほう(点線)になります。

CSS

1.contents h1 { 2 border-bottom: 2px dotted #dee7ec; 3} 4 5.lesson-title { 6 border-bottom: 2px solid #dee7ec; 7}

https://developer.mozilla.org/ja/docs/Web/CSS/Specificity

投稿2020/02/10 08:42

x_x

総合スコア13749

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

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

0

ベストアンサー

変わってくるのはこんなときでしょうか。

HTML

1<div class="contents"> 2 <h1>レッスン</h1> 3</div> 4<div class="contents"> 5 <h1>レッスン</h1> 6</div> 7<div class="contents"> 8 <h1>レッスン</h1> 9 <h1>レッスン2 </h1> 10</div>

CSS

1.contents h1{ 2 border-bottom: 2px solid #dee7ec; 3}

表示結果↓

イメージ説明


HTML

1<div class="contents"> 2 <h1 class="lesson-title">レッスン</h1> 3</div> 4<div class="contents"> 5 <h1>レッスン</h1> 6</div> 7<div class="contents"> 8 <h1>レッスン</h1> 9 <h1>レッスン2 </h1> 10</div>

CSS

1.lesson-title { 2 border-bottom: 2px solid #dee7ec; 3}

表示結果↓

イメージ説明


上の例と下の例では明らかに表示が異なりますよね。

上だと、contentsクラスがついているdivタグの中にいる h1タグ全てに下線がつき、

下だと、lesson-title クラスがついているh1タグのみに下線がつきます。

あくまでも一例で、他にも応用方法はいくらでもあります。

色々書いてみるとわかりやすいですよ

投稿2020/02/10 08:01

azuapricot

総合スコア2341

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問