我有一个网站,其中有一个样式为<header>
的元素,它的背景图像是通过background-image
属性设置的。我希望这个元素能够链接到首页。
有没有一种优雅的方法可以实现这个功能,并且保持background-image
的样式?
CSS:
#header {
background-image: url('../images/header.jpg');
height: 144px;
display: block;
}
我有一个网站,其中有一个样式为<header>
的元素,它的背景图像是通过background-image
属性设置的。我希望这个元素能够链接到首页。
有没有一种优雅的方法可以实现这个功能,并且保持background-image
的样式?
CSS:
#header {
background-image: url('../images/header.jpg');
height: 144px;
display: block;
}
<header>
元素,但 CSS 代码使用了一个类选择器 #header
。从技术上讲,你可以使用 <header class=header>
,但这是相当无意义的,而 #header
表明实际标记具有 <div class=header>
。
就实际浏览器行为而言,<header>
元素和 <div>
元素都可以放置在 <a>
元素内。HTML 规范传统上禁止这种构造,但 HTML5 CR 允许在 <a>
内使用任何“流内容”。
如果标题只是一个图像(作为背景图像),那么在 a
元素上直接设置背景图像似乎更自然。然而,这会降低可访问性,因为没有办法为背景图像指定替代文本,因此对于屏幕阅读器和禁用图像加载的浏览器来说,将出现一个没有内容、没有链接文本的链接。因此,如果标题应该是一个链接,最好使用内容图像,例如:
<header>
<a href="./"><img src=hdr.png alt="ACME Company" border=0></a>
</header>
在HTML5中,锚点现在是块级元素,因此它们可以包含像h1
、p
和div
这样的块级元素。但是,它们不应该包含header
、article
、nav
、section
等。
如果您无法访问标记或CSS,则可以使用JavaScript为标题元素分配onClick
事件,但这当然需要JavaScript才能工作。
相反,您需要使用a
将header
的内容包装起来,并将其分配一个指向主页的href
。然后,您可以使用背景图像和其他CSS样式化链接(确保将其设置为display:block
)。
<div id="header">
</div>
添加 span 使标题成为链接
<span><a href="http://www.yourwebsitename.com/">
<div id="header">
</div></a></span>