web-dev-qa-db-ja.com

<ul>タグを囲まずに<li>を使用することは危険ですか?

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

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

検証は私が心配することの最も少ないものです。エンドユーザーが意図したとおりにページを表示できないために、ブラウザーでこれが何に影響するのか疑問に思っています。

34
jball

それはまったく有効なマークアップではありません。正しく表示される場合、それは運の問題です。

「エンドユーザーが意図したとおりにページを表示できないためにブラウザを壊す」ことで危険と定義しているように思われる場合は、危険です。

ブラウザは無効なマークアップを補正するために最善を尽くしていますが、ページが正しく表示される保証はありません。

あなたは検証があなたの懸念の最も少ないと言います、再検討してください なぜ検証? を見てください。癖がなく、ページが正しく表示されることに関心がある場合は、検証してください。

最後に、 HTML Tidy は既存のhtmlを修正するのに役立ちます。

編集: フラグメントをbrowsershots.orgに送信して、さまざまなブラウザーでどのようにレンダリングされるかを確認します

38
Gregory Pakosz

例のように無効なマークアップを使用すると、異なるページで予期しない動作が発生する可能性があります。有効なマークアップを使用すると、ブラウザは仕様に基づいてコンテンツを表示します(または表示する必要があります)。しかし、無効なマークアップを使用すると、ブラウザはマークアップを相互に試行して、ページをどのように表示するか意図したとおりになります。時々彼らはあなたが望む方法でそれを表示します、時々そうではありません。 Mac上のFirefox 3.5の例を以下に示します。

alt text

最初のリストはコードですが、適切な<ul>タグの代わりに<div> 鬼ごっこ。 2番目のリストは正確にコードです。 2番目のリストには、左側と箇条書きのデフォルトのマージンがないことに注意してください。

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

12
NerdStarGamer

これは、<td>内で<p>タグを使用するのと同じです。確かに、一部のブラウザーでは何らかの方法で機能する可能性がありますが、確実に機能しなくなります。このような構成の動作はndefinedであり、異なるブラウザでどのように機能するかについての保証はありません。アクセシビリティについては言うまでもありませんが、スクリーンリーダープログラムは、この種の構造にかなり戸惑います。

適切な<ul>または<ol>タグを使用できないのはなぜですか?スタイルを設定でき、<div>と同じように処理します。

5
Tatu Ulmanen

それが正しく表示されない理由はわかりませんが、それ自体に存在することを意図したものではないため、うまく表示されます。

おそらく<ul>使用しているマークアップにはnoメリットがあります。

2
JP Silvashy

これは、他のすべての人の答えを部分的に反映しています。マークアップを使用すると、テストしているブラウザで機能するかどうかの経験的な質問があります。すべてのブラウザーでテストし、満足しています。それはクールで、仕事の大部分です。

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

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

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

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

2
Dan Rosenstark

Webデザイナ/開発者は、FrontpageやMicrosoft Wordでも生成されないHTMLを書き始めたとき、あなたは途方に暮れていることを知っています。

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

1
leepowers

異なるブラウザーでの予期しないレンダリング動作? SEO?

0
Bahadir Cambel

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

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

0
Cameron

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

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

0
mark123

<ul>タグまたは<ol>タグを配置したくない理由を実際に想像することはできません。これらはリストを定義します。これで、リストの表示方法を制御できるようになり、ブラウザーが決定することはできません。これは重要です。それらを逃すことは、無効なマークアップを書き込むだけです。そう、それは一部のブラウザーで機能しますが、idは間違いなくそれらを保持します。

0
cast01

私は不特定の行動に依存しないでしょう。ただそれを置き換えてください<div> 沿って <ul>とCSSを使用してスタイルを設定します。

0
BalusC