auto(原尺寸,从左上开始平铺)auto(原尺寸,从左上开始平铺)cover:铺满且不变形,可能裁掉contain:完整显示,可能留白30px 20px:显式尺寸.hero { background-image: url(hero.jpg); background-size: cover; background-position: center; }
top leftcenter80% 30%(百分比是「图上 80% 处对齐容器 80% 处」,不是距左 80%)repeat / repeat-x / repeat-y / no-repeat / space(整数倍铺开不裁切)/ round(拉伸到整数倍)。
background-blend-mode 可逐层指定混合方式。.layers {
background-image: radial-gradient(...), repeating-linear-gradient(...), linear-gradient(...);
background-size: auto, auto, 100% 100%; /* 每层用逗号分别给值 */
background-position: 0 0; /* 只写一个值时所有层共用 */
}
linear-gradient(90deg, …) 平滑过渡radial-gradientrepeating-linear-gradient 做条纹/斑马线锥形渐变 conic-gradient、圆环 from 45deg at 50% 50% 见第十九章视觉进阶。
dotted 在奇数宽度下会不规整)12px 4px 12px 4px(顺序:左上 右上 右下 左下)/* 边框占位:它属于盒子的一部分(border-box 下从 width 里扣),改边框宽度会挤动内容。
想「加粗但不改动布局」用 outline 或 inset 阴影代替。 */
.card:hover { border-color: #0969da; } /* 只换色不换宽,避免布局跳动 */
0 1px 2px 贴合的浅阴影两层叠加:近处锐利 + 远处扩散,接近真实光照inset 内阴影,做凹陷/描边6px 6px 0 无模糊 = 硬阴影,复古/新粗野风/* 语法:inset? offset-x offset-y blur? spread? color */
.btn:hover { box-shadow: 0 2px 8px rgba(0,0,0,.16); }
/* 用阴影做 1px 描边(不占布局):inset 0 0 0 1px */
.tile { box-shadow: inset 0 0 0 1px #d0d7de; }
/* 性能:阴影会影响重绘成本,动画里优先动 opacity/transform,别动 box-shadow */
outline 不占空间、始终是矩形(不吃 border-radius 的旧引擎除外)
结论:焦点环用 outline(可偏移、不挤压布局),装饰用 box-shadow(能跟随圆角、可多层)。永远不要写 outline: none 又不补替代焦点样式。
background-attachment: scroll(默认)背景随内容盒移动但不跟随滚动条。
滚下来看顶部那条蓝色渐变的差别 →
background-attachment: local 背景跟内容一起滚,所以滚动到最底部时顶部留白会跟着走。
同样滚一遍对比。