css-border

355 阅读2分钟

border也属于CSS盒模型中的一个组成,这个属性很简单,但是通过border的变种实现,可以完成一些特殊图形的绘制。本篇梳理有关border的相关属性。

border

语法

border:<line-width> || <line-style> || <color>

  • <line-width>: <length> | thin(1px) | medium(3px) | thick(5px)

  • <line-style>: none | hidden | dotted | dashed | solid | double | groove | ridge | inset | outset

三角形
<div class="border">

</div>
.border {
    display: inline-block;
    border: 100px solid;
    border-color: red orange yellow green;
}

border-radius

语法

border-radius:[<length> | <percentage>] {1,4}[ / [ <length> | <percentage> ]{1,4} ]?

border-*-radius:[<length> | <percentage> ]{1,2}

这里的属性分拆有:border-top-left-radiusborder-top-right-radiusborder-bottom-left-radiusborder-bottom-right-radius

border-radius用来定义元素的圆角。属性提供2个参数,参数间以/分隔,第一个参数标识水平半径或半轴,第二个参数表示垂直半径或半轴,如第二个参数值未定义,则直接复制第一个参数值。

.border-radius {
	border: 10px solid black;
	border-radius: 55pt/25pt;
}

  • 如果提供全部四个参数值,将按上左 top-left、上右 top-right、下右 bottom-right、下左 bottom-left的顺序作用于四个角
  • 提供三个,第一个用于top-left,第二个用于top-right和bottom-left,第三个用于bottom-right
  • 提供两个,第一个用于top-left和bottom-right,第二个用于top-right和bottom-left
  • 只提供一个,将用于全部的四个角

此时,我们便知道,对于一个正方形,设置border-radius即半轴为他们长宽的一半,便可以画圆。

border-image

语法

border-image:border-image-source || border-image-slice [ / border-image-width | / border-image-width ? / border-image-outset ]? || border-image-repeat

  • border-image-source:定义元素边框背景图像,可以是图片路径或使用渐变创建的“背景图像”。
  • border-image-slice:定义元素边框背景图像从什么位置开始分割。
  • border-image-width:定义元素边框背景图像厚度。
  • border-image-outset:定义元素边框背景图像的外延尺寸。
  • border-image-repeat:定义元素边框背景图像的平铺方式。

border-image属性生效的前提是定义了border-width和border-style。 参考文档:Understanding border-image