【发布时间】:2012-08-07 13:10:22
【问题描述】:
我看到一些人在 css 中写了类似的东西
.together
{
display:inline;
display:inline-block;
}
不仅限于显示样式,还以背景大小或背景图像为例
这样做的目的是什么?我的意思是第二个会覆盖第一个,那何必呢?
【问题讨论】:
我看到一些人在 css 中写了类似的东西
.together
{
display:inline;
display:inline-block;
}
不仅限于显示样式,还以背景大小或背景图像为例
这样做的目的是什么?我的意思是第二个会覆盖第一个,那何必呢?
【问题讨论】:
通常这种类型的行为表明浏览器为了兼容性而被破解。当浏览器检测到他们不知道的属性或值时,他们会忽略它。因此,如果您首先放置最广泛接受的属性,如果后面的属性都不兼容,浏览器将“退回”到该行为。
【讨论】:
有可能它是为了浏览器兼容性而编写的。他们可能希望元素的display 值为inline-block,但并非所有浏览器都支持所有元素。 Sitepoint 对display property 的兼容性有很好的参考。
background 属性是所有与背景相关的属性的简写,因此通常在一个选择器上设置background,然后只在其他选择器上覆盖特定的背景属性。同样,您可能有多个浏览器兼容性的背景声明。
【讨论】:
让我们举个例子。
<html>
<head>
<style>
.carlist
{
background-color: red;
height: 30px;
margin: 10px;
margin: 20px;
}
</style>
</head>
<body onload="loadCars()">
Check div style.
<div id="mydiv" class="carlist"></div>
</body>
</html>
在上面的示例中,我们声明了 2 个边距。我检查并发现浏览器(FF,IE,Chrome)接受了第二个声明。所以我认为如果我们将其用于浏览器兼容性,那么最终应该声明最特定于浏览器的样式。但是还有其他方法可以定义浏览器特定的样式。所以最好定义单个属性。
【讨论】:
margin 属性相同;这个例子对浏览器兼容性没有帮助。