CSS边框、边距、轮廓(边框宽度/颜色/各边/简写属性/圆角边框/内外边距/高度宽度/框模型/轮廓宽度/颜色/属性/偏移)——万字长文|一文搞懂

news2024/9/20 16:45:50

目录

CSS边框

CSS 边框属性

CSS 边框样式

实例

CSS 边框宽度

实例

特定边的宽度

实例

CSS 边框颜色

实例

特定边框的颜色

实例

HEX 值

实例

RGB 值

实例

HSL 值

实例

CSS 边框 - 单独的边

实例

不同的边框样式

实例

它的工作原理是这样的:

border-style: dotted solid double dashed;

border-style: dotted solid double;

border-style: dotted solid;

border-style: dotted;

实例

CSS Border - 简写属性

实例

左边框

下边框

CSS 圆角边框

实例

更多实例

所有 CSS 边框属性

CSS 外边距

Margin - 单独的边

实例

Margin - 简写属性

工作原理是这样的:

实例

实例

实例

实例

auto 值

实例

inherit 值

实例

延伸阅读

外边距合并

所有 CSS 外边距属性

CSS 内边距

Padding - 单独的边

实例

Padding - 简写属性

工作原理是这样的:

实例

实例

实例

实例

内边距和元素宽度

实例

实例

更多实例

所有 CSS 内边距属性

延伸阅读

CSS 设置高度和宽度

CSS 高度和宽度值

CSS 高度和宽度实例

实例

实例

设置 max-width

实例

亲自试一试 - 实例

设置 CSS 尺寸属性

CSS 框模型

实例

元素的宽度和高度

实例

​编辑

CSS 轮廓

CSS 轮廓样式

实例

CSS 轮廓宽度

实例

CSS 轮廓颜色

实例

HEX 值

实例

RGB 值

实例

HSL 值

实例

反转颜色

实例

CSS Outline - 简写属性

实例

CSS 轮廓偏移

实例

实例

所有 CSS 轮廓属性

总结


CSS边框


CSS 边框属性

CSS border 属性允许指定元素边框的样式、宽度和颜色。


CSS 边框样式

border-style 属性指定要显示的边框类型。

允许以下值:

  • dotted - 定义点线边框
  • dashed - 定义虚线边框
  • solid - 定义实线边框
  • double - 定义双边框
  • groove - 定义 3D 坡口边框。效果取决于 border-color 值
  • ridge - 定义 3D 脊线边框。效果取决于 border-color 值
  • inset - 定义 3D inset 边框。效果取决于 border-color 值
  • outset - 定义 3D outset 边框。效果取决于 border-color 值
  • none - 定义无边框
  • hidden - 定义隐藏边框

border-style 属性可以设置一到四个值(用于上边框、右边框、下边框和左边框)。

实例

演示不同的边框样式:

p.dotted {border-style: dotted;}
p.dashed {border-style: dashed;}
p.solid {border-style: solid;}
p.double {border-style: double;}
p.groove {border-style: groove;}
p.ridge {border-style: ridge;}
p.inset {border-style: inset;}
p.outset {border-style: outset;}
p.none {border-style: none;}
p.hidden {border-style: hidden;}
p.mix {border-style: dotted dashed solid double;}

结果:

亲自试一试

注意:除非设置了 border-style 属性,否则其他 CSS 边框属性都不会有任何作用!


CSS 边框宽度

border-width 属性指定四个边框的宽度。

可以将宽度设置为特定大小(以 px、pt、cm、em 计),也可以使用以下三个预定义值之一:thin、medium 或 thick:

实例

演示不同的边框宽度:

p.one {
  border-style: solid;
  border-width: 5px;
}

p.two {
  border-style: solid;
  border-width: medium;
}

p.three {
  border-style: dotted;
  border-width: 2px;
} 

p.four {
  border-style: dotted;
  border-width: thick;
}

结果:

亲自试一试


特定边的宽度

border-width 属性可以设置一到四个值(用于上边框、右边框、下边框和左边框):

实例

p.one {
  border-style: solid;
  border-width: 5px 20px; /* 上边框和下边框为 5px,其他边为 20px */
}

p.two {
  border-style: solid;
  border-width: 20px 5px; /* 上边框和下边框为 20px,其他边为 5px */
}

p.three {
  border-style: solid;
  border-width: 25px 10px 4px 35px; /* 上边框 25px,右边框 10px,下边框 4px,左边框 35px */
}

亲自试一试


CSS 边框颜色

border-color 属性用于设置四个边框的颜色。

可以通过以下方式设置颜色:

  • name - 指定颜色名,比如 "red"
  • HEX - 指定十六进制值,比如 "#ff0000"
  • RGB - 指定 RGB 值,比如 "rgb(255,0,0)"
  • HSL - 指定 HSL 值,比如 "hsl(0, 100%, 50%)"
  • transparent

注释:如果未设置 border-color,则它将继承元素的颜色。

实例

演示不同的边框颜色:

p.one {
  border-style: solid;
  border-color: red;
}

p.two {
  border-style: solid;
  border-color: green;
}

p.three {
  border-style: dotted;
  border-color: blue;
}

结果:

亲自试一试


特定边框的颜色

border-color 属性可以设置一到四个值(用于上边框、右边框、下边框和左边框)。

实例

p.one {
  border-style: solid;
  border-color: red green blue yellow; /* 上红、右绿、下蓝、左黄 */
}

亲自试一试


HEX 值

边框的颜色也可以使用十六进制值(HEX)来指定:

实例

p.one {
  border-style: solid;
  border-color: #ff0000; /* 红色 */
}

亲自试一试


RGB 值

或者使用 RGB 值:

实例

p.one {
  border-style: solid;
  border-color: rgb(255, 0, 0); /* 红色 */
}

亲自试一试

HSL 值

也可以使用 HSL 值:

实例

p.one {
  border-style: solid;
  border-color: hsl(0, 100%, 50%); /* 红色 */
}

亲自试一试

可以在 CSS 颜色 章节中学到有关 HEX、RGB 和 HSL 值的更多知识。


CSS 边框 - 单独的边

从上面的例子中,我们已经发现可以为每一侧指定不同的边框。

在 CSS 中,还有一些属性可用于指定每个边框(顶部、右侧、底部和左侧):

实例

p {
  border-top-style: dotted;
  border-right-style: solid;
  border-bottom-style: dotted;
  border-left-style: solid;
}

结果:

亲自试一试


不同的边框样式

上例的结果与此相同:

实例

p {
  border-style: dotted solid;
}

亲自试一试

它的工作原理是这样的:

如果 border-style 属性设置四个值:

border-style: dotted solid double dashed;

  • 上边框是虚线
  • 右边框是实线
  • 下边框是双线
  • 左边框是虚线

如果 border-style 属性设置三个值:

border-style: dotted solid double;

  • 上边框是虚线
  • 右和左边框是实线
  • 下边框是双线

如果 border-style 属性设置两个值:

border-style: dotted solid;

  • 上和下边框是虚线
  • 右和左边框是实线

如果 border-style 属性设置一个值:

border-style: dotted;

  • 四条边均为虚线

实例

/* 四个值 */
p {
  border-style: dotted solid double dashed; 
}

/* 三个值 */
p {
  border-style: dotted solid double; 
}

/* 两个值 */
p {
  border-style: dotted solid; 
}

/* 一个值 */
p {
  border-style: dotted; 
}

亲自试一试

上例中使用的是 border-style 属性。但 border-width 和 border-color 也同样适用。


CSS Border - 简写属性

就像我们如上所见,处理边框时要考虑许多属性。

为了缩减代码,也可以在一个属性中指定所有单独的边框属性。

border 属性是以下各个边框属性的简写属性:

  • border-width
  • border-style(必需)
  • border-color

实例

p {
  border: 5px solid red;
}

结果:

亲自试一试

我们还可以只为一个边指定所有单个边框属性:

左边框

p {
  border-left: 6px solid red;
  background-color: lightgrey;
}

结果:

亲自试一试

下边框

p {
  border-bottom: 6px solid red;
  background-color: lightgrey;
}

结果:

亲自试一试


CSS 圆角边框

border-radius 属性用于向元素添加圆角边框:

实例

p {
  border: 2px solid red;
  border-radius: 5px;
}

亲自试一试


更多实例

一个声明中的所有上边框属性

本例演示简写属性,用于在一条声明中设置上边框的所有属性。

设置下边框的样式

本例演示如何设置下边框的样式。

设置左边框的宽度

本例演示如何设置左边框的宽度。

设置四条边框的颜色

本例演示如何设置四条边框的颜色。它可以拥有一到四种颜色。

设置右边框的颜色

本例演示如何设置右边框的颜色。


所有 CSS 边框属性

属性描述
border简写属性,在一条声明中设置所有边框属性。
border-color简写属性,设置四条边框的颜色。
border-radius简写属性,可设置圆角的所有四个 border-*-radius 属性。
border-style简写属性,设置四条边框的样式。
border-width简写属性,设置四条边框的宽度。
border-bottom简写属性,在一条声明中设置所有下边框属性。
border-bottom-color设置下边框的颜色。
border-bottom-style设置下边框的样式。
border-bottom-width设置下边框的宽度。
border-left简写属性,在一条声明中设置所有左边框属性。
border-left-color设置左边框的颜色。
border-left-style设置左边框的样式。
border-left-width设置左边框的宽度。
border-right简写属性,在一条声明中设置所有右边框属性。
border-right-color设置右边框的颜色。
border-right-style设置右边框的样式。
border-right-width设置右边框的宽度。
border-top简写属性,在一条声明中设置所有上边框属性。
border-top-color设置上边框的颜色。
border-top-style设置上边框的样式。
border-top-width设置上边框的宽度。

  • CSS 圆角边框
  • CSS 外边距合并

亲自试一试


CSS 外边距

CSS margin 属性用于在任何定义的边框之外,为元素周围创建空间。

通过 CSS,可以完全控制外边距。有些属性可用于设置元素每侧(上、右、下和左)的外边距。


Margin - 单独的边

CSS 拥有用于为元素的每一侧指定外边距的属性:

  • margin-top
  • margin-right
  • margin-bottom
  • margin-left

所有外边距属性都可以设置以下值:

  • auto - 浏览器来计算外边距
  • length - 以 px、pt、cm 等单位指定外边距
  • % - 指定以包含元素宽度的百分比计的外边距
  • inherit - 指定应从父元素继承外边距

提示:允许负值。

实例

为 <p> 元素的所有四个边设置不同的外边距:

p {
  margin-top: 100px;
  margin-bottom: 100px;
  margin-right: 150px;
  margin-left: 80px;
}

亲自试一试


Margin - 简写属性

为了缩减代码,可以在一个属性中指定所有外边距属性。

margin 属性是以下各外边距属性的简写属性:

  • margin-top
  • margin-right
  • margin-bottom
  • margin-left

工作原理是这样的:

如果 margin 属性有四个值:

  • margin: 25px 50px 75px 100px;
    • 上外边距是 25px
    • 右外边距是 50px
    • 下外边距是 75px
    • 左外边距是 100px

实例

margin 简写属性设置四个值:

p {
  margin: 25px 50px 75px 100px;
}

亲自试一试

如果 margin 属性设置三个值:

  • margin: 25px 50px 75px;
    • 上外边距是 25px
    • 右和左外边距是 50px
    • 下外边距是 75px

实例

使用已设置三个值的  margin  简写属性:

p {
  margin: 25px 50px 75px;
}

亲自试一试

如果 margin属性设置两个值:

  • margin: 25px 50px;
    • 上和下外边距是 25px
    • 右和左外边距是 50px

实例

使用设置了两个值的 margin 简写属性:

p {
  margin: 25px 50px;
}

亲自试一试

如果 margin 属性设置了一个值:

  • margin: 25px;
    • 所有四个外边距都是 25px

实例

使用设置一个值的 margin 简写属性:

p {
  margin: 25px;
}

亲自试一试


auto 值

我们可以将 margin 属性设置为 auto,以使元素在其容器中水平居中。

然后,该元素将占据指定的宽度,并且剩余空间将在左右边界之间平均分配。

实例

使用 margin: auto

div {
  width: 300px;
  margin: auto;
  border: 1px solid red;
}

亲自试一试


inherit 值

本例使 <p class="ex1"> 元素的左外边距继承自父元素(<div>):

实例

使用 inherit 值:

div {
  border: 1px solid red;
  margin-left: 100px;
}

p.ex1 {
  margin-left: inherit;
}

亲自试一试


延伸阅读

框模型:CSS 外边距


外边距合并指的是,当两个垂直外边距相遇时,它们将形成一个外边距。

合并后的外边距的高度等于两个发生合并的外边距的高度中的较大者。


外边距合并

外边距合并(叠加)是一个相当简单的概念。但是,在实践中对网页进行布局时,它会造成许多混淆。

简单地说,外边距合并指的是:当两个垂直外边距相遇时,它们将形成一个外边距。合并后的外边距的高度等于两个发生合并的外边距的高度中的较大者。

当一个元素出现在另一个元素上面时,第一个元素的下外边距与第二个元素的上外边距会发生合并。请看下图:

亲自试一试

当一个元素包含在另一个元素中时(假设没有内边距或边框把外边距分隔开),它们的上和/或下外边距也会发生合并。请看下图:

亲自试一试

尽管看上去有些奇怪,但是外边距甚至可以与自身发生合并。

假设有一个空元素,它有外边距,但是没有边框或填充。在这种情况下,上外边距与下外边距就碰到了一起,它们会发生合并:

如果这个外边距遇到另一个元素的外边距,它还会发生合并:

这就是一系列的段落元素占用空间非常小的原因,因为它们的所有外边距都合并到一起,形成了一个小的外边距。

外边距合并初看上去可能有点奇怪,但是实际上,它是有意义的。

以由几个段落组成的典型文本页面为例。第一个段落上面的空间等于段落的上外边距。如果没有外边距合并,后续所有段落之间的外边距都将是相邻上外边距和下外边距的和。这意味着段落之间的空间是页面顶部的两倍。如果发生外边距合并,段落之间的上外边距和下外边距就合并在一起,这样各处的距离就一致了

注释:只有普通文档流中块框的垂直外边距才会发生外边距合并。行内框、浮动框或绝对定位之间的外边距不会合并。


所有 CSS 外边距属性

属性描述
margin用于在一条声明中设置外边距属性的简写属性。
margin-bottom设置元素的下外边距。
margin-left设置元素的左外边距。
margin-right设置元素的右外边距。
margin-top设置元素的上外边距。


CSS 内边距

CSS padding 属性用于在任何定义的边界内的元素内容周围生成空间。

通过 CSS,我们可以完全控制内边距(填充)。有一些属性可以为元素的每一侧(上、右、下和左侧)设置内边距。


Padding - 单独的边

CSS 拥有用于为元素的每一侧指定内边距的属性:

  • padding-top
  • padding-right
  • padding-bottom
  • padding-left

所有内边距属性都可以设置以下值:

  • length - 以 px、pt、cm 等单位指定内边距
  • % - 指定以包含元素宽度的百分比计的内边距
  • inherit - 指定应从父元素继承内边距

提示:不允许负值。

实例

为 <div> 元素的所有四个边设置不同的内边距:

div {
  padding-top: 50px;
  padding-right: 30px;
  padding-bottom: 50px;
  padding-left: 80px;
}

亲自试一试


Padding - 简写属性

为了缩减代码,可以在一个属性中指定所有内边距属性。

padding 属性是以下各内边距属性的简写属性:

  • padding-top
  • padding-right
  • padding-bottom
  • padding-left

工作原理是这样的:

如果 padding 属性有四个值:

  • padding: 25px 50px 75px 100px;
    • 上内边距是 25px
    • 右内边距是 50px
    • 下内边距是 75px
    • 左内边距是 100px

实例

使用设置了四个值的 padding 简写属性:

div {
  padding: 25px 50px 75px 100px;
}

亲自试一试

如果 padding 属性设置了三个值:

  • padding: 25px 50px 75px;
    • 上内边距是 25px
    • 右和左内边距是 50px
    • 下内边距是 75px

实例

使用设置了三个值的 padding 简写属性:

div {
  padding: 25px 50px 75px;
}

亲自试一试

如果 padding 属性设置了两个值:

  • padding: 25px 50px;
    • 上和下内边距是 25px
    • 右和左内边距是 50px

实例

使用设置了两个值的 padding 简写属性:

div {
  padding: 25px 50px;
}

亲自试一试

如果 padding 属性设置了一个值:

  • padding: 25px;
    • 所有四个内边距都是 25px

实例

使用设置了一个值的 padding 简写属性:

div {
  padding: 25px;
}

亲自试一试


内边距和元素宽度

CSS width 属性指定元素内容区域的宽度。内容区域是元素(盒模型)的内边距、边框和外边距内的部分。

因此,如果元素拥有指定的宽度,则添加到该元素的内边距会添加到元素的总宽度中。这通常是不希望的结果。

实例

在这里,<div> 元素的宽度为 300px。但是,<div> 元素的实际宽度将是 350px(300px + 左内边距 25px + 右内边距 25px):

div {
  width: 300px;
  padding: 25px;
}

亲自试一试

若要将宽度保持为 300px,无论填充量如何,那么我们可以使用 box-sizing 属性。这将导致元素保持其宽度。如果增加内边距,则可用的内容空间会减少。

实例

使用 box-sizing 属性将宽度保持为 300px,无论填充量如何:

div {
  width: 300px;
  padding: 25px;
  box-sizing: border-box;
}

亲自试一试


更多实例

设置左内边距

本例演示如何设置 <p> 元素的左内边距。

设置右内边距

本例演示如何设置 <p> 元素的右内边距。

设置上内边距

本例演示如何设置 <p> 元素的上内边距。

设置下内边距

本例演示如何设置 <p> 元素的下内边距。


所有 CSS 内边距属性

属性描述
padding用于在一条声明中设置所有内边距属性的简写属性。
padding-bottom设置元素的下内边距。
padding-left设置元素的左内边距。
padding-right设置元素的右内边距。
padding-top设置元素的上内边距。

延伸阅读

课外书:框模型:CSS 内边距



CSS 设置高度和宽度

height  width 属性用于设置元素的高度和宽度。

height 和 width 属性不包括内边距、边框或外边距。它设置的是元素内边距、边框以及外边距内的区域的高度或宽度。


CSS 高度和宽度值

height  width 属性可设置如下值:

  • auto - 默认。浏览器计算高度和宽度。
  • length - 以 px、cm 等定义高度/宽度。
  • % - 以包含块的百分比定义高度/宽度。
  • initial - 将高度/宽度设置为默认值。
  • inherit - 从其父值继承高度/宽度。

CSS 高度和宽度实例

实例

设置 <div> 元素的高度和宽度:

div {
  height: 200px;
  width: 50%;
  background-color: powderblue;
}

亲自试一试

实例

设置另一个 <div> 元素的高度和宽度:

div {
  height: 100px;
  width: 500px;
  background-color: powderblue;
}

亲自试一试

注意:请记住,height  width 属性不包括内边距、边框或外边距!它们设置的是元素的内边距、边框和外边距内的区域的高度/宽度!


设置 max-width

max-width 属性用于设置元素的最大宽度。

可以用长度值(例如 px、cm 等)或包含块的百分比(%)来指定 max-width(最大宽度),也可以将其设置为 none(默认值。意味着没有最大宽度)。

当浏览器窗口小于元素的宽度(500px)时,会发生之前那个 <div> 的问题。然后,浏览器会将水平滚动条添加到页面。

在这种情况下,使用 max-width 能够改善浏览器对小窗口的处理。

提示:将浏览器窗口拖动到小于500px的宽度,以查看两个 div 之间的区别!

此元素的高度为 100 像素,最大宽度为 500 像素。

此元素的高度为 100 像素,最大宽度为 500 像素。

注释:max-width 属性的值将覆盖 width(宽度)。

实例

这个 <div> 元素的高度为 100 像素,最大宽度为 500 像素:

div {
  max-width: 500px;
  height: 100px;
  background-color: powderblue;
}

亲自试一试


亲自试一试 - 实例

设置元素的高度和宽度

本例演示如何设置不同元素的高度和宽度。

使用百分比设置图像的高度和宽度

本例演示如何使用百分比值设置图像的高度和宽度。

设置元素的最小宽度和最大宽度

本例演示如何使用像素值设置元素的最小宽度和最大宽度。

设置元素的最小高度和最大高度

本例演示如何使用像素值设置元素的最小高度和最大高度。


设置 CSS 尺寸属性

属性描述
height设置元素的高度。
max-height设置元素的最大高度。
max-width设置元素的最大宽度。
min-height设置元素的最小高度。
min-width设置元素的最小宽度。
width设置元素的宽度。

CSS 框模型

所有 HTML 元素都可以视为方框。在 CSS 中,在谈论设计和布局时,会使用术语“盒模型”或“框模型”。

CSS 框模型实质上是一个包围每个 HTML 元素的框。它包括:外边距、边框、内边距以及实际的内容。下图展示了框模型:

对不同部分的说明:

  • 内容 - 框的内容,其中显示文本和图像。
  • 内边距 - 清除内容周围的区域。内边距是透明的。
  • 边框 - 围绕内边距和内容的边框。
  • 外边距 - 清除边界外的区域。外边距是透明的。

框模型允许我们在元素周围添加边框,并定义元素之间的空间。

元素框的最内部分是实际的内容,直接包围内容的是内边距。内边距呈现了元素的背景。内边距的边缘是边框。边框以外是外边距,外边距默认是透明的,因此不会遮挡其后的任何元素。

提示:背景应用于由内容和内边距、边框组成的区域。

内边距、边框和外边距都是可选的,默认值是零。但是,许多元素将由用户代理样式表设置外边距和内边距。可以通过将元素的 margin 和 padding 设置为零来覆盖这些浏览器样式。这可以分别进行,也可以使用通用选择器对所有元素进行设置:

* {
  margin: 0;
  padding: 0;
}

在 CSS 中,width 和 height 指的是内容区域的宽度和高度。增加内边距、边框和外边距不会影响内容区域的尺寸,但是会增加元素框的总尺寸。

假设框的每个边上有 10 个像素的外边距和 5 个像素的内边距。如果希望这个元素框达到 100 个像素,就需要将内容的宽度设置为 70 像素,请看下图:

#box {
  width: 70px;
  margin: 10px;
  padding: 5px;
}

提示:内边距、边框和外边距可以应用于一个元素的所有边,也可以应用于单独的边。

提示:外边距可以是负值,而且在很多情况下都要使用负值的外边距。

实例

演示框模型:

div {
  width: 300px;
  border: 15px solid green;
  padding: 50px;
  margin: 20px;
}

亲自试一试


元素的宽度和高度

为了在所有浏览器中正确设置元素的宽度和高度,我们需要了解框模型如何工作。

重要提示:使用 CSS 设置元素的 width 和 height 属性时,只需设置内容区域的宽度和高度。要计算元素的完整大小,还必须把内边距、边框和外边距加起来。

实例

<div> 元素的总宽度将是 350px:

div {
  width: 320px;
  padding: 10px;
  border: 5px solid gray;
  margin: 0; 
}

亲自试一试

计算如下:

320px(宽度)
+ 20px(左+右内边距)
+ 10px(左+右边框)
+ 0px(左+右外边距)
= 350px

元素的总宽度应该这样计算:

元素总宽度 = 宽度 + 左内边距 + 右内边距 + 左边框 + 右边框 + 左外边距 + 右外边距

元素的总高度应该这样计算:

元素总高度 = 高度 + 上内边距 + 下内边距 + 上边框 + 下边框 + 上外边距 + 下外边距


CSS 轮廓

轮廓是在元素周围绘制的一条线,在边框之外,以凸显元素。

CSS 拥有如下轮廓属性:

  • outline-style
  • outline-color
  • outline-width
  • outline-offset
  • outline

注意:轮廓与边框不同!不同之处在于:轮廓是在元素边框之外绘制的,并且可能与其他内容重叠。同样,轮廓也不是元素尺寸的一部分;元素的总宽度和高度不受轮廓线宽度的影响。


CSS 轮廓样式

outline-style 属性指定轮廓的样式,并可设置如下值:

  • dotted - 定义点状的轮廓。
  • dashed - 定义虚线的轮廓。
  • solid - 定义实线的轮廓。
  • double - 定义双线的轮廓。
  • groove - 定义 3D 凹槽轮廓。
  • ridge - 定义 3D 凸槽轮廓。
  • inset - 定义 3D 凹边轮廓。
  • outset - 定义 3D 凸边轮廓。
  • none - 定义无轮廓。
  • hidden - 定义隐藏的轮廓。

下例展示了不同的 outline-style 值:

实例

演示不同的轮廓样式:

p.dotted {outline-style: dotted;}
p.dashed {outline-style: dashed;}
p.solid {outline-style: solid;}
p.double {outline-style: double;}
p.groove {outline-style: groove;}
p.ridge {outline-style: ridge;}
p.inset {outline-style: inset;}
p.outset {outline-style: outset;}

结果:

亲自试一试

注意:除非设置了 outline-style 属性,否则其他轮廓属性都不会有任何作用!


CSS 轮廓宽度

outline-width 属性指定轮廓的宽度,并可设置如下值之一:

  • thin(通常为 1px)
  • medium(通常为 3px)
  • thick (通常为 5px)
  • 特定尺寸(以 px、pt、cm、em 计)

下例展示了一些不同宽度的轮廓:

实例

p.ex1 {
  border: 1px solid black;
  outline-style: solid;
  outline-color: red;
  outline-width: thin;
}

p.ex2 {
  border: 1px solid black;
  outline-style: solid;
  outline-color: red;
  outline-width: medium;
}

p.ex3 {
  border: 1px solid black;
  outline-style: solid;
  outline-color: red;
  outline-width: thick;
}

p.ex4 {
  border: 1px solid black;
  outline-style: solid;
  outline-color: red;
  outline-width: 4px;
}

亲自试一试


CSS 轮廓颜色

outline-color 属性用于设置轮廓的颜色。

我们可以通过以下方式设置颜色:

  • name - 指定颜色名,比如 "red"
  • HEX - 指定十六进制值,比如 "#ff0000"
  • RGB - 指定 RGB 值,比如 "rgb(255,0,0)"
  • HSL - 指定 HSL 值,比如 "hsl(0, 100%, 50%)"
  • invert - 执行颜色反转(确保轮廓可见,无论是什么颜色背景)

下例展示了一些不同颜色的不同轮廓样式。请注意,这些元素在轮廓内还有黑色细边框:

实例

p.ex1 {
  border: 2px solid black;
  outline-style: solid;
  outline-color: red;
}

p.ex2 {
  border: 2px solid black;
  outline-style: dotted;
  outline-color: blue;
}

p.ex3 {
  border: 2px solid black;
  outline-style: outset;
  outline-color: grey;
}

亲自试一试


HEX 值

我们也可以使用十六进制值(HEX)指定轮廓颜色:

实例

p.ex1 {
  outline-style: solid;
  outline-color: #ff0000; /* 红色 */
}

亲自试一试


RGB 值

或者通过使用 RGB 值:

实例

p.ex1 {
  outline-style: solid;
  outline-color: rgb(255, 0, 0); /* 红色 */
}

亲自试一试


HSL 值

当然还可以使用 HSL 值:

实例

p.ex1 {
  outline-style: solid;
  outline-color: hsl(0, 100%, 50%); /* 红色 */
}

亲自试一试

可以在 CSS 颜色 章节中学习有关 HEX、RGB 和 HSL 值的更多知识。


反转颜色

下例使用 outline-color: invert,执行了颜色反转。这样可以确保无论颜色背景如何,轮廓都是可见的:

反转颜色的实线轮廓。

实例

p.ex1 {
  border: 1px solid yellow;
  outline-style: solid;
  outline-color: invert;
}

亲自试一试


CSS Outline - 简写属性

outline 属性是用于设置以下各个轮廓属性的简写属性:

  • outline-width
  • outline-style(必需)
  • outline-color

从上面的列表中,outline 属性可指定一个、两个或三个值。值的顺序无关紧要。

下例展示了用简写的 outline 属性指定的一些轮廓:

实例

p.ex1 {outline: dashed;}
p.ex2 {outline: dotted red;}
p.ex3 {outline: 5px solid yellow;}
p.ex4 {outline: thick ridge pink;}

亲自试一试


CSS 轮廓偏移

outline-offset 属性在元素的轮廓与边框之间添加空间。元素及其轮廓之间的空间是透明的。

下例指定边框边缘外 25px 的轮廓:

实例

p {
  margin: 50px;
  border: 1px solid black;
  outline: 1px solid red;
  outline-offset: 25px;
}

亲自试一试

下例显示元素与其轮廓之间的空间是透明的:

实例

p {
  margin: 30px;
  background: yellow;
  border: 1px solid black;
  outline: 1px solid red;
  outline-offset: 25px;
}

亲自试一试


所有 CSS 轮廓属性

属性描述
outline简写属性,在一条声明中设置 outline-width、outline-style 以及 outline-color。
outline-color设置轮廓的颜色。
outline-offset指定轮廓与元素的边缘或边框之间的空间。
outline-style设置轮廓的样式。
outline-width设置轮廓的宽度。

总结

本节我们学习了CSS边框、边距、轮廓的各种知识(边框宽度/颜色/各边/简写属性/圆角边框/内外边距/高度宽度/框模型/轮廓宽度/颜色/属性/偏移),强化了CSS边框、边距与轮廓的知识点,今后将继续介绍CSS文本等知识点。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/177856.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ROS学习寄录1

1 创建ROS工作空间 1.1 创建工作空间 &#xff08;1&#xff09;创建工作空间 mkdir catkin_ws &#xff08;2&#xff09;进入catkin_ws文件夹&#xff0c;然后创建一个src文件夹 cd catkin_ws mkdir src &#xff08;3&#xff09;进入src文件夹&#xff0c;生成CMakeL…

「自控原理」4.2 根轨迹法分析与校正

本节介绍利用根轨迹法分析系统性能发热方法 本节介绍根轨迹校正 文章目录利用根轨迹分析系统性能主导极点法增加零极点对系统的影响根轨迹校正串连超前校正原理与步骤超前校正例题串连滞后校正附加开环偶极子的作用原理与步骤滞后校正例题利用根轨迹分析系统性能 利用根轨迹分…

Oracle cloud vps实例配置访问

Oracle cloud vps实例配置访问创建一个免费配置的实例&#xff0c;并配置访问创建实例时&#xff0c;系统映像选择创建实例时候的ssh密钥配置子网&#xff0c;打开22端口使用工具登录服务器配置多个公钥&#xff0c;支持多个ssh私钥来登录登录vps实例修改登录用户和身份验证方式…

【接口】接口超时原因分析

接口超时的原因&#xff1a; 一、网络抖动 有可能是你的网络出现抖动、网页请求API接口、接口返回数据给网页丢包了。 二、被带宽占满 用户量暴增&#xff0c;服务器网络带宽被占满。 服务器带宽&#xff1a;一定时间内传输数据的大小&#xff0c;如&#xff1a;1s传输10M…

剑指Offer 第1天

第 1 天 栈与队列&#xff08;简单&#xff09; 剑指 Offer 09. 用两个栈实现队列 class CQueue { public: CQueue() {} void appendTail(int value) { s1.push(value); } int deleteHead() { while(!s1.empty()) { …

【Git :分布式版本控制工具】

【Git &#xff1a;分布式版本控制工具】 了解 Git 基本概念 能够概述 Git 工作流程 能够使用 Git 常用命令 熟悉 Git 代码托管服务 能够使用 IDEA 操作 Git 一、 概述 1. 开发中的实际场景 备份代码还原协同开发追溯问题代码的编写人和编写时间 2. 版本控制器的方式 集中式…

【数据结构】6.6 图的应用

文章目录生成树及其构造生成树的特点无向图的生成树6.6.1 最小生成树最小生成树及其典型应用MST性质构造最小生成树1. Prim(普里姆)算法2. Kruskal(克鲁斯卡尔)算法两种算法比较6.6.2 最短路径最短路径问题1. Dijkstra(迪杰斯特拉)算法迪杰斯特拉算法步骤2. Floyd(弗洛伊德)算法…

从零搭建一个组件库(二)创建代码规范

文章目录前言集成eslint1.安装2.替换默认解析器3.创建.eslintrc.yml配置文件4.创建忽略文件.eslintignore集成 prettier1.安装2.创建配置文件.prettierrc集成# commitizen1.安装2.修改package.json3.测试className的BEM规范1.安装2.BEM概述3.创建hooks函数4.使用hooks函数5.封装…

Vuex里面四个map方法(mapState、mapGetters、mapActions、mapMutation)

本章节主要讲述Vuex里面的四个优化代码的map方法&#xff0c;mapState、mapGetters、mapActions、mapMutation 一、store文件夹下面index.js主要内容&#xff0c;包含state(用于存储数据)、getters(计算属性)、mutatiions(加工数据)、actions(相应组件动作、写逻辑) 二、四个ma…

多个盒子排列规则(视觉格式化模型) 多个盒子的排列 页面布局

目录常规流常规流布局块盒的排列规则常规流 盒模型&#xff1a;规定单个盒子的规则 视觉格式化模型&#xff08;布局规则&#xff09;&#xff1a;页面中的多个盒子排列规则 视觉格式化模型&#xff0c;大体上将页面中盒子的排列分为三种方式&#xff1a; 常规流浮动定位 …

react源码:目录结构、调试源码

我的技术栈是React,最近在整理react的源码,react版本是18.1.0,之前版本,没有看过,就此略过。 源码目录 从github将源码下载后,先看看源码目录结构,如下图所示: fixtures:代码贡献者提供的测试react package:react源码的主要部分,包含了Schedule、reconcile等等 s…

RadSystems Studio 8.1.8 Crack

RadSystems Studio 是一个用于快速开发和交付自定义应用程序的环境&#xff0c;快速应用开发环境&#xff0c;更快生成完整应用。RadSystems为生成现代应用程序和 API 提供了无数的设计选项和组件。很少或没有编码。无需专门的编程知识。可通过减少冗余编码时间来促进应用程序开…

Centos7 安装SkyWalking

Centos7 安装SkyWalkingCentos7 安装SkyWalking1 基础介绍1.1 概念1.2 核心三部分1.3 架构图2 快速安装2.1 前提条件2.2 拉取镜像2.3 启动SkyWalking2.4 访问SkyWalking UI界面Centos7 安装SkyWalking 1 基础介绍 1.1 概念 SkyWalking是一个国产的开源框架&#xff0c;2015年…

计算机组成原理3个实验-logisim实现“七段数码管”、“有限状态机控制的8*8位乘法器”、“单周期MIPS CPU设计”。

目录 标题1.首先是七段数码管 标题二&#xff1a;有限状态机控制的8*8位乘法器 标题三&#xff1a;单周期MIPS CPU设计 标题1.首先是七段数码管 1看一下实验要求&#xff1a; 2.接下来就是详细设计&#xff1a; 1. 组合逻辑设计 由于7段数码管由7个发光的数码管构成&#x…

信息论复习—率失真理论

目录 失真的概念&#xff1a; 信息率与失真的关系&#xff1a; 信息率失真理论&#xff1a; 失真函数矩阵&#xff1a; 平均失真度定义为&#xff1a; 平均失真度与信道转移概率的关系&#xff1a; 率失真函数&#xff1a; 率失真函数的物理意义&#xff1a; 率失真函数…

05 |「链表」必刷题

前言 前言&#xff1a;刷链表面试高频题。 文章目录前言一. 基础回顾二. 高频考题1、例题例题1&#xff1a;LeetCode 206 反转链表1&#xff09;题目链接2&#xff09; 算法思路3&#xff09;源码剖析4&#xff09;时间复杂度例题2&#xff1a;LeetCode 92 反转链表II1&#xf…

C++编译之(3)-camke/CMakeLists.txt的编译使用教程

引言 上一节介绍了前面我们介绍了make/Makefile来对c项目进行编译&#xff0c;我们继续以该项目为例讲解&#xff1b; C编译之(1)-g单/多文件/库的编译 C编译之(2)-make及makefile编译过程 我们先看看上一节的实战的目录结构如下&#xff1a; - mutilFilesDemo- include // 头…

Docker入门与应用

Docker入门与应用1.初识Docker1.1.什么是Docker1.1.1.应用部署的环境问题1.1.2.Docker解决依赖兼容问题1.1.3.Docker解决操作系统环境差异1.1.4.小结1.2.Docker和虚拟机的区别1.3.Docker架构1.3.1.镜像和容器1.3.2.DockerHub1.3.3.Docker架构1.3.4.小结1.4.安装Docker2.Docker的…

“华为杯”研究生数学建模竞赛2005年-【华为杯】D题:仓库容量有限条件下的随机存贮管理(附获奖论文)

赛题描述 工厂生产需定期地定购各种原料,商家销售要成批地购进各种商品。无论是原料或商品,都有一个怎样存贮的问题。存得少了无法满足需求,影响利润;存得太多,存贮费用就高。因此说存贮管理是降低成本、提高经济效益的有效途径和方法。 问题2 以下是来自某个大型超市的…

全链路追踪 jaeger

Jaeger 概述 Jaeger 是 Uber 开发并开源的一款分布式追踪系统&#xff0c;兼容 OpenTracing API&#xff0c;适用于以下下场景&#xff1a; 分布式跟踪信息传递分布式事务监控问题分析服务依赖性分析性能优化 特性 高扩展性 Jaeger后端的设计没有单点故障&#xff0c;可以…