2010-12-22 68 views
3

这个问题更多是出于好奇而非被卡住。我知道在HTML ID需要是唯一的,我可以看到在HTML验证错误。然而,浏览器愉快地将样式表应用于这两个元素。是因为他们在解析或什么时候更轻松?这是否意味着我可以将其用于样式等或它有副作用。html中唯一的id值

<!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> 

在浏览器中输出。
alt text

+0

ehhh ....你最好使用CSS类... – dana 2010-12-22 00:05:15

回答

3

如果您的浏览器在每次加载错误的HTML页面时都死掉,它会一直在死。而且你不会想太多的浏览器。

对于浏览器来说尽可能的宽容并尽可能地发挥它的作用是非常重要的。出于这个原因,所有浏览器在处理标记方面往往非常宽松。

当然,这并不意味着你不应该写有效的HTML。

0

我不会依赖那种行为。如你所知,拥有两个具有相同ID的元素是错误的。

是的,HTML中的容忍错误在一定程度上延伸并试图弥补。例如缺少结束标签。这个工作或多或少都是好的,取决于错误。

造型几个元素应该用CSS classes完成。

0

使用“class”来调整css。

副作用:当您要使用getElementById并添加动态功能时,您会感觉不太舒服。从设计角度来说并不重要。