我听说将block元素放入内联元素是HTML的罪过:
<a href="http://www.mydomain.com"><div> What we have here is a problem. You see, an anchor element is an inline element, and the div element is a block level element. </div></a>
但是,如果您像display:block样式表那样设置外部锚点,该怎么办?还是错吗?关于块级和内联元素的HTML 4.01规范似乎是这样认为的:
display:block
样式表提供了一种方法来指定任意元素的呈现,包括将元素呈现为块还是内联。在某些情况下,例如列表元素的内联样式,这可能是适当的,但总的来说,不鼓励作者以这种方式覆盖HTML元素的常规解释。
有人对此问题有其他建议吗?
根据您要满足的HTML版本:
HTML 5 声明<a>元素“只要其中没有交互内容(例如按钮或其他链接),就可以包裹整个段落,列表,表格等,甚至整个节”。
<a>
HTML 4.01 指定<a>元素只能包含内联元素。A<div>是一个块元素,因此它可能不会出现在内<a>。
<div>
当然,您可以随意设置一个内联元素的样式,使其看起来像是一个块,或者也可以对一个块进行样式化,以使其内联。在HTML中,术语inline和的使用是block指元素与文档语义结构的关系,而CSS中的相同术语则更多地与元素的视觉样式相关。如果使内联元素以块状显示,那很好。
inline
block
但是,当不存在CSS时(例如,通过屏幕阅读器等辅助技术进行访问时,或者由强大的Googlebot进行检查时),您应该确保文档的结构仍然有意义。