这个问题更多的是出于好奇而不是被困住。我知道在html id中需要是唯一的,我可以在html验证中看到错误。然而,浏览器很乐意将样式表应用于这两个元素。是因为他们在解析或更简单时更放松。这是否意味着我可以将它用于造型等,或者它是否有副作用。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title></title>
<style type="text/css">
#abc { color: red; }
</style>
</head>
<body>
<div id="abc">Hello Div 1</div>
<div id="abc">Hello Div 2</div>
</body>
</html>
浏览器输出
答案 0 :(得分:3)
如果您的浏览器每次加载有错误的HTML页面时都会死亡,那么它一直在消亡。你不会想太多的浏览器。
对于浏览器来说,尽可能宽容并尽可能地利用它所拥有的功能,这一点非常重要。因此,所有浏览器在处理标记方面往往都非常宽容。
当然,这并不意味着您不应该编写有效的HTML。
答案 1 :(得分:0)
我不会依赖这种行为。如您所知,拥有两个具有相同ID的元素是错误的。
是的,HTML中的容忍错误在某种程度上可以补偿。例如,缺少结束标签。这或多或少都有效,具体取决于错误。
应使用CSS classes完成几个元素的样式设计。
答案 2 :(得分:0)
使用“class”来调整css。
副作用:当您想要使用getElementById并添加动态功能时,您会觉得不太舒服。从设计角度来看并不重要。