41

<li>...</li>アイテムを<ul>ブロックで囲まずにページに挿入することの危険性は何ですか? 例えば:

<div style="border:solid 1px red;">
    <li>Item</li>
    <li>Another Item</li>
    <li>Yet Another Item</li>
</div>

検証は私の懸念事項の中で最も少ないものです.エンドユーザーが意図したとおりにページを表示する機能について、ブラウザでこれが何を壊す可能性があるのか​​ 疑問に思っています.

4

11 に答える 11

44

有効なマークアップではありません。正しく表示されるかどうかは運次第です。

As you seem to define dangerous by "break in browsers for the end user's ability to view the page as intended", then yes it's dangerous.

Browsers are trying their best to compensate for invalid markup but there is no guarantee at all your page gets displayed correctly.

You say validation is the least of your concerns, please reconsider and have a look at Why Validate?. If you care about your page being displayed correctly with no quirks, then validate.

Finally, HTML Tidy may help you fixing existing html.

EDIT: I submitted your fragment to browsershots.org to see how it gets rendered by different browsers.

于 2010-01-09T00:24:44.887 に答える
13

例のように無効なマークアップを使用すると、さまざまなページで予期しない動作が発生する可能性があります。有効なマークアップを使用すると、ブラウザーは仕様に基づいてコンテンツを表示します (または表示する必要があります)。しかし、無効なマークアップを使用すると、ブラウザはマークアップを解釈して、意図したとおりにページを表示しようとします。希望どおりに表示される場合もあれば、そうでない場合もあります。これは、Mac 上の Firefox 3.5 の例です。

代替テキスト

最初のリストはコードですが、タグを適切な<ul>タグに置き換えてい<div>ます。2番目のリストは正確にあなたのコードです。2 番目のリストには、左側と黒丸の既定の余白がないことに注意してください。

基本的に、このように無効なマークアップを使用しても何も死にませんが、予期せぬ一貫性のない結果につながるため、実際には悪い習慣です。

于 2010-01-09T00:32:54.370 に答える
5

<td>これは、内でタグを使用するのと同じ<p>です。確かに、一部のブラウザでは何とか動作するかもしれませんが、確実に壊れます。このような構成の動作は未定義であり、さまざまなブラウザーでどのように動作するかについての保証はありません。アクセシビリティについては言うまでもなく、スクリーン リーダー プログラムは、この種の構造について非常に当惑するでしょう。

<ul>固有名詞や<ol>タグを使用できないのはなぜですか? スタイルを設定して、 と同じ方法で処理できます<div>

于 2010-01-09T00:25:27.987 に答える
2

正しく表示されない理由がわかりませんが、それ自体が存在することを意図していませんが、正常にレンダリングされます。

おそらく、使用しているマークアップには、適切に行わないことよりもメリット<ul>ないということを説明する必要があります。

于 2010-01-09T00:28:48.823 に答える
2

これは、部分的には他のすべての人の答えを反映しています。どのマークアップでも、テストしているブラウザーで機能するかどうかという経験的な問題があります。あなたはすべてのブラウザでそれをテストしました。それは素晴らしいことであり、作品の大きな部分を占めています。

しかし、それ以上に、テストしていないブラウザーとプラットフォームの組み合わせでどれだけうまく機能するかという仮説的な問題もあります。

  1. それらをテスト セットに含めなかった
  2. それらはまだ存在しないか、
  3. それらはテストに使用できません (たとえば、Web クローラー)

遅かれ早かれ常に関連するこのセットについては、可能な場合は標準に従い、UL タグまたは OL タグを使用する必要があります (この場合)。

また、スクリプトを作成している場合、または誰かがページでスクリプトを作成している場合 (Greasemonkey など)、LI タグの追跡が容易になることにも言及する価値があります。

于 2010-01-09T00:39:29.100 に答える
1

Web デザイナー/開発者として、Frontpage や Microsoft Word でさえ生成できない HTML を書き始めると、途方にくれていることがわかります。

標準への準拠は双方向です。ブラウザー開発者に、高速で信頼性が高く、一貫性のあるレンダリング エンジンを作成してもらいたい場合は、一貫性があり、クリーンで整形式の HTML を作成することで、それらを途中で満たす必要があります。

于 2010-01-09T00:32:41.577 に答える
0

それをどうするかを決めるのはブラウザの実装次第です。本当にこれを行いたい場合は、使用する前に、サポートするすべてのブラウザーでテストしてください。

また、ブラウザの動作は将来変更される可能性があることに注意してください。

于 2010-01-09T00:25:57.037 に答える
0

危険?それは何も爆破しません。レイアウトが何らかの形で重要な場合、問題が発生する可能性があります。

ブラウザがそれをどのようにレンダリングするかはわかりません。

于 2010-01-09T00:26:10.500 に答える
0

<ul>または<ol>タグを入れたくない理由を本当に想像することはできません。それらはリストを定義します。次に、リストの表示方法を制御できます。どちらが重要かは、ブラウザーに任せるのではありません。それらを見逃すと、無効なマークアップを書くだけです。一部のブラウザでは機能しますが、間違いなくそれらを保持してください。

于 2010-01-09T00:27:42.973 に答える
0

ほとんどのブラウザーはおそらくそれを使用して実行しますが、利用可能な 2 つの異なるリスト タイプあります: 順序なし <ul> と順序付きリスト <ol> です。順序付きリストには各項目の番号があります。

<li> タグを使用する代わりに、"•" 箇条書き文字 (•) を使用してから、各行の末尾に <br /> を使用できます。

于 2010-01-09T00:29:32.753 に答える
0

私は不特定の行動に頼りません。それを置き換えて<div><ul>CSS を使用してスタイルを設定します。

于 2010-01-09T00:29:38.493 に答える