li

li 要素 (HTML)

li 要素型 (HTML, XHTML 1)

[3] li 要素は、並びの項目を表します。

仕様書: [HTML 4] <IW:HTML4:"struct/lists.html#edef-LI">

[4]

開始タグ
必須
終了タグ (HTML 4)
省略可能
終了タグ (XHTML 1)
必須
内容模型 (HTML 4 の ul, ol)
(%flow;)*
内容模型 (HTML 4 の dir, menu)
(%inline;)*
出現できる文脈
ol, ul, dir, menu の直下
属性
class[HTML4] %coreattr
dir書字方向[HTML4] %i18n
id一意識別子[HTML4] %coreattr
lang自然言語[HTML4] %i18n
xml:lang自然言語[XHTML1]
onclick[HTML4] %events
ondblclick[HTML4] %events
onkeydown[HTML4] %events
onkeypress[HTML4] %events
onkeyup[HTML4] %events
onmousedown[HTML4] %events
onmousemove[HTML4] %events
onmouseout[HTML4] %events
onmouseover[HTML4] %events
onmouseup[HTML4] %events
styleスタイル情報[HTML4] %coreattr
title注釈的題[HTML4] %coreattr
type"disc" / "square" / "circle" / '1' / 'a' / 'A' / 'i' / 'I'項目番号の種類[HTML4] 非推奨
valueNUMBER1項目の番号[HTML4] 非推奨

構文解析

[10]

        ## NOTE: Special, Scope (<li><foo><li> == <li><foo><li/></foo></li>)::
          ## Interpreted as <li><foo/></li><li/> (non-conforming):
          ## blockquote (O9.27), center (O), dd (Fx3, O, S3.1.2, IE7),
          ## dt (Fx, O, S, IE), dl (O), fieldset (O, S, IE), form (Fx, O, S),
          ## hn (O), pre (O), applet (O, S), button (O, S), marquee (Fx, O, S)\
,
          ## object (Fx)
          ## Generate non-tree (non-conforming):
          ## basefont (IE7 (where basefont is non-void)), center (IE),
          ## form (IE), hn (IE)
        ## address, div, p (<li><foo><li> == <li><foo/></li><li/>)::
          ## Interpreted as <li><foo><li/></foo></li> (non-conforming):
          ## div (Fx, S)

レンダリング

[5] ul, ol, dir, menu, type, value, compact, src, list-style などのレンダリングの説明も参照。

実装について

[6] ブラウザによっては、並び系要素の直下にない li 要素にも list marker を表示してくれる親切なものもあるので、 並び系要素を省略できると思っている人や、裏技(藁)として紹介している解説本もありました (今もそういう人いるの?)。

もっとも、 SGML 的には、開始タグを省略できる変わった版の HTML とみなして処理できることもあるかもしれませんが...

メモ

[1] Testing mcom additions to HTML <http://www.w3.org/People/Connolly/html-test/mcom/test-mcom.html> を元に推測すると、 Classic Mozilla では、

 <ul>
 <li type=1 value=27>number 27
 <li>number 28
 </ul>

 27. number 27
 28. number 28

と表示されていたはずだ。ところが Mozilla 1.3b ではこれを

 27. number 27
 ・ number 28

と表示する。 WinIE 6.0 は

 ・ number 27
 ・ number 28

だ。マイナーに終わった独自拡張が受け継がれなかった一例か。

[3] <http://groups.google.com/groups?selm=E187DC.4Kr%40vega.aichi-u.ac.jp>

  • [4] HTML4 によれば startvalueNUMBER らしいので、零以上の整数しか表せませんが、実装、たとえば Gecko は負整数にも対応しています。 (正符号は?)
  • [5] Gecko は値を31ビット分 (2147483647) までしか扱えなくて、それ以上だと零や負数になってしまいます。 (多分上限は環境によって異なるでしょう。符号付き長整数が32ビットならこういう結果なのだと思われ。) WinIE 6 も同じところが限界でした。
  • [6] Lists CHECK! <http://www.kmc.gr.jp/~ranran/browsers/lists.html>: >>4-5 テスト頁。

[7] >>1 の頁を NC 48 で見てみたのですが、全部 disc で表示されました。よくみたら、 ol ではなく ul ではないですか。

ということで ol になおして表示したら、27., 28., , になりました。よくみたら羅馬数字は I でなく R になっていますね。

Dan が試した当時の Navigator がどう表示していたのか確かめてみる必要がありそうです。それに限らず、現代の各 UA のこの辺の実装も調べてみたら面白そうです。 (名無しさん 2004-04-14 03:37:58 +00:00)

[8] The <li> element's feedback (Ian Hickson <ian@...> 著, 2008-04-23 06:56:09 +09:00 版) <http://permalink.gmane.org/gmane.org.w3c.whatwg.discuss/13838>

[9] Fix how <li>s are numbered and associated with <ol>s (domenic著, ) <https://github.com/whatwg/html/commit/fd726b069bee2c73600fbccac8e36f8783549bfc>

[11] 17632 – CSS: define rendering of <li> elements in terms of CSS (handling start="", reverse="", value="", and <li> elements that aren't children of <ol> elements) () <https://www.w3.org/Bugs/Public/show_bug.cgi?id=17632>

[12] Minutes [was: Agenda for 971023 HTML WG meeting] (Dan Connolly著, ) <https://lists.w3.org/Archives/Public/w3c-wai-hc/1997OctDec/0160.html>

RESOLVED: <li> and <td>, INS DEL have to be %flow;

(i.e. (%inline;|%block)*)