使用此代码时:
<div class="menu">
<ul id="mainnav">
<li><h2><a href="dir1/" >AAAAA</a></h2>
<ul>
<li><a href="dir1/xxx.php"><h3>xxx</h3></a></li>
<li><a href="dir1/xxx2.php"><h3>xxx2</h3></a></li>
<li><a href="dir1/hxxx3.php"><h3>hxxx3</h3></a></li>
</ul>
</li>
我在验证说我应该将<h2>
置于<a>
之外时收到错误消息。
文档类型不允许元素<h2>
当我这样做时,验证通过没有任何问题,但我的造型中断。
有没有办法保持验证和样式?
这是menu
和<h2>
.menu li a{
font: 100% Helvetica, Arial, sans-serif;
display:inline-block;
color: #fff;
}
.menu li a:hover{
color: #014661;
background: url('../images/menu1.png') center left no-repeat;
}
.menu li a h2{
font-size: 92%;
padding: 8px 18px;
font-weight: bold;
text-transform: uppercase;
}
.menu h3{
font-size: 87%;
font-weight: bold;
text-transform: uppercase;
}
.menu li a h2:hover{
background: url('../images/menu2.png') center right no-repeat;
}
答案 0 :(得分:7)
虽然批准的答案可能有效,但这是不好的做法。验证错误是问题的证据。
<a>
是一个内联元素<h2>
是一个块元素
内联元素不能直接放在body元素内;它们必须完全嵌套在块级元素中。
内联元素不应包含包含块级元素。
答案 1 :(得分:4)
h2
位于a
之外,您需要将a h2
样式表中的所有匹配项更改为h2 a
,因此样式表中的顺序与HTML中的顺序相匹配,并将应用样式。