15 个 CSS 属性救了我发际线!别再只会写 width 了😭



上周四凌晨两点,我正抱着电脑准备提交代码回家睡觉,产品经理突然发来一条消息:“那个输入框的光标颜色能不能改成品牌色?还有这个表单选中状态,有点丑,改一下。”🤯

我当时直接懵逼,心想大哥你这是要命啊!为了改个光标颜色,我要去写复杂的 JS 监听?还是要引入额外的库?最后我默默搜了一下,发现只需要一行 caret-color 就能搞定。那一刻,我真的想顺着网线过去摇醒三年前刚入行的自己:兄弟,CSS 不止有 width 和 height 啊!😭

你是不是也跟我一样,写 CSS 只会三板斧?布局靠 flex,样式靠 copy,遇到稍微复杂点的效果就想找 JS 库?别慌,今天我把压箱底的 15 个有用 CSS 属性全掏出来。不用谢,叫我雷锋就好。🚀

这篇文章不整那些虚头巴脑的理论,直接上干货。看完你能:

  • ✅ 少写至少 30% 的冗余代码
  • ✅ 搞定设计师那些“微妙”的视觉需求
  • ✅ 面试的时候多几个吹牛逼的资本

别再把 CSS 当布局工具了,它是细节怪!🔍

很多人觉得 CSS 就是用来排版的,像搭积木一样把 div 摆好就行。其实真正的 CSS 高手,都是在抠细节。这就好比谈恋爱,你光把饭吃饱了不行,还得记得对方喜欢什么口味,生日送什么礼物。🎁

这 15 个属性,就是帮你提升“恋爱体验”的神器。它们大多浏览器兼容性已经很好了,不用 polyfill,直接抄作业就行。下面我把它们分成了三类,咱们逐个击破。

表单与交互:让用户体验爽飞💥

表单是用户跟网站交互最多的地方,也是最容易翻车的地方。以下几个属性,能让你的表单瞬间高大上。

1. caret-color:光标颜色自定义

刚才提到的痛点,就是它解决的。默认的光标是黑色的,但在深色背景下根本看不见。

input {
  caret-color: #ff5722; /* 让光标变成品牌色,逼格瞬间提升 */
}

2. accent-color:表单控件强调色

以前想改 checkbox 的颜色,得隐藏原生控件自己画个假的,累不累?现在直接用这个。

input[type="checkbox"] {
  accent-color: #4caf50; /* 选中状态直接变绿,还要啥自行车 */
}

3. user-select:禁止文本选中

有些按钮或者图标,用户误触选中了蓝底白字,很丑。用它禁止掉。

.no-select {
  user-select: none; /* 别让用户瞎几把选,保护我的布局 */
}

4. pointer-events:控制点击穿透

有时候遮罩层挡住了下面的按钮,你想让点击事件穿透过去,这个属性就是救命稻草。

.mask {
  pointer-events: none; /* 点击像穿过空气一样,直接点到下层元素 */
}

布局与响应式:少写媒体查询的秘密📱

以前做响应式,媒体查询写得我想吐。现在有了这些新属性,头发保住了。

5. clamp():流体排版神器

别再写一堆 @media 了,clamp 能让字体大小在一个范围内自动缩放。

h1 {
  font-size: clamp(1.5rem, 5vw, 3rem); 
  /* 最小 1.5rem,最大 3rem,中间随视口缩放,爽飞 */
}

6. gap:Flex 和 Grid 的间距

以前给 flex 子元素加间距,得用 margin 还要处理最后一个元素,现在直接 gap。

.container {
  display: flex;
  gap: 16px; /* 一行搞定间距,不用算 margin 了 */
}

7. aspect-ratio:固定宽高比

做卡片布局时,想要固定比例,以前得用 padding-bottom hack,现在直接写比例。

.card {
  aspect-ratio: 16 / 9; /* 永远是 16:9,再也不用算百分比了 */
}

8. object-fit:图片填充模式

图片变形丑到哭?用这个属性让它像 background-size 一样工作。

img {
  object-fit: cover; /* 图片填满容器不变形,切掉多余部分,真香 */
}

视觉与文本:细节决定成败🎨

这些属性能让你的页面看起来更精致,像是花了大价钱设计的一样。

9. backdrop-filter:毛玻璃效果

iOS 那种模糊背景效果,现在 CSS 原生支持了。

.glass {
  backdrop-filter: blur(10px); /* 瞬间拥有苹果同款毛玻璃,牛逼 */
}

10. text-emphasis:文本强调符号

想在文字下面加点儿或者圆圈,别用 background-image 了,用这个。

p {
  text-emphasis: filled circle red; /* 给重点文字加红点,像老师批改作业 */
}

11. hyphens:自动换行连字符

长英文单词换行被切断很难看,开启连字符会好很多。

p {
  hyphens: auto; /* 自动加连字符,强迫症福音 */
}

12. quotes:自定义引号

中文环境下默认引号有时候不对,可以手动指定。

q {
  quotes: "「" "」"; /* 改成日式引号,看你想玩什么风格 */
}

13. :in-range / :out-of-range:表单范围验证

输入框超出范围直接变红,不用 JS 验证也能做。

input:out-of-range {
  border-color: red; /* 输错了直接红框警告,简单粗暴 */
}

14. grayscale():灰度滤镜

想做悬停变色效果?用滤镜比换图片快多了。

img:hover {
  filter: grayscale(0); /* 鼠标放上去恢复彩色,交互感拉满 */
}

15. content-visibility:性能优化

长列表渲染卡顿?这个属性能让浏览器跳过不可见内容的渲染。

.list-item {
  content-visibility: auto; /* 看不见的地方不渲染,性能提升牛逼 */
}

常见问题 FAQ🤔

1. 这些属性兼容性怎么样?

除了 content-visibility 主要在 Chromium 内核,其他大部分现代浏览器都支持了。老旧浏览器?让它去吧,都 2024 年了。😎

2. 会影响性能吗?

大部分不会,backdrop-filter 在复杂场景下可能有点吃 GPU,但一般页面没问题。别滥用就行。

3. 移动端支持好吗?

iOS 15+ 和 Android 主流浏览器都没问题。要是还要支持 IE,那当我没说,赶紧劝老板重构吧。👋

4. 能不能和 JS 混用?

当然可以,CSS 管样式,JS 管逻辑,别把样式写 JS 里就行,那是异端。

5. 学习成本高吗?

几乎为零,都是声明式的,知道属性名和值就行,不用记复杂语法。

6. 会不会被覆盖?

遵循 CSS 层叠规则,后写的覆盖先写的, specificity 高的覆盖低的,老规矩。

7. 有没有什么坑?

pointer-events: none 会让点击事件彻底消失,包括 JS 监听,用的时候想清楚。

8. 哪里查兼容性?

Can I Use 网站,前端必备,别瞎猜,查一下又不会怀孕。

总结 & 行动起来🏃‍♂️

CSS 不仅仅是把页面画出来,更是关于如何优雅地解决问题。这 15 个属性,每一个都能让你在某个瞬间少写几行代码,多睡十分钟觉。

金句送给你:代码是写给自己看的,也是写给未来维护者看的,别让它变成屎山。💩

现在就去干:

  1. 打开你最近的项目,找找有没有能用 gap 替代 margin 的地方。
  2. 把所有的图片 img 标签加上 object-fit: cover 防止变形。
  3. 检查表单元素,加上 accent-color 统一主题色。
  4. 试试 clamp() 优化你的字体响应式。
  5. 把这篇文章收藏起来,下次写 CSS 前看一眼。
  6. 分享给你的同事,让他们也知道别再用 hack 了。
  7. 评论区告诉我,你用过最冷门的 CSS 属性是哪个?
  8. 点个推荐,让我知道你没白看!

评论区告诉我你踩过的最离谱 CSS 坑是什么?是不是也有过为了居中写了一页代码的经历?👇

彩蛋 / 福利时间🎁

光看不练假把式,推荐几个我常用的工具,帮你更快掌握这些属性:

  • Can I Use:查兼容性必备,网址自己搜,别让我求你。
  • CSS Tricks:遇到不懂的属性先去这上面搜,教程比官方文档人话。
  • CodePen:看到好的效果直接抄 demo,别自己从头写,效率第一。

好了,不啰嗦了,我去补觉了。咱们下期见!👋


关注我

我的微信公众号:前端开发博客,在后台回复以下关键字可以获取资源。

  • 回复「小抄」,领取Vue、JavaScript 和 WebComponent 小抄 PDF
  • 回复「Vue脑图」获取 Vue 相关脑图
  • 回复「思维图」获取 JavaScript 相关思维图
  • 回复「简历」获取简历制作建议
  • 回复「简历模板」获取精选的简历模板
  • 回复「加群」进入500人前端精英群
  • 回复「电子书」下载我整理的大量前端资源,含面试、Vue实战项目、CSS和JavaScript电子书等。
  • 回复「知识点」下载高清JavaScript知识点图谱

每日分享有用的前端开发知识,加我微信:caibaojian89 交流