2014-11-02 60 views
0

這真的很怪異的事情已經發生。我有一個代碼:ul爆發p elemant

<p class="desc"><img class="portrait" src="../images/albums/pxal_prism.jpg" /> 
    <ul class="song_list"> 

     <li>Prism</li> 
     <li>Other Song</li> 
     <li>Some other song</li> 
     <li>you know...</li> 
     <li>getting ridiculous</li> 

    </ul> 

    </p> 

當我做檢查元素看起來是這樣的:

<p class="desc"><img class="portrait" src="../images/albums/pxal_prism.jpg" /></p> 
    <ul class="song_list"> 

     <li>Prism</li> 
     <li>Other Song</li> 
     <li>Some other song</li> 
     <li>you know...</li> 
     <li>getting ridiculous</li> 

    </ul> 

    <p></p> 

因此我UL是不是在正確的位置(PIC旁)。請幫忙。

+0

請參考這個http://stackoverflow.com/questions/5681481/should-ol-ul-be-inside-p-or-outside – 2014-11-02 13:23:30

回答

1

<p>預計內聯內容,但您指定了<ul>標記,它是一個塊元素。這是不允許的,所以瀏覽器在<ul>開始之前自動關閉<p>元素。

想想第二秒的語義:<p>被稱爲段落。段落不能包含列表。您應該使用預計爲流量內容<diV>而不是段落,因此允許使用<ul>標記。

0

刪除p標記,您可以使用div標記。 使用CSS屬性(float:left)到img標記和ul,這樣它們會彼此相鄰。

+0

你應該真的向提問者解釋爲什麼你需要使用div來代替。請參閱此答案以獲取更多詳細信息: http://stackoverflow.com/questions/5681481/should-ol-ul-be-inside-p-or-outside – ShaneQful 2014-11-02 13:32:05

1

根據http://www.w3.org/TR/html401/struct/text.html#h-9.3.1,P元素「不能包含塊級元素(包括P本身)」。

<!ELEMENT P - O (%inline;)* -- paragraph -->

這意味着P元件只能有裏面的內聯元件。

根據你的HTML,你使用:

<p> --block element <img..../> -- inline element which is allowed **<ul>...</ul>** -- block element which is not allowed </p>

代替對的,你可以使用DIV元素。