半透明背景
关键在于通过
background-clip
属性来调整背景的默认行为
|
|
思考:也可以用box-shadow
来实现,优点是可以圆角贴合。
多重边框
box-shadow
可层层叠加,达到多层边框的效果。但它不会影响布局,不会受到box-sizing
属性的影响,也不会响应鼠标事件,比如悬停或点击。上述问题可通过增加内外边距和inset来解决。
outline
只适用于双层“边框”的场景,且边框不一定会贴合border-radius属性产生的圆角。其优点在于样式灵活(dashed
等),间距可控(outline-offset
)。
|
|
灵活的背景位置
background-position
默认是padding box。
如果想要让它自动地跟着我们设定的内边距走,可以用background-origin: content-box;
来解决。
图片位置也可以使用calc()
来定位。在calc()
函数内部的-和+运算符的两侧需各加一个空白符。
|
|
|
|
尝试一下
尝试一下
区分:background-origin
规定背景位置(background-position
)的起始点,默认值为padding-box
;而background-clip
规定背景(图片和背景色)的绘制区域,即裁剪掉区域外的内容,默认值为border-box
。可选值图示:
边框内圆角
方法一:用两个div;
方法二:用box-shadow
填补border和outline之间的空缺,其值需小于描边宽度(等于时会渲染异常),大于\\ (\sqrt{2}*r-r \)。
|
|
计算图示:
尝试一下
条纹背景
关键在于渐变色标重合
以下代码可以生成三色水平条纹:
尝试一下
备注:如果我们把第二个色标的位置值设置为0,那它的位置就总是会被浏览器调整为前一个色标的位置值。
垂直条纹: