css揭秘-背景和边框

半透明边框

当有容器b在容器a内 容器b用了背景色和半透明边框 则通过半透明边框只能看到容器b的背景色 看不到容器a的背景色,可以在容器b加属性background-clip: padding-box,表示讲容器b边框处的背景色裁掉,就可以半透明看到容器a的背景而不是容器b的背景色

多重边框

box-shadow实现

可以通过bos-shadow属性实现,属性可以跟多个参数,表示多个边框,边框顺序是按从上到下叠加的,也就是每个边框的半径都是基于元素,而不是上一个边框最外围的位置。

格式:box-shadow: 水平偏移 垂直偏移 模糊半径 扩展半径 颜色 内外阴影

例子:box-shadow: 0 0 0 10px #655, 0 0 0 15px deeppink;

bos-shadow不会受到布局影响,需要给容器预留出对应的内边距和外边距,默认是在外面,可以通过设置弄到内边距,但要留出对应的边距

可以在box-shadow的基础上在加一个层表示背景阴影,阴影用透明色实现,扩展半径和上一层元素的一样,模糊半径是作用在扩展半径内的,但因为模糊,在扩展半径外,会多出模糊半径/2的位置能看到模糊

缺点:不能实现丰富样式边框,比如不能实现虚线边框

outline实现

outline只能实现两个边框,一个由border实现,一个由outline实现,三个就不行了。outline和border简写格式类似,outline的border宽度是以border为基准的 不是以padding边缘

背景定位

问题:背景图片精准定位,css2只能用background-position关键字或百分比相对左上角定位,是相对paddingbox的左上角,即以padding左上角为原点,如果想相对右下角 就比较难

方案1:css3的background-position语法支持相对别的角规定,如background-position: right 20px, bottom 40px;如果不支持css3,如果没有别的配置,则背景默认会固定在左上角,可以在background简写中加上默认对左上角的偏移,避免不支持css3时,使用默认配置

方案2:background-origin

background-position默认是在paddingbox左上角对齐,css3有新属性background-origin,可以规定非paddingbox默认对齐,比如可以和contentbox对齐,可节省background-position写入数值的麻烦 直接改padding即可

方案3:calc

background-position: calc(100% - 20px) calc(100% - 10px) 相对左上角

边框内圆角

问题:一个方框,有border,border外是方框,border内是圆角方框,两个元素可以轻松实现,即外容器设置背景,内元素设置圆角,但一个元素怎么做

方案:不行了 教材写的时候 box-shadow跟圆角 但outline不跟圆角 两个叠加可以 现在浏览器outline也跟圆角了 不行了

条纹背景

水平条纹:用线性渐变即可 background: linear-gradient(#fb3 20%, #58a 0%), background-size: 100% 30px; 默认会平铺满

垂直条纹:还用线性渐变,入参加个方向

background: linear-gradient(to right, #fb3 20%, #58a 0%);

background-size: 30px 100%;

斜向条纹:将线性渐变第一个参数改为角度,但直接改会失败,像贴地砖,条纹不重合

background: linear-gradient(45deg, #fb3 25%, #58a 0, #58a 50%, #fb3 0, #fb3 75%, #58a 0);

background-size: 30px 30px;

自定义角度条纹:用repeating-linear-gradient:

background: repeating-linear-gradient(60deg, #fb3, #fb3 15px, #58a 0, #58a 30px)

复杂背景图案

相关推荐
派小心.1 小时前
小程序埋点验收:自定义事件上报后页面参数怎么核对
前端·数据分析
前端snow11 小时前
ai agent --- postgreSQL 关系型数据库
前端
卷无止境12 小时前
ECharts:把数据变成故事的可视化利器
前端
Eric_见嘉12 小时前
在职前端 Skill 和 MCP 分享
前端·后端·agent
liangshanbo121512 小时前
面试题:如何优化 Webpack 的打包速度?
前端·webpack·node.js
wengad12 小时前
从 wangEditor 迁到 wangEditor-next
前端·javascript·vue.js
行者-全栈开发13 小时前
【前端/JS框架】CVE-2026-3854:GitHub Enterprise Server X-Stat注入XSS漏洞深度剖析与紧急修复指南
前端·javascript·github
计算机魔术师14 小时前
AMD砸82亿买下李飞飞,这次不卖芯片卖什么?
前端
hzxpaipai15 小时前
杭州企业官网怎么建设?从策划到上线的5步建站方法
运维·服务器·前端·网络