Quantcast
Channel: CSSタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 8823

html&css markerで任意の目次を作る

$
0
0

最近

極鶏のラーメンが食べたいです:ramen:
ついでに言うと猪一のラーメンも食べたいです:ramen:

目次

  • 目標
  • HTML
  • CSS

目標

リストの入れ子で通常のリストだと↓見えにくい。
image.png

↓こんな感じのリストを作る
image.png

HTML

今回はolで括りましたがulでも大丈夫です。
それぞれのolにfirst second thirdなどの対応する階層の任意のクラスをつける。

index.html
<olclass="first-layer"><li>1つ目の階層リスト-1</li><li>1つ目の階層リスト-2</li><olclass="second-layer"><li>2つ目の階層リスト-1</li><li>2つ目の階層リスト-2</li><olclass="third-layer"><li>3つ目の階層リスト-1</li></ol></ol><li>1つ目の階層リスト-3</li><olclass="second-layer"><li>2つ目の階層リスト-1</li><olclass="third-layer"><li>3つ目の階層リスト-1</li><li>3つ目の階層リスト-2</li></ol><li>2つ目の階層リスト-2</li></ol></ol>

CSS

counterとmarkerを使い、作っていきます。

olが実行される度にcounter-resetで 加算していた num を0にする。
(int num=0;の気持ち)

ol{counter-reset:num;}

counter-incrementで num に加算していく。
リストがある度に1加算される。
(num++; の気持ち)

li{counter-increment:num;}

リストの後ろにmarkerを作り、そのcontentに num の数値を出力する。
(print(num) の気持ち)

li:before{display:marker;content:counter(num_f)". ";}

以上を階層ごとに設定していく。

style.css
li{list-style-type:none;list-style-position:inside;}ol.first-layer{counter-reset:num_f;}.first-layerli{counter-increment:num_f;}.first-layerli:before{display:marker;content:counter(num_f)". ";}ol.second-layer{counter-reset:num_s;}.second-layerli{counter-increment:num_s;}.second-layerli:before{display:marker;content:counter(num_f)'.'counter(num_s)". ";}ol.third-layer{counter-reset:num_t;}.third-layerli{counter-increment:num_t;}.third-layerli:before{display:marker;content:counter(num_f)'.'counter(num_s)"."counter(num_t)'. ';}

できました!
image.png

おまけ

n.n.n.も作れます。
image.png

ol.first-layer{counter-reset:num_f;counter-reset:num_s;counter-reset:num_t;}.first-layerli:before{display:marker;content:counter(num_f)'.'counter(num_s)"."counter(num_t)'. ';}ol.second-layer{counter-reset:num_s;counter-reset:num_t;}.second-layerli:before{display:marker;content:counter(num_f)'.'counter(num_s)"."counter(num_t)'. ';}

※変更した箇所を記載

参考

マーカー
http://www6.plala.or.jp/go_west/nextcss/reference/article/marker.htm


Viewing all articles
Browse latest Browse all 8823

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>