12

(厳密な)htmlでは、の中に非インライン要素をネストすることはできないよう<p>ですが、リスト(自然なテキストで頻繁に発生するもの)を含む段落をどのようにレンダリングするのでしょうか。私はすべてが満足できないように見える3つの答えを見てきました:

  • リストは段落内に配置しないでください。(私は文化的な議論に入るつもりはありませんが、htmlが文体を決定する場所にならないことを確かに望んでいます。)
  • テキストを段落に分割し、次にリストに分割し、次にポストテキストを含む2番目の段落に分割します。これは、段落の一部<p>であるチャンクがあるため、見栄えが悪くなります。これは、よりセマンティックな方向に移動しようとしているマークアップにとっては悪いようです。
  • いくつかを使用した偽の段落<div class="mypara">—これは、すべてをバイパスして、テキストの適切なセマンティクスでマークアップを使用することをあきらめる悪い方法のように見えます。

意味的に正しく有効なこれを行う他の方法はありますか?

4

5 に答える 5

9

HTML 5 の段落は、最新のワーキング ドラフトの時点で、フレージング要素のみを含むことができるフロー要素として定義されています。リストもフロー要素として定義され、段落で囲むことはできません。パラグラフの定義がどうあるべきだと思うにせよ、これは HTML における用語の正式な定義であり、変更される可能性は低いと思います。

あなたが言及した2つ以外に、あなたが考慮するかもしれない2つの可能性があります:

  • sectionnavheaderfooter、など、該当する場合は、段落よりも広範なフロー要素に手を伸ばすことを検討してくださいarticle
  • ハイブリッド アプローチを使用します。セットに共通の書式設定を適用する選択p – ol – pした でシーケンスをラップします。div

divHTML 5 仕様では、他の HTML 要素のようにセマンティックな意味を持たず、別のユーザー エージェントではユーザー フレンドリーではない可能性があるため、「最後の手段」要素にすることを明確に推奨しています。. このアドバイスに従うと、セマンティクスが重要な場合は、 for body text をdiv犠牲にして使用しません。pただし、複数の段落を使用しても視覚的に途切れないようにするのに役立ちます。

于 2010-07-07T02:10:24.580 に答える
3

このすべての背後にある視覚的なスタイルの理由はありますか?言い換えれば、次のようなものがある場合、それはあなたが理想的とは思わない方法で視覚的にレンダリングしていますか?

<p>Some paragraph text.</p>
<ul>
    <li>First list item</li>
    <li>Second list item</li>
    <li>Third list item</li>
</ul>
<p>Another paragraph.</p>

問題がPの後、ULの前のマージンが大きすぎる場合は、次のように隣接する兄弟セレクターを試して、次のことを補うことができます。

p + ul { margin-top: -1em; }
于 2010-07-07T04:09:49.997 に答える
3

<p>htmlタグは、実際の文体のイディオムを制御するためのものではないと思います。テキストのチャンクを整然と表示する簡単な方法です。印刷物をシミュレートするためのものではないと思います。これには Div を使用する必要があります。

于 2010-07-07T01:52:30.107 に答える
1

何を「段落」と考えるかによると思います。HTML の設計者が、リストを段落の一部とはまったく考えていないことは明らかです。そして、どちらの解釈についても議論ができると思いますが、私は仕様が正しいという意見です.

リストは思考の流れの中断を表すものではありませんが、確かに意見や考え方の変化を表しているので、新しいセマンティック コンテナーの価値があると私は信じています。

同じように、段落は文章の論理的な分割を表します。リストは一連の論理パーティションを表します。1 つの論理パーティションが複数のパーティションに分割されることは想像に難くありませんが、単純に新しいパーティションを作成する方が理にかなっています (特に、音声/メソッドの大きな中断の場合)。

セマンティクスは、主に主観的なものになる可能性があります。そして、それは結構です。ただし、この場合、HTML 仕様がセマンティクスを正しく表していると私は考えています。

于 2010-07-07T02:45:07.840 に答える
0

あなたの質問への答えは明らかにノーです。あなたと同じように、私はセマンティクスを維持するのが好きなので、通常は 2 番目のオプション (段落、リスト、別の段落) を使用します。しかし、私の頭の中で、リストが実際にテキストの流れを壊していないテキストは考えられないので、リストの後に新しい段落を開始しても害はないようです.

于 2010-07-07T02:02:40.783 に答える