云わば、先日投稿したスタイル初期化したリスト要素にlist-styleを指定するときの注意から派生した問題です。
スタイル初期化したリスト要素にlist-styleを指定するときの注意の簡単なおさらい
- スタイル初期化したulにただlist-styleを指定しても行頭記号(・とか、1とか、■とか)が出ない
- 方法その1「list-style-positionをinsideに指定する」
問題点:リストが2行以上になったときに先頭がそろわない。 - 方法その2「margin-leftを指定する」
個人的おすすめの方法。
リスト要素にlist-styleと背景色を指定する際、行頭記号が背景色部分に含まれない
実現したいデザイン
結果
なみに上のCSSは、
ul {
margin-left: 25px;
list-style: disc;
}
ul li {
background: #ccc;
padding: 5px;
margin-bottom: 5px;
}
となっております。
まあ、左にマージンしてますから当然っちゃあ当然なんですが…。
解決策として第一に考えたのが、background-colorをulに指定して、liにborder-bottomで区切り線を入れたらどうか、です。
ul {
background: #ccc;
list-style: disc;
}
ul li {
margin-left: 25px;
padding: 5px;
border-bottom: 5px solid #fff;
}
結果

アウト。
第二の解決策。
リスト行頭記号(・とか、1とか、■とか)を画像にしたらどうか、です。
ul {
}
ul li {
padding: 5px 5px 5px 25px;
margin-bottom: 5px;
background: #ccc url(img/list.gif) no-repeat 12px 10px;
}

成功!
ちなみに、
ul {
background: #ccc;
}
ul li {
padding: 5px 5px 5px 25px;
background: url(img/list.gif) no-repeat 12px 10px;
border-bottom: 5px solid #fff;
}
これでも同様な結果です。
しかし、画像にするというのは、list-style使わないっていうことですから、結局問題解決してないんですよね。
なにかうまい方法はないもんでしょうかねぇ。
例えば、これが絶対2行にならないというのならlist-style-positionをinsideにすることで解決なんですが…。






最近のコメント