2012-02-23 10 views
3

ここで奇妙なことが起こっています。 http://tinkerbin.com/UZy6H6q4CSS3の遷移プロパティが面白いのはなぜですか?

tinkerbinが表示されない場合は、ここにhtmlとcssがあります。

<head> 
<style> 

ul{ 
    overflow: hidden; 
    padding:0; 
    margin:0; 
    list-style-type:none; 
    background-color: pink; 
    } 

    ul a{ 
    text-decoration: none; 
    color: white; 
    } 

    li{ 
      float: left; 
      height: 30px; 
      line-height: 30px; 
      width: 90px; 
      margin-right: 5px; 
      background-color:red; 
      text-align:center; 
      -webkit-transition: all .6s linear; 
      } 

     #case2 li{ 
      background: none; 
     } 

      #case2 li:hover, li:hover{ 
       background-color: lightblue; 
       } 
</style> 
</head> 

<body> 

    <!-- CASE #1 --> 

    <ul id="case1"> 
    <a href=""><li>Home</li></a> 
    <a href=""><li>Blog</li></a> 
    <a href=""><li>About</li></a> 
    <a href=""><li>Contact</li></a> 
    </ul> 

    <!-- CASE #2 --> 

    <ul id="case2"> 
    <a href=""><li>Home</li></a> 
    <a href=""><li>Blog</li></a> 
    <a href=""><li>About</li></a> 
    <a href=""><li>Contact</li></a> 
    </ul> 
</body> 

ので、問題:

は-the移行はCASE#1上では動作しません。
li要素から "background-color"を削除すると(ケース#2のように)動作しますが、li要素の上からカーソルを戻すと、背景色が消えてしまう透明に戻ると、最初は黒くなります。

私はいつも "a"タグがliの中にネストされていることをテストしました。しかし、仕様によれば、 "li"を "a"タグで囲むことができるので、それがなぜ機能しないのでしょうか?何か不足していますか?

ああ、私はChromeを使用しています。おそらく関連性があります。無効である内部のリチウムを入れ http://tinkerbin.com/5kMLVVKk

+0

ul(とその点についてはol)は、li以外の要素を子要素として持つことはできません - liをラップするタグを無効にすることはできますか?レンダリングを台無しにするかもしれないかもしれませんか? – banzomaikaka

答えて

2

+0

www.whatwg.org/specs/web-apps/current-work/#the-a-element-> 'li'要素は、フローコンテンツではないので、'a'はラップできません。 – banzomaikaka

+0

そして、はい、答えてくれてありがとう。 – banzomaikaka

1

li

チェックこの内aタグを入れてください。 htmlを検証しようとすると、正しいマークアップに従わないため、検証されません。 アンカータグ()はスタンドアロンタグで、一方、liはリストタグであり、ulまたはolの直下の子要素です。お役に立てれば。 :)

詳細については、w3schools.comを参照してください。

+0

はい、私は知っています。私もそれをテストしました。私の問題は、なぜ私が「コード化」したように、それが機能しないのかを知ることにあります。 'a'の中の' li'の何が問題なのですか?仕様に応じてできないのですか? 'li'は' ul'または 'ol'タグの直前に付ける必要がありますか?または、エラーはHTMLと完全に無関係ですか?それは単なる定義されていないエラーですか?何が私を欠いている? – banzomaikaka

+1

LIはアンカータグ内にLIを付けるのは間違いです。なぜなら、LIはULのすぐ子だからです。たとえば、inspect要素を持つfirefoxでHTMLを見た場合、このような構造がレンダリングされます。 "

  • Home
  • "またIEも見たことがあります。 – sandeep

    関連する問題