2013-08-20 2 views
6

HTMLやCSSでリストを設定して、箇条書きではなく特定の文字を使うことはできますか?HTMLのリストの中で文字 "Q"と "A"を使う方法

例:

Q. a question will be posted here. 
A. the answer will go here. 

私は私が行くと、各エントリの書式を設定することができます知っているが、私はクラスで個々の<li>タグを修正することを好むだろう。

+0

はい、可能ですが、あなたのコードはどのようになりますか?答え/質問のクラスを別々に定義しましたか? – putvande

+8

なぜ各Qと各Aに 'li'要素を使用していますか? – BoltClock

答えて

20

意味的には、<dl>がQ/Aに適しています。

dt:before { 
 
    content: 'Q. '; 
 
} 
 
dd:before { 
 
    content: 'A. '; 
 
}
<dl> 
 
    <dt>Is this a question?</dt> 
 
    <dd>Yes, it is.</dd> 
 
</dl>

注:<dl>ためthe documentationによれば、(強調鉱山):

名前と値のグループは、条件とすることができるので、好きは:before擬似要素を使用することができ定義、メタデータのトピックと値、の質問と回答、または他の名前/値のデータグループを使用できます。

+4

まるでま​​っすぐな(un)orderedリストを使って比較すると、実際には* dlを使うことが理にかなっていると私はそれを不正行為と呼んでいません。 – BoltClock

+6

しかし、注意すべきことは、CSSコンテンツはコピー可能ではないことです(少なくとも一部のブラウザでは)。質問と回答を選択してコピーを選択すると、Q:とA:は残りのテキストと一緒にコピーされません。 – zneak

+2

答えを質問に合わせるには、 'margin-left:0'を'

'に適用してください。 –

3

はい、あなたはこのよう:before擬似セレクタを使用することができます。今、あなたはちょうどそれらの<li>要素にクラスquestionanswerを適用

li.question:before { 
    content: "Q. "; 
} 
li.answer:before { 
    content: "A. "; 
} 

1

:nth-child:beforeの組み合わせを使用できます。

li { 
    list-style:none; 
} 
li:nth-child(odd):before { 
    content:"Q. "; 
} 
li:nth-child(even):before { 
    content:"A. "; 
} 

例:http://jsfiddle.net/Xt72Y/

それはolulの両方で動作し、HTMLを変更する必要はありません。

0

はい、あなたは、リスト項目の内容にキー文字を含めることができます。

<ul> 
<li>Q. a question will be posted here. 
<li>A. the answer will go here. 
</ul> 

とCSSでlist-style-type: noneを使用しています。または、より合理的には、ulマークアップを省略して、アイテムにはただpマークアップを使用してください。 ul要素は、リモートでリストのように見えるものすべてに使用する必要があるものではなく、物事を助けるときに使用することになっています。

CSSによって生成されたコンテンツを経由して、適切なコンテンツにそれらを含めずにブラウザがQとAを表示することも可能であるが、彼らは、コンテンツの一部であるとして、CSSが無効になっているか無効にされたときに、これは不必要な問題を引き起こします。

+0

「Q」と「A」のマークがコンテンツの一部であるかどうかはわかりません。私はそれらを一種の視覚援助(見積もりなどの引用符のようなもの)のように思っています。 Q&Aページのロジック構造は理解できないままです(質問のためのよりコントラストの多いフォントのような他の視覚資料が存在する場合は特にそうです)。 –

関連する問題