0

我只是注意到<p>外面的 div,所以“你想收到...”在里面 a <p>,然后在 div 之后有一个空的<p></p>,而不是全部在里面<p>

有人在这里看到错误吗?

<p class="subs1">
                Do you want to receive our emails and new collection previews? 
                <div style="" class="styledRadio first_radio">
                    <input type="radio" value="yes" name="user[collection_previews]" style="display: none;">
                </div>
                Yes 
                &nbsp;&nbsp;&nbsp;
                <div style=" width: 20px; height: 20px; cursor: pointer; background-position: 0px 0px;" class="styledRadio">
                    <input type="radio" value="no" name="user[collection_previews]" style="display: none;">
                </div>
                No
            </p>

整个事情应该在 subs1 p 里面,但它不是

4

3 回答 3

5

您不能在标签中使用块元素 ( <div>, <form>, <p>) 等。<p>使用<div>而不是<p>.

<div class="subs1">...</div>

http://www.w3.org/TR/html-markup/p.html声明只phrasing content允许。这意味着这些元素中没有块元素。

于 2013-04-23T11:05:47.240 回答
3

p用于包含文本段落,而不是像s这样的块元素。div

您的浏览器被迫重新组织节点,因为您编写它们的方式是无效的 HTML,并且无法解析为有效且有意义的 DOM 树。

考虑将 adiv用于最外层的容器,而不是p.

于 2013-04-23T11:14:16.943 回答
3

<p>标签不能包含块级标签,它们被认为是无效的 html,这说明了您的页面呈现方式。它将块元素(<div>在这种情况下)分解为块级元素。

尝试将<div>s 更改为 a <span>

div 是“块”类型,这就是它们突破到自己的行的原因。将它们更改为跨度(也是内联的)将允许您将项目包装在标签中,同时仍将它们保持在一行中。

于 2013-04-23T11:04:01.140 回答