【发布时间】:2015-05-14 15:02:42
【问题描述】:
我只是在创建一个简单的地址容器,而我的 HTML 中只有以下简单的标记:
<p class="address">
<ul>
<li>hello</li>
<li>hello</li>
<li>hello</li>
</ul>
</p>
以及以下 CSS:
.address {
-webkit-box-shadow: 1px 1px 1px rgba(0,0,0,.5);
box-shadow: 1px 1px 1px rgba(0,0,0,.5);
}
现在 <p> 元素不知何故不包含 ul 并且 box-shadow 也没有应用于 p 标签,但是当我用 div 标签替换 p 标签时,一切正常寻找。 div 包含ul(可以在检查元素中看到),并且 div 有一个 box-shadow。我已经在 FF 和 Chrome 中检查过这个问题,但不知道为什么会出现这个故障。
【问题讨论】:
-
供您参考
http://stackoverflow.com/questions/5681481/should-ol-ul-be-inside-p-or-outside。考虑使用divistead。 -
@AlexanderSolonik 不,为什么?
-
@AlexanderSolonik 我不明白你的意思。假设地址只是一个文本,它不必必须包含在
<p>中。 -
无论如何,为了回答技术问题,
</p>结束标记是可选,所以当解析器看到<ul>它知道<p>应该结尾。确实如此!所以<p>完全是空的,这就是它没有被绘制的原因。没有边距,没有阴影。 -
@AlexanderSolonik 这些页面描述了
<address>元素,在这种情况下不适用。你没有使用<address>元素。