CSSでリストのマーカーをカスタマイズする（Firefoxのみ）

@counter-styleで、オリジナルのスタイルを定義することができる。

デモ（MDN web docs）
https://mdn.github.io/css-examples/counter-style-demo/


```css
@counter-style customlist(任意の名前) {
  system: cyclic;
  symbols: "\1F596";
  suffix: " ";
}
ul {
  list-style: customlist;
}
```
<p data-height="265" data-theme-id="light" data-slug-hash="XyrRrM" data-default-tab="css,result" data-user="yopi" data-pen-title="ＣＳＳでリストのマーカーをカスタマイズする" class="codepen">See the Pen <a href="https://codepen.io/yopi/pen/XyrRrM/">ＣＳＳでリストのマーカーをカスタマイズする</a> by ypyp (<a href="https://codepen.io/yopi">@yopi</a>) on <a href="https://codepen.io">CodePen</a>.</p>
<script async src="https://static.codepen.io/assets/embed/ei.js"></script>

##system
初期：symbolic
カウンタ値表示のアルゴリズムを指定する

```css
@counter-style customlist {
  system: cyclic;
}
```

| 値|  説明 |例|
|:--|:--|:--|
|cyclic|symbolsで指定された値を繰り返す |aリストaリストaリスト
|fixed|symbolsで指定された値を1回のみ表示する|aリスト1.リスト2.リスト
|symbolic|symbolsで指定された値を繰り返し、数が増える度に追加されていく|aリストaaリストaaaリスト
|alphabetic|symbolsで指定された値を英数字として解釈する。"a"から"z"まで指定した場合、"z"以降は"aa","ab"となる|aリストbリストaaリストabリスト
|numeric|1位2位のような位置記法の数字として解釈する。最初のシンボルを0とみなすため次のシンボルから始まる|すごい：リストめちゃんこすごい：リストすごすぎる:リスト
|additive|ローマ数字などの「符号値」の番号付けシステムを表すために使用する。 `additive-symbols`と合わせて記述|10リスト～Vリスト～XIIリスト
|extends|既存スタイルをもとに変更を加える|(1)リスト(2)リスト(3)リスト|

```css
/*additiveサンプル*/
@counter-style customlist {
 system: additive;
 additive-symbols: 10 X, 5 V, 1 I;
}
/*extends サンプル*/
@counter-style cs-extends {
  system: extends decimal;
  prefix: '(';
  suffix: ') ';
}
```
##negative
初期："-"
負のカウンタ値の表現を変更する

```html
<ul class="list" start="-3">
  <li>One</li>
  <li>Two</li>
  <li>Three</li>
  <li>Four</li>
  <li>Five</li>
</ul>
```
```css
@counter-style customlist {
  system: numeric;
  symbols: "0" "1" "2" "3" "4" "5" "6" "7" "8" "9";
  negative: "(-" ")";
}

.list {
  list-style: customlist ;
}
```

##prefix
初期：	"" 
マーカー表現の前に追加する記号を指定する
»1リスト
»2リスト

```css
@counter-style customlist {
  prefix: "»";
  prefix: "Page ";
  prefix: url(bullet.png);
}
```

##suffix
初期：". "
マーカー表現の前に追加する記号を指定する
1)リスト
2)リスト

```css
@counter-style customlist {
  suffix: "";
  suffix: ") ";
  suffix: url(bullet.png);
}
```

###range
初期：auto
カウンタースタイルが適用される値の範囲を定義する
infinite は無限

```css
@counter-style customlist {
range: auto;

range: 2 5; /*2から5まで*/
range: infinite 10; /*10個目まで無限*/
range: 6 infinite;　/*6個目以降無限*/
range: infinite infinite;

range: 2 5, 8 10; 2～5個までと8～10個まで
range: infinite 6, 10 infinite;6個目まで無限、10個目から無限
}
```
###pad
初期：0 ""
桁を合わす時など最短文字数を適用する必要がある場合に使用する
001リスト
002リスト
…
099リスト
100リスト

```css
@counter-style customlist {
  pad: 3 "0";/*3桁になるまで0がつく*/
}
```

###fallback
初期：decimal
範囲を超えた場合、スタイルが適用されない場合に代わりに利用するカウンタースタイルを指定する

```css
@counter-style customlist {
  fallback:decimal;
}
```

###symbols
初期：N/A
マーカー表現に使用される記号を指定

```css
@counter-style customlist {
  symbols: A B C D E;
  symbols: "\24B6" "\24B7" "\24B8" D E;
  symbols: "0" "1" "2" "4" "5" "6" "7" "8" "9";
  symbols: url('first.svg') url('second.svg') url('third.svg');
  symbols: indic-numbers;
}
```

###speak-as
初期：auto
音声での読み上げ方式を指定


```css
@counter-style customlist {
  speak-as: auto;
}
```
|値|説明|
|:--|:--|
|auto|speak-as値がautoと指定されている場合、 `system`の値に基づいて決定される。
|bullets|順不同のリスト項目が読み上げられるブラウザ依存のフレーズやオーディオのキューを使用
|numbers|数字として読み上げ
|words|単語として読み上げ
|spell-out|単語として読み上げ解釈できなければ数字
|`<counter-style-name>`|他のカウンタースタイルを参照

#ブラウザの対応
Firefoxのみ

#参考
https://developer.mozilla.org/ja/docs/Web/CSS/@counter-style
http://www.tohoho-web.com/css/rule/counter-style.htm