【发布时间】:2010-12-15 09:47:05
【问题描述】:
W3C 验证器告诉我不能将块级元素放入内联元素中。有道理……
但是如果我使用 CSS 将块级元素更改为内联元素呢?
如果我使用 CSS 将内联元素转换为块级元素(在另一个内联元素中时)怎么办?
Validator 显然没有意识到这一点,但这是错的吗?
(我实际上并没有这样做,我只是想知道最佳实践)
【问题讨论】:
W3C 验证器告诉我不能将块级元素放入内联元素中。有道理……
但是如果我使用 CSS 将块级元素更改为内联元素呢?
如果我使用 CSS 将内联元素转换为块级元素(在另一个内联元素中时)怎么办?
Validator 显然没有意识到这一点,但这是错的吗?
(我实际上并没有这样做,我只是想知道最佳实践)
【问题讨论】:
在 HTML 规范中定义为块元素的元素与在 CSS 中定义为 display: block; 的元素不同。
我的意思是:即使你说<p style="display: inline;">Lorem...</p>。 <p> 在 HTML 眼中仍然是块元素。
如果使用得当,HTML、CSS 和 JavaScript 据说彼此具有loose coupling,并且其中一个不应依赖于另一个,并且缺少一个不应导致其他(或整个系统)失败。
【讨论】:
作为内联元素的元素不应包含块元素。块元素可以包含块和/或内联元素,而内联元素只能包含其他内联(包括inline-block,例如<img>)元素。
当然,无论如何您都可以这样做,因为图形表示在浏览器中会非常一致。不过,我仍然不建议这样做,也想不出这样做的理由。
【讨论】:
<a>(内联元素)经常看到包含一个<div>(块元素)。