在HTML中,块级元素是否总是包装 <a>
标签?如果标记包含块级元素以确保应用正确的样式,该怎么办?例如可以这样
<h3><a href="/">Your Header</a></h3>
是的
<a href="/"><h3>Your Header</h3></a>
注意:我正在采用后一种方法来确保应用正确的样式(我正在使用遗留代码,这对于这一个元素不值得重新工作),但在这样做时我很想知道是什么社区的观点是 .
是的,我已经阅读了这个问题In HTML which way round should a and h1 be nested?但我不确定是否有一个不同或更灵活的规则适用于 <h3>
标签 .
接下来的评论并再次查看代码,我有两个可能的解决方案:
-
用
<a>
元素包装<h3>
元素(在HTML5中确定) -
将
.class a
添加到CSS,以便它继承父div
样式,如下所示:
HTML
<div class="class">
<h3><a href="/">Your Header</a></h3>
</div>
CSS
.class, .class a {
width:296px;
height:46px;
overflow:hidden;
color:#FE5815;
}
4 回答
在此上下文中,绝对允许
a
元素包含h3
元素,至少根据HTML5 .a
元素称为"transparent"元素:它可以包含其父元素可能包含的任何内容 . 唯一的标准是它可能不包含任何其他"interactive"内容,例如其他a
元素,button
元素,iframe
元素 . 在这种情况下,假设允许第一个版本,HTML5下也允许使用第二个版本 .This is the page in the HTML5 spec指定了这一点 . 不幸的是,需要一点解释才能理解......
请注意,HTML5中有一个案例
会有效,但是
不会,而且
<h3>
元素的父元素是<hgroup>
元素 .<hgroup>
元素只能包含<h?>
子元素,因此,当<a>
元素的透明内容模型允许<h3>
成为其子元素时,<a>
元素将作为<hgroup>
的子元素保持无效 .在这种情况下
和
是唯一有效的安排 .
两者都可以
但如果我不关心锚中的任何东西,我会使用第一个,我只是想让它看起来像
<h3>
如果我担心锚定需求的特定部分,我将使用第二个
<h3>
. 对于下面的例子我需要第二个 .
在HTML 4.01和XHTML中,
h3
标记可能包含a
标记,但不是相反 .在HTML5中,两种方式都是有效的 . 如果
a
标记包含h3
标记,则a
标记不得嵌套在不能包含h3
元素的元素中 .