编程 CSS 奇技淫巧

2024-11-19 08:34:21 +0800 CST views 744

CSS 奇技淫巧

以下是一些常用但高效的 CSS 技巧,它们能够帮助你在前端开发中减少 JavaScript 代码,使代码更简洁,并提升用户体验。

1. 阻止鼠标选择文本

.no-select { 
  user-select: none;
}

阻止用户在页面上选择文本,适用于不可编辑的界面元素。

2. 响应式文字大小

通过 calc 动态调整字体大小:

.fluid {
  font-size: 32px;
}

@media screen and (min-width: 568px) {
  .fluid {
    font-size: calc(32px + 16 * ((100vw - 568px) / (768 - 568)));
  }
}

@media screen and (min-width: 768px) {
  .fluid {
    font-size: 48px;
  }
}

利用 clamp 实现响应式字体大小:

.responsive-text {
  font-size: clamp(16px, 2.5vw, 48px);
}

3. 设置宽高比

使用 aspect-ratio 轻松设置元素的宽高比:

.aspect-ratio { 
  aspect-ratio: 16 / 9; 
}

4. 自动平滑滚动

html { 
  scroll-behavior: smooth; 
}

当用户点击锚点或使用滚动导航时,实现平滑的滚动效果。

5. 响应式系统深色模式

@media (prefers-color-scheme: dark) {
  body {
    background-color: #333;
    color: #fff;
  }
}

根据用户系统的偏好设置自动切换网站的主题颜色。

6. 图片填充方式

.cover-img { 
  object-fit: cover; 
}

确保图片在容器中以适合的方式展示。

7. 禁止鼠标事件触发

.no-pointer { 
  pointer-events: none; 
}

禁用鼠标事件,常用于不可点击的装饰性元素。

8. 模糊背景或元素

.blur { 
  filter: blur(20px); 
}

为背景或元素添加模糊效果,常用于视觉特效。

9. 动态显示 HTML 属性内容

.dynamic-content::before { 
  content: attr(class); 
}

无需更改 HTML,通过 CSS 提取并展示属性的值。

10. 路径剪辑

.circle { 
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%); 
}

通过 clip-path 定义多边形剪辑路径,可以在线生成形状:Clippy

11. 渐变文本

.gradient-text {
  background: linear-gradient(to top, red 0%, blue 100%);
  color: transparent;
  -webkit-background-clip: text;
}

为文本添加渐变效果,使其看起来更加时尚。

12. 首字母样式

p::first-letter {
  font-weight: bold;
  color: #333;
}

为段落的首字母设置特定样式。

13. 选择空内容元素

.element:empty { 
  display: none; 
}

隐藏没有内容的 HTML 元素。

14. 响应式屏幕方向

@media (orientation: landscape) {
  body { 
    background-color: #333;
  }
}

根据屏幕方向(横向或纵向)设置样式。

15. 多层渐变背景色

background: radial-gradient(circle at 50% 50%, rgba(243, 196.3, 96.5, 1) 0%, rgba(238.8, 34.6, 122.1, 0.2) 80%), 
            linear-gradient(0deg, rgba(170.2, 106.8, 238.7, 1) 0%, rgba(162.6, 112.6, 178.8, 1) 100%);

添加多层渐变,丰富背景的视觉效果。

16. 使用 :has 选择器

figure { 
  background: white; 
}

figure:has(img) { 
  background: grey; 
}

根据子元素的存在情况应用样式(仅部分浏览器支持)。

17. 浏览器缩放

body { 
  font-size: calc(100% * env(browser-zoom-level)); 
}

根据用户缩放浏览器的情况动态调整字体大小。

18. 优雅地增加点击区域大小

.icon-clear {
  width: 16px;
  height: 16px;
  border: 11px solid transparent;
}

通过 border 增加点击区域而不会影响布局。

19. 改变输入框光标颜色

input {
  caret-color: #ff0000;
}

自定义输入框的光标颜色。

20. 改变 Radio 选择器的高亮色

.input-radio {
  accent-color: #ff00bf;
}

自定义 Radio 选择器的选中颜色。

21. Hyphens 自动添加连字符

div {
  hyphens: auto;
}

自动在长单词换行时添加连字符。

22. 引号符号

q {
  quotes: "“" "”";
}

q 标签内容前后自动添加引号符号。

23. 文字环绕

通过 text-wrap 和其他布局方式,优化文字显示效果。


这些 CSS 技巧能够帮助你更有效地开发复杂布局,提升网站的响应性和用户体验。

推荐文章

免费常用API接口分享
2024-11-19 09:25:07 +0800 CST
`Blob` 与 `File` 的关系
2025-05-11 23:45:58 +0800 CST
PHP 唯一卡号生成
2024-11-18 21:24:12 +0800 CST
基于Flask实现后台权限管理系统
2024-11-19 09:53:09 +0800 CST
Go语言中的`Ring`循环链表结构
2024-11-19 00:00:46 +0800 CST
MyLib5,一个Python中非常有用的库
2024-11-18 12:50:13 +0800 CST
Web 端 Office 文件预览工具库
2024-11-18 22:19:16 +0800 CST
GROMACS:一个美轮美奂的C++库
2024-11-18 19:43:29 +0800 CST
Flet 构建跨平台应用的 Python 框架
2025-03-21 08:40:53 +0800 CST
Vue3中如何实现插件?
2024-11-18 04:27:04 +0800 CST
使用 Go Embed
2024-11-19 02:54:20 +0800 CST
介绍Vue3的静态提升是什么?
2024-11-18 10:25:10 +0800 CST
使用Rust进行跨平台GUI开发
2024-11-18 20:51:20 +0800 CST
随机分数html
2025-01-25 10:56:34 +0800 CST
Vue3中怎样处理组件引用?
2024-11-18 23:17:15 +0800 CST
12 个精选 MCP 网站推荐
2025-06-10 13:26:28 +0800 CST
黑客帝国代码雨效果
2024-11-19 01:49:31 +0800 CST
7种Go语言生成唯一ID的实用方法
2024-11-19 05:22:50 +0800 CST
Vue3中如何实现国际化(i18n)?
2024-11-19 06:35:21 +0800 CST
Vue3中的v-bind指令有什么新特性?
2024-11-18 14:58:47 +0800 CST
微信小程序热更新
2024-11-18 15:08:49 +0800 CST
如何在 Vue 3 中使用 TypeScript?
2024-11-18 22:30:18 +0800 CST
前端代码规范 - 图片相关
2024-11-19 08:34:48 +0800 CST
程序员茄子在线接单