<dd>がインデントされない原因を修正。ついでに定義リストのデザインあれこれ
項目の説明などに定義リストを使うと、自動で改行やインデントをしてくれるので便利です。
定義リストとは、「<dl>、<dt>、<dd>」を使って、用語とその説明を箇条書きに表記します。
<dl>でリスト全体を囲み、<dt>に用語を記述、<dd>で用語の説明をする感じです。
実際に、このブログで使ってみると、なぜかインデントされませんでした。理由は、テーマに利用しているSTINGER5のCSSにあったようです。
今回はCSSの修正を行うと共に、定義リストのデザインをいくつかやってみます。
STINGER5で定義リストがインデントされない理由
<dd>タグは、デフォルトだとインデントされます。
しかし、STINGER5の場合、全称セレクタを使ったリセットで、marginを0pxにしているためインデントされません。
全称セレクタとは、「*」を使って全要素を示すセレクタです。全要素に適用されるので、ブラウザごとに違うスタイルをリセットする時に使われます。
下記は、STINGER5のstyle.cssで全称セレクタを使用している箇所です。
font-family: “メイリオ”, Meiryo, “ヒラギノ角ゴ Pro W3”, Hiragino Kaku Gothic Pro, “MS Pゴシック”, sans-serif;
margin: 0px;
padding: 0px;
}
要するにインデントさせるためには、左にマージンを取ってやればいい訳です。
定義リストのデザイン
STINGER5で記事部分は、<div class=”post”>で囲まれています。
記事内の定義リストのデザインは、複数必要ないので、postクラスの子孫要素として、定義リストの要素を指定して、CSSを記述する事にします。
.post dl { }と記述すると、postクラスを指定したブロック内のdl要素に対してだけ適用されます。
また、定義リストを複数パターン用意する場合は、dl.simple{ }などと記述すればいいでしょう。
基本的にはこんな感じで行います。
- <dt>はfont-weightで太字にする。
- <dd>のインデントはmargin-leftで左側にスペースを空ける。
- <dd>は見やすいようにpadding-bottomで間隔を空ける。
シンプルな定義リスト
.post dl {
}
.post dt {
font-weight: bold;
}
.post dd {
margin-left: 30px;
padding-bottom: 10px;
}
表示例
左にボーダーを付ける
.post dl {
}
.post dt {
font-weight: bold;
border-left: 5px solid #2bbbff;
}
.post dd {
margin-left: 30px;
padding-bottom: 10px;
}
表示例

左にスクエアを付ける
擬似要素を使って左にスクエアを付けています。
.post dl {
}
.post dt {
position: relative;
font-weight: bold;
}
.post dt:before {
position: absolute;
top: 6px;
left: -10px;
width: 8px;
height: 8px;
border: 2px solid #2bbbff;
content: "";
}
.post dd {
margin-left: 30px;
padding-bottom: 10px;
}
表示例

まとめ
HTMLタグの表示がデフォルトと違う場合は、CSSリセットの可能性が高いです。
この際だから、ブログにあったデザインにCSSを書き加えるのも面白いと思います。
関連記事
-
-
CSSを使った見出しを勉強すると、デザインの幅が広がります
見出しは、ブログの可視性(Visibility)においても最重要なデザインです。 …
