こっそりアップデート
2016年末に弊ブログのHTMl/CSSを大幅に改良しました。色々変えたところはあるのですが、1番の変更点はレスポンシブデザインに対応したところですね。livedoor Blogでスマホ対応のレスポンシブデザインにしているサイトは他にないのではないでしょうか? なぜなら、やる意味がまったく無いからです(笑)。livedoor Blogにはデフォルトのスマホページがありますからね。
それ以外にもいろいろと改良をした部分があります。今回はその過程で設定した、「HTML/CSSで好きな文字をリストの記号に使う」を紹介したいと思います。
簡単にできると思ってた

CSSの疑似要素を使えば、リスト記号に文字を使うのは簡単そうに思えます。というか筆者もそう思っていました。
ul {
list-style: none;
}
ul li::before {
content: "★";
margin-right: 5px;
}

できたように見えます。これで終わってしまうとこのエントリの意味が無いので、もうちょっと続けます。このリストに、長い文章を入れるとどうなるでしょうか?

……なんだかとても残念な感じです。記号が段落に埋もれてしまい、箇条書き感がなくなってしまいました。これを解決するためには、text-indent
にマイナスの値を設定すればいいのです。
ul li {
text-indent: -20px;
}

それなりにいい感じになりました。ただ、先頭が微妙に揃っていないので、もう少し調整が必要です。
ul li {
text-indent: calc((1em + 5px) * -1);
}

フォントにもよりますが、1em
がそのまま1文字ぶんの横幅になるので、これに擬似要素の右側のマージン(今回の例だと5px
)を足せば、ちょうどいい感じになります。
ul li {
text-indent: calc((2ch + 5px) * -1);
}

等幅フォントなら、2ch
でちょうど1文字ぶんになります。
左側にマイナスのインデントを設定するということは、全体を左に無理やり寄せているということなので、margin-left
を設定する必要があります。そのあたりも含めたサンプルコードを以下に載せておきます。ぜひ参考にしてみてください。
See the Pen list with char by keiga (@keiga) on CodePen.
おわりに
ブログデザインの改修は大変ですが、やり終えたときの他の何にも代えがたい達成感がありますね。最近はSass/SCSSの勉強も進めています。もっとデザインの勉強をして、見やすいブログにしていきたいと思いますので、今後ともお願いします。