卡片容器需设为display: block或inline-block并配合box-sizing: border-box,避免margin折叠与padding撑宽;注意inline-block空白间隙、box-shadow顺序及inset位置;padding控内容内距,margin管外部间距;border-radius需配overflow: hidden。

卡片容器必须设为 display: block 或 inline-block 才能生效盒模型控制
很多人直接对 关键点: 阴影不是“加一层贴图”,而是按 CSS 规范解析为: 实操建议: 立即学习“前端免费学习笔记(深入)”; 新手常把所有间距都堆在 正确分工:width 和 padding 却没效果,是因为默认是 display: inline(如 ),或父容器未触发 BFC 导致 margin 折叠。项目卡片应显式声明 display: block 或更常用的 display: inline-block(便于多卡片横向排列)。
box-sizing: border-box 必须加在卡片根元素上,否则 padding 会撑大总宽,导致响应式错乱inline-block,注意 HTML 换行符会产生 4px 左右空白间隙,可用 font-size: 0 在父容器中消除float —— 容易引发清除问题,现代布局优先用 flex 或 grid 管理排列,盒模型只负责单卡内部结构
box-shadow 的四个长度值顺序不能错,且 inset 要写在最前offset-x offset-y blur-radius spread-radius color。漏掉 spread-radius 会导致模糊变重、边缘发虚;误把 inset 放在颜色后会整个失效。
box-shadow: 0 2px 8px rgba(0,0,0,0.1)(无 spread,偏柔和)spread:box-shadow: 0 4px 12px 2px rgba(0,0,0,0.08)
inset:box-shadow: inset 0 2px 4px rgba(0,0,0,0.1),注意 inset 必须紧挨 box-shadow: 后,不可换位text-shadow 模拟卡片阴影——它只作用于文字,且无法控制方向与扩散内外边距组合时,
margin 和 padding 的语义分工要清晰padding 上,结果内容被顶出、点击热区变小,或与其他卡片 margin 叠加造成意外空隙。
padding 控制「卡片内容到边框」的距离(比如图片和标题之间的留白)margin 控制「卡片自身到其他元素」的距离(比如卡片与卡片之间、卡片与页面边缘之间)margin-top:相邻块级元素的上下 margin 会合并,改用 margin-bottom 更可控border-radius,记得 overflow: hidden 防止图片或子元素圆角溢出.project-card {
display: inline-block;
box-sizing: border-box;
width: 280px;
padding: 16px;
margin: 0 12px 24px;
border-radius: 8px;
background: #fff;
box-shadow: 0 4px 12px 2px rgba(0,0,0,0.08);
overflow: hidden;
}
真实项目里,阴影和盒模型只是基础骨架;内容层级(比如标题字重、图标对齐、hover 时 transform: translateY(-2px) 配合阴影加深)才是让用户觉得“有质感”的关键。这些细节不写死在初始 CSS 里,而靠后续状态类动态叠加。










