CSS引入有三种方式:外链(首选,利于缓存复用)、内部style标签(适合单页原型)、内联style(仅限JS动态控制单元素)。选择器按唯一性区分:id用于唯一容器,class用于可复用样式,优先使用语义化HTML标签。

怎么把CSS加进HTML里?三种方式的实操选择
直接在HTML里写CSS,不是“能不能”,而是“该不该”。关键看项目规模和维护预期。
-
是绝大多数场景的首选:样式集中、可缓存、多页复用。路径写错是新手最常卡住的地方,比如 href="css/style.css" 却把文件放在根目录下
-
标签适合单页应用或原型验证,比如快速测一个 Flex 布局效果。但别把它当成长期方案——样式一多, 就变成样式垃圾场
- 内联
style="..." 只应在动态控制单个元素时用(比如 JS 切换背景色),绝不能用来定义通用规则。它权重太高,后期用类名覆盖都得加 !important,埋雷
class 和 id 选哪个?别再靠猜了
用错选择器类型,等于给后续样式调试加锁。核心就一条:是否唯一。
- 用
id:只用于页面中**必然唯一**的容器,比如 或 。CSS 里写 #main-header,改一次就影响全局,改错没法回滚
- 用
class:所有可复用、可组合的样式,比如 或 。BEM 命名法(如 card__title)不是炫技,是防止 .title 在不同模块里互相打架
- 别用
div + class 模拟语义标签。写 不如直接用
—— 屏幕阅读器、SEO、甚至你自己半年后读代码,都会感谢这个决定
背景图拉伸、模糊失效、加载慢?别只调 background-size
背景图出问题,90% 不是 CSS 写错了,而是没处理好资源层逻辑。
CSS
CSS 官方网站入口。访问 W3C 的 CSS 页面,查看 CSS 标准、学习资料与工作组动态;CSS 是 Web 标准,无需下载安装。
下载
-
background-size: cover 确保填满,但得配 background-position: center,否则人物脸可能被切掉;移动端还要加 background-attachment: scroll 防止视差滚动卡顿
-
backdrop-filter: blur(10px) 在 Safari 上默认不生效,必须加 -webkit-backdrop-filter 前缀,且父容器要设 background-color: rgba(255,255,255,0.8) 才能看见效果
- 大图背景优先用
+ srcset 响应式加载,或者至少压缩成 WebP 格式。直接丢一张 5MB 的 JPG 进 background-image,首屏加载时间就决定了用户走不走
Flex/Grid 布局写完没效果?先查 display 和父容器
Flex 或 Grid 失效,往往不是属性写错,而是布局上下文没建立起来。
- 子元素想用
justify-content,前提是父容器已设 display: flex —— 很多人只记得给子元素加 align-self,忘了父级这一步
- Grid 的
grid-template-columns: repeat(3, 1fr) 在小屏上会挤成一列,必须配合 @media (max-width: 768px) 改成 repeat(1, 1fr),不然用户滑半天才看到第三列
- 用
gap 替代 margin 控制子项间距更安全,它不会触发外边距合并(margin collapse),也不会意外撑开父容器
真正卡住人的,从来不是某个属性记不住,而是没意识到 HTML 结构语义、CSS 加载时机、设备兼容性这三层之间存在强耦合。写完一行 background-image,得顺手检查图片路径、格式、尺寸、媒体查询、前缀支持——美化不是贴膏药,是系统性收口。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!