CSS中边框和轮廓属性的区别是什么?
如果没有区别,为什么同一事物有两种性质?
CSS中边框和轮廓属性的区别是什么?
如果没有区别,为什么同一事物有两种性质?
当前回答
同样值得注意的是,W3C的大纲是IE的边界,因为IE没有实现W3C的盒子模型。
在w3c box模型中,边框与元素的宽度和高度无关。在IE中,它是包容性的。
其他回答
来自W3学校网站
CSS边框属性允许您指定元素边框的样式和颜色。
轮廓线是在元素周围(边界外)画的线,使元素“突出”。
大纲简写属性在一个声明中设置所有大纲属性。
可以设置的属性依次为:outline-color, outline-style, outline-width。
如果上面的一个值缺失,例如。"outline:solid #ff0000;",如果有,将插入缺失属性的默认值。
点击这里查看更多信息: http://webdesign.about.com/od/advancedcss/a/outline_style.htm
同样值得注意的是,W3C的大纲是IE的边界,因为IE没有实现W3C的盒子模型。
在w3c box模型中,边框与元素的宽度和高度无关。在IE中,它是包容性的。
think about outline as a border that a projector draw outside something as a border is an actual object around that thing. a projection can easily overlap but border don't let you pass. some times when i use grid+%width, border will change the scaling on view port,for example a div with width:100% in a parent with width:100px fills the parent completely, but when i add border:solid 5px to div it make the div smaller to make space for border(although it's rare and work-aroundable!) but with outline it doesn't have this problem as outline is more virtual :D it's just a line outside the element but the problem is if you don't do spacing properly it would overlap with other contents.
简而言之: 优点:轮廓 它不会打乱间距和位置 缺点: 重叠几率高
谷歌web.dev对盒子模型有一个很好的解释。
边框框围绕填充框,其空间由边框值占用。边界框是方框的边界,边界边缘是视觉上可以看到的范围。border属性用于可视化地为元素设置框架。
边距框,是你的方框周围的空间,由方框的边距规则定义。轮廓和框影等属性也占用了这个空间,因为它们被绘制在顶部,所以它们不会影响框的大小。你可以在我们的盒子上设置一个200px的轮廓宽度,包括边框在内的所有东西都将是完全相同的大小。
Border是在元素内部创建的,而outline是在元素外部创建的。因此,border与元素的宽度和高度一起计算,而outline绘制在元素外部。