ERBでできている画面のうち、<li>
要素のリストマーカーのサイズを変更する必要があったのですが、やり方がわからなかったため、備忘録としてまとめます。
目次
問題
仕事で次の画像のように、<li>
要素を二重に表示させる必要がありました。
2段目のリストマーカーを小さくしたいんですが、やり方がわかりませんでした、、。
現状のERBとCSSはそれぞれ以下のとおりです。
<div>
<div>
<ul class="item-list">
<% @items.each do |item| %>
<li>
<%= item[:category] %>
<ul class="example-list">
<% item[:examples].each do |example| %>
<li>
<%= example %>
</li>
<% end %>
</ul>
</li>
<% end %>
</ul>
</div>
</div>
.item-list {
list-style-type: disc;
}
.example-list {
list-style-type: disc;
padding-left: 20px;
}
解決策
以下のように修正することで、リストマーカーのサイズ調整を実現できました。
<div>
<div>
<ul class="item-list">
<% @items.each do |item| %>
<li>
<%= item[:category] %>
<ul class="example-list">
<% item[:examples].each do |example| %>
<%# クラスを付与 %>
<li class="example">
<%# span タグで囲う %>
<span><%= example %></span>
</li>
<% end %>
</ul>
</li>
<% end %>
</ul>
</div>
</div>
.item-list {
list-style-type: disc;
}
.example-list {
list-style-type: disc;
padding-left: 20px;
}
// marker のサイズを小さくする
.example::marker {
font-size: 0.5em;
}
// marker の位置がずれないよう修正
.example span {
vertical-align: -0.2em;
}
サイズをただ小さくするだけだとマーカーの位置が文字とずれてしまうため、<li>
要素内の文言を<span>
タグで囲み、vertical-align
で位置を調整しています。
結果はこちら↓
ちゃんと2段目のリストマーカーのサイズが小さくなっていますね!
おわりに
CSSは苦手かつモチベーションが低いんですが、仕事で出てきた分はコツコツ覚えていきたいと思います。
コメント