主题
分割线渐变边框
两端透明、中间实色的分割线,用 border-image 把线性渐变画到边框上。
css
.card-divider {
border-top: 1px solid #acadbc;
border-image: linear-gradient(270deg, rgba(172, 173, 188, 0), rgba(172, 173, 188, 1), rgba(172, 173, 188, 0)) 1 1;
}规则
- 线宽来自
border-width。border-style要写成solid等可见样式;部分浏览器在none,或border-width为0时不绘制border-image。 - 渐变替换边框绘制。
border-color只在图像无法显示时回退。 - 末尾
1 1是border-image-slice:第一个值切上下,第二个值切左右。两边都是1时与单值1相同。中间区域默认丢弃,不加fill不会铺进内容区。 border-image作用于四边。只写border-top时其余边宽度为0,渐变只出现在上边。- 色标两端对称时,
90deg与270deg外观相同。270deg等于从右向左。
边界
border-radius不作用于border-image,边框保持直角。需要圆角渐变边框时,改用透明边框加双层background:内容层background-clip: padding-box,渐变层background-clip: border-box。border-image简写会重置未写出的子属性。切片要写在简写里。- 分割线不依附元素边框时,用
1px高的元素配background渐变即可,不必走border-image。
css
.divider {
height: 1px;
background: linear-gradient(90deg, rgba(172, 173, 188, 0), rgba(172, 173, 188, 1), rgba(172, 173, 188, 0));
}