这种真正怪异的事情一直在发生。我有一个代码:
<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不在正确的位置(在图片旁边)。请帮忙。
答案 0 :(得分:1)
<p>
需要内联内容,但您指定了<ul>
标记,这是一个块元素。这是不允许的,因此浏览器会在<p>
开始之前自动关闭<ul>
元素。
考虑一秒钟的语义:<p>
被称为段落。段落不能包含列表。您应该使用期望流内容的<diV>
而不是段落,因此允许使用<ul>
标记。
答案 1 :(得分:1)
根据http://www.w3.org/TR/html401/struct/text.html#h-9.3.1, P 元素&#34;不能包含块级元素(包括P本身)。&#34;
<!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 元素而不是P.
答案 2 :(得分:0)
删除p
代码,您可以使用div
代码。
使用CSS属性(float:left)到img
标记和ul
,这样它们就会彼此相邻。