CSS中边框和轮廓属性的区别是什么?
如果没有区别,为什么同一事物有两种性质?
CSS中边框和轮廓属性的区别是什么?
如果没有区别,为什么同一事物有两种性质?
当前回答
谷歌web.dev对盒子模型有一个很好的解释。
边框框围绕填充框,其空间由边框值占用。边界框是方框的边界,边界边缘是视觉上可以看到的范围。border属性用于可视化地为元素设置框架。
边距框,是你的方框周围的空间,由方框的边距规则定义。轮廓和框影等属性也占用了这个空间,因为它们被绘制在顶部,所以它们不会影响框的大小。你可以在我们的盒子上设置一个200px的轮廓宽度,包括边框在内的所有东西都将是完全相同的大小。
其他回答
来自W3学校网站
CSS边框属性允许您指定元素边框的样式和颜色。
轮廓线是在元素周围(边界外)画的线,使元素“突出”。
大纲简写属性在一个声明中设置所有大纲属性。
可以设置的属性依次为:outline-color, outline-style, outline-width。
如果上面的一个值缺失,例如。"outline:solid #ff0000;",如果有,将插入缺失属性的默认值。
点击这里查看更多信息: http://webdesign.about.com/od/advancedcss/a/outline_style.htm
作为一个使用“outline”的实际示例,系统后面模糊的虚线边界集中在一个网页上(例如。可以使用outline属性来控制(至少,我知道它可以在Firefox中,没有尝试过其他浏览器)。
一种常见的“图像替换”技术是使用,例如:
<div id="logo"><a href="/">Foo Widgets Ltd.</a></div>
在CSS中:
#logo
{
background: url(/images/logo.png) center center no-repeat;
}
#logo a
{
display: block;
text-indent: -1000em;
}
问题是当焦点到达标签时,轮廓会向左偏移1000em。Outline可以让您关闭这些元素的焦点轮廓。
我相信IE开发者工具栏在“选择”模式下突出显示要检查的元素时,也使用了一些类似“隐藏”的东西。这很好地说明了“提纲”不占空间的事实。
来自:http://webdesign.about.com/od/advancedcss/a/outline_style.htm
CSS outline属性是一个令人困惑的属性。当你第一次了解它时,你很难理解它与边境财产有什么不同。W3C将其解释为以下区别: 大纲不占用空间。 轮廓可以是非矩形的。
摘自W3Schools:
定义和用法 轮廓是画出来的一条线 在元素周围(边界之外) 让元素“脱颖而出”。
除了一些其他的答案之外……以下是我能想到的更多不同之处:
1)圆角
Border使用Border -radius属性支持圆角。大纲没有。
div { width: 150px; height: 150px; margin: 20px; display: inline-block; position: relative; } .border { border-radius: 75px; border: 2px solid green; } .outline { outline: 2px solid red; border-radius: 75px; -moz-outline-radius: 75px; outline-radius: 75px; } .border:after { content: "border supports rounded corners"; position: absolute; bottom: 0; transform: translateY(100%); } .outline:after { content: "outline doesn't support rounded corners"; position: absolute; bottom: 0; transform: translateY(100%); } <div class="border"></div> <div class="outline"></div>
小提琴
(注意:虽然firefox有-moz-outline-radius属性,允许在轮廓上使用圆角…此属性在任何CSS标准中都没有定义,其他浏览器也不支持(源代码))
2)只做一面造型
Border具有属性,可以用Border -top:、Border -left:等来设置每条边的样式。
大纲不能这样做。没有大纲等等。要么全有,要么全无。(见这篇SO帖子)
3)抵消
Outline支持使用Outline -offset属性的偏移量。边界不。
.outline { 保证金:100 px; 宽度:150 px; 身高:150 px; outline-offset: 20 px; 轮廓:2px实心红色; 边框:2px纯绿色; 背景:粉色; } < div class = "大纲" > < / div >
小提琴
注意:除Internet Explorer外,所有主流浏览器都支持outline-offset