这两种方法中哪一种符合W3C标准?它们是否都能在浏览器中正常运行?
边界:没有; 边界:0;
这两种方法中哪一种符合W3C标准?它们是否都能在浏览器中正常运行?
边界:没有; 边界:0;
当前回答
我使用:
border: 0;
从CSS 2.1中的8.5.4开始:
“边界” 取值:[<border-width> || <border-style> || <'border-top-color'>] | inherit
两种方法看起来都没问题。
其他回答
正如其他人所说的那样,两者都是有效的,而且会奏效。但我并不是百分之百确信它们是一样的。如果你有一些样式级联,那么理论上它们可以产生不同的结果,因为它们有效地覆盖了不同的值。
为例。如果你设置“border: none;”,然后有两个不同的样式来覆盖边界宽度和样式,那么一个会做一些事情,另一个不会。
在下面的例子中,在IE和firefox上,前两个测试div没有边界。然而,后两个是不同的,第一个div在第二个块是平原和第二个div在第二个块有一个中等宽度虚线边界。
所以虽然它们都是有效的,但你可能需要注意你的样式,如果它们做了很多级联之类的事情。
<html>
<head>
<style>
div {border: 1px solid black; margin: 1em;}
.zerotest div {border: 0;}
.nonetest div {border: none;}
div.setwidth {border-width: 3px;}
div.setstyle {border-style: dashed;}
</style>
</head>
<body>
<div class="zerotest">
<div class="setwidth">
"Border: 0" and "border-width: 3px"
</div>
<div class="setstyle">
"Border: 0" and "border-style: dashed"
</div>
</div>
<div class="nonetest">
<div class="setwidth">
"Border: none" and "border-width: 3px"
</div>
<div class="setstyle">
"Border: none" and "border-style: dashed"
</div>
</div>
</body>
</html>
这是Firefox 78.0.2(64位)的结果:
img {
border: none;
border-top-color: currentcolor;
border-top-style: none;
border-top-width: medium;
border-right-color: currentcolor;
border-right-style: none;
border-right-width: medium;
border-bottom-color: currentcolor;
border-bottom-style: none;
border-bottom-width: medium;
border-left-color: currentcolor;
border-left-style: none;
border-left-width: medium;
}
img {
border: 0;
border-top-color: currentcolor;
border-top-style: none;
border-top-width: 0px;
border-right-color: currentcolor;
border-right-style: none;
border-right-width: 0px;
border-bottom-color: currentcolor;
border-bottom-style: none;
border-bottom-width: 0px;
border-left-color: currentcolor;
border-left-style: none;
border-left-width: 0px;
border-image-outset: 0;
border-image-repeat: stretch;
border-image-slice: 100%;
border-image-source: none;
border-image-width: 1;
}
日期:20200720
它们实际上是等价的,指向不同的快捷方式:
border: 0;
//short for..
border-width: 0;
另一个…
border: none;
//short for...
border-style: none;
两者都可以,只要选择一个就可以了:)
用css删除边框的最简单方法
border: 0;
虽然结果很可能是相同的(没有边界),但0和none在技术上解决的是不同的问题。
0表示边框宽度,none表示边框样式。显然宽度为0的边框是不存在的,因此没有样式。
但是,如果稍后在样式表中打算覆盖这一点,那么自然需要专门处理其中一个。如果我现在想要一个3px的边框,这将直接覆盖border:宽度为0。如果我现在想要一个虚线边界,这将直接覆盖边界:没有关于样式。