背景默认绘制到border-box外沿,即包含padding和border区域,但被边框遮盖;可通过background-clip控制绘制边界:border-box(默认)、padding-box、content-box。
CSS盒模型直接影响背景(background)的绘制范围,关键在于背景默认画到哪里——不是只画在内容区,而是默认延伸到边框外沿,但会被边框遮盖。这个行为由 background-clip 属性控制,而它的默认值正是理解背景显示范围的核心。
当你给一个元素设置 background-color 或 background-image,浏览器默认按 background-clip: border-box 渲染。这意味着:
你可以显式修改背景绘制边界,用 background-clip 指定它停在哪一层:
background-clip: border-box(默认):背景画满整个 border 盒子,含 padding + border 下方区域background-clip: padding-box:背景只画到 padding 的外沿,不进入 border 区域,边框完全透明可见(适合带镂空边框的设计)background-clip: content-box:背景严格限制在 content 区域内,padding 和 border 完全无背景,内容周围留白且透明即使不改 background-clip,padding 和 border 的存在也实际决定了你“看到”的背景范围:
padding 越大,内容离边框越远,背景在内侧显露的区域就越宽——这是最常用的内容呼吸感做法border 有颜色时会遮挡部分背景;若设为 transparent 或 0 宽度,则背景完
整可见box-sizing: border-box 时,width/height 已包含 padding 和 border,此时 background 的可视区域更易预测行内元素(如 )虽有盒模型,但其 background 行为略有不同:
padding 和 border,背景会正常延伸到 padding 区域margin 的上下值无效,所以背景在垂直方向不会因 margin 扩展line-height)决定其实际占据高度,背景在行框内垂直居中铺开