我听说将一个块元素放在内联元素中是一个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>
Run Code Online (Sandbox Code Playgroud)
但是,如果你display:block
在样式表中设置外部锚点的样式呢?还是错吗?块级和内联元素的HTML 4.01规范似乎这样认为:
样式表提供了指定任意元素的呈现的方法,包括元素是呈现为块还是内联.在某些情况下,例如列表元素的内联样式,这可能是合适的,但一般来说,不鼓励作者以这种方式覆盖HTML元素的传统解释.
有没有人对此问题有任何进一步的提示?
我正在尝试创建一个无序列表,其中列表项是链接,而不仅仅是其中的文本.但这不是有效的.使用https://validator.w3.org/check检查我的代码时,我收到了消息
元素a在此上下文中不允许作为元素ul的子元素.
这是代码:
<html lang="en">
<head>
<meta charset="utf-8">
<title>test</title>
<style>
ul {
list-style:none;
}
a {
text-decoration:none;
color: #212121;
font-size: 1em;
font-family: Arial, Helvetica, sans-serif;
}
#container {
padding:20px;
}
.valid {
background-color:blanchedalmond;
}
.invalid {
background-color:aquamarine;
}
.nav-item {
width:120px;
height:34px;
margin:4px;
line-height:34px;
text-align:center;
border: solid 1px #212121;
}
</style>
</head>
<body>
<div id="container">
<ul>
<li class="valid nav-item"><a href="index.html">valid</a></li>
<a href="index.html"><li class="invalid nav-item">invalid</li></a>
</ul>
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
无效的安排<a><li></li></a>
是我想要以行为方式实现的,整个<li>
元素可以作为链接选择.
如果我想维护有效的代码,那么实现可选择的最佳方法是<li> …