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

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

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

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

CSS

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

Q&A

解決済

2回答

1266閲覧

HTMLにstyleを直接指定する場合とHTMMLにclassを指定してcss側でstyleを設定するときの挙動

King_of_Flies

総合スコア382

HTML

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

CSS

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

0グッド

0クリップ

投稿2018/05/11 01:51

HTMLにstyleを直接指定する場合

HTML

1 <!-略-> 2 <table> 3 <tr> 4 <th class="table-header" style="padding-top: 0px; padding-bottom: 0px;"><!--指定箇所--> 5 <label class="label-m" style="">hoge</label> 6 </th> 7 <td> 8 <label class="label-m" style="">hoge</label> 9 </td> 10 11 <th class="table-header" style=""> 12 <label class="label-m" style="">huge</label> 13 </th> 14 <td> 15 <label class="label-m" style="">huge</label> 16 </td> 17 <tr> 18 <table> 

HTMLにclassを指定しcssでstyleを設定する場合

HTML

1 <!-略-> 2 <table> 3 <tr> 4 <th class="table-header" style=""> 5 <label class="label-m" style="">hoge</label> 6 </th> 7 <td> 8 <label class="label-m" style="">hoge</label> 9 </td> 10  11   <th class="table-header" style=""> 12 <label class="label-m" style="">huge</label> 13 </th> 14 <td> 15 <label class="label-m" style="">huge</label> 16 </td> 17 <tr> 18 <table> 

css

1.table-header{ 2 padding-top: 0px; 3 padding-bottom: 0px; 4}

上記の二つに違いはないという認識なのですが、(認識誤ってたらすいません)
HTMLにstyleの直接指定した場合hogeの上下のpaddingが0に設定され
th,tdの要素のhogeの上下に余白ができないよう設定できるのですが、
HTMLにclassを指定しcssでstyleを設定する場合の実装では
hogeの上下のpaddingを0に指定しているのにもかかわらず、
hoegの上下に余白が10px存在します。

hoge一つのみならば直接指定でよい気がしますが、
hugeやそれ以外にも<td><th>要素がある場合
全てのstyleを直接指定するわけにもいかず困っております。

よろしくお願いします。

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

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

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

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

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

dit.

2018/05/11 02:02

最後の<tr>と<table>は</tr>と</table>かと思いますが、転記の際のミスでしょうか?実際のコードもご確認ください。
King_of_Flies

2018/05/11 02:05

転記ミスです。すいません。
guest

回答2

0

ベストアンサー

指定のスタイル以外に、何かしら別のスタイルシートが適用されていませんか?Developer Toolsなどで確認してみましょう。

上記の二つに違いはないという認識なのですが、(認識誤ってたらすいません)

詳細度が違ってきて、style属性でかけたスタイルは、!importantを除けば最優先で適用されます。

投稿2018/05/11 02:00

maisumakun

総合スコア145184

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

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

King_of_Flies

2018/05/11 02:10

.table-header{ padding-top: 0px !important; padding-bottom: 0px !important; } で指定したところstyleの適用がされました。 少し上位層の要素のstyleの見直しをしたいと思います。 ありがとうございました。
dit.

2018/05/11 02:13

ディベロッパーツールなどを利用して、どのスタイルが当たっているか確認してみてください。 https://nandemo-nobiru.com/2944/
guest

0

css は優先順位について色々ルールがあります。

  • タグに直接 style="" で書く方が、class="" で指定するより強い(優先される)

  • #hoge {} のように id で指定する方が、.fuga {} のように class で指定するより強い

  • .hoge {} の指定よりも .main .list div.hoge {} のようにより細かく指定されている方が強い

  • !important が付いている方が、付いていないより強い

  • 同じ強さだったら、先に書かれているものより 後に書かれている者の方が強い(後勝ち)

(上記は例です。詳細については別途調べてみてください)

思うに 共通の css 部分により強い指定があって、それに負けているのではないでしょうか?


たとえば

  • <table> に class="my-table" のように class を指定してみる
  • table.my-table th.table-header のような指定に変えてみる

など試してみてはどうでしょうか。

投稿2018/05/11 02:03

編集2018/05/11 02:04
sk_3122

総合スコア1126

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問