1

<label><span>がインライン要素であり、ブロック要素であるという事実を考えると、スクリプトを使用せずにスパン/ラベル内<ol>にネストする適切な方法は何ですか?<ol>

input { vertical-align: top; }
label { display: block; }
label + label { margin-top: 1em; }
ol { padding:0; margin:0; }
<label for="foo">
   <input id="foo" type="checkbox" />
   <span style="padding-left: 1em; display:inline-block;">
      <ol>
         <li>Boat</li>
         <li>Jet</li>
         <li>Chopper</li>
      </ol>
   </span>
</label>

<label for="bar">
   <input id="bar" type="checkbox" />
   <span style="padding-left: 1em; display:inline-block;">
      <ol>
         <li>Car</li>
         <li>Auto</li>
      </ol>
   </span>
</label>

目標は、JavaScriptに依存しない自動化された順序付きリストを作成することです。これは、W3CXHTMLも有効と見なされます。

4

3 に答える 3

0
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="description" content="" />
<meta name="keywords" content="" />
<title>foo</title>

<style type="text/css">
/*<![CDATA[*/
 span.c1 {padding:1em;display:inline-block;}
/*]]>*/
</style>
</head>
<body>
<ol>
<li><label for="foo"><span class="c1">1</span></label></li>
<li><label for="foo"><span class="c1">2</span></label></li>
<li><label for="foo"><span class="c1">3</span></label></li>
</ol>
</body>
</html>
于 2011-09-04T20:57:49.617 に答える
0

誰も答えていないので、私は刺します:

スパンを使用してリストを手動で作成する


   <label for="foo">
      <span style="padding:1em;display:inline-block;">
         <span class="ol">
            <br /><span class="li">1. 1</span>
            <br /><span class="li">2. 2</span>
            <br /><span class="li">3. 3</span>
         </span>
      </span>
   </label>

ol{...}CSS内のまたはを表示するすべての場所にli{...}、クラスを挿入する必要があります。ol,.ol{...}およびli,.li{...}。さらに、.olおそらく持っている必要がありますdisplay:block;

改行はおそらくクリアに置き換えることができますが、これはすべて私の頭のてっぺんから外れており、テストはありません。

于 2010-11-29T18:58:20.263 に答える
0

imagemap()を使用してリストを含めることができますが、それはタグを悪用している可能性がありますmapmap

私が言っているのは次のようなものです:

<label for="foo" style="padding:1em;display:inline-block;">
  <map id="foolist">
       <ol>
          <li>1</li>
          <li>2</li>
          <li>3</li>
       </ol>
  </map>
</label>
<input name="foo" id="foo" type="checkbox" />

編集:W3Cは、map属性がブロックレベルであると述べています:

MAP要素コンテンツモデルを使用すると、作成者は次の要素を組み合わせることができます。

  1. 1つ以上のAREA要素。これらの要素にはコンテンツはありませんが、画像マップの幾何学的領域と各領域に関連付けられたリンクを指定します。ユーザーエージェントは通常、AREA要素をレンダリングしないことに注意してください。したがって、作成者は、各AREAにalt属性を使用して代替テキストを提供する必要があります(代替テキストを指定する方法については、以下を参照してください)。
  2. ブロックレベルのコンテンツ。このコンテンツには、画像マップの幾何学的領域と各領域に関連付けられたリンクを指定するA要素を含める必要があります。ユーザーエージェントは、MAP要素のブロックレベルのコンテンツをレンダリングする必要があることに注意してください。作成者は、この方法を使用して、よりアクセスしやすいドキュメントを作成する必要があります。
于 2011-04-14T17:52:39.853 に答える