Web前端入门之CSS 单位详解
笔记哥 /
04-02 /
8点赞 /
0评论 /
934阅读
`单位`就是那个形容长度大小的东西。比如身高180cm(厘米),cm就是单位。
css 也不例外,要描述一个盒子的大小,就必须要用到单位。
css 单位根据其作用分为几大类:`绝对单位`、`相对单位`、`视口单位`、`角度单位`、`时间单位`、`网格单位`、`频率单位`、`分辨率单位`。
## 动态计算单位
认识单位之前,先认识几个动态计算函数,这东东的用法可强大了,后续再介绍。
- `calc()`
动态计算值(如`width: calc(100% - 20px)`)
- `min()`
取最小值(如`width: min(100%, 500px)`)
- `max()`
取最大值(如`width: max(50%, 300px)`)
- `clamp()`
限制在范围(如`font-size: clamp(1rem, 2.5vw, 2rem)`)
## 绝对单位
绝对单位的大小固定不变,与屏幕或设备无关,适合精确控制。例如一个长宽20像素的盒子,不管是在电脑上还是手机中,其大小就是20px。
**需要注意系统缩放,分辨率2560x1440的笔记本电脑,如果缩放100%,其宽度还是2560像素;如果缩放150%,其宽度将变为2560÷1.5=1706.66。**。
同一个20像素,在缩放100%和缩放150%肉眼看到的大小是不一样的。
- `px`(像素)
最常用单位,1px = 1屏幕像素(非物理像素),适合固定尺寸元素(边框、图标)
- `cm`(厘米)
实际物理尺寸(1cm ≈ 37.8px),多用于打印样式
- `mm`(毫米)
同厘米,但更精细(1cm = 10mm)
- `in`(英寸)
1in = 2.54cm ≈ 96px
- `pt`(点)
印刷单位,1pt = 1/72英寸 ≈ 1.33px
- `pc`(派卡)
印刷单位,1pc = 12pt ≈ 16px
`cm` 、 `mm` 、 `in` 、 `pt` 、 `pc` 这些单位主要用于打印和其他需要精确尺寸的场合。
## 相对单位
相对单位的大小基于其他参考值(父元素、视口、字体大小等),适合响应式设计。
相对单位必须要找一个老六,老六的大小就是他的标准。
- `em`
相对于当前元素的字体大小,1em等于当前元素的字体大小。如果父元素有font-size属性,则子元素的em值是根据父元素的字体大小计算的。适用于创建可以相对于用户设定的字体大小缩放的布局。
- `rem`
相对于根元素(html元素)的字体大小,1rem等于根元素的字体大小。使用rem单位可以方便地进行响应式布局,同时避免em单位的嵌套导致的复杂计算问题。
- `%`
相对于父元素的尺寸,例如width: 50%表示元素宽度为父元素宽度的50%。
- `ch`
相对于当前元素的字体宽度,1ch = 当前字体中 "0" 字符的宽度,适合文本排版对齐。
- `ex`
相对于当前字体的x高度,1ex等于当前字体的x高度,使用较少。
## 视口单位
视口单位就是相对于浏览器窗口的宽度或高度,它与屏幕或设备无关,只与浏览器的可视窗口有关。
- `vw`
视口宽度的1%(50vw = 视口宽度的一半)。
- `vh`
视口高度的1%。
- `vmin`
取视口宽高中较小的1%(如竖屏手机中相当于vw)。
- `vmax`
取视口宽高中较大的1%。
- `svh/lvh`
区分短视口(`svh`)和完整视口(`lvh`),解决移动端浏览器地址栏遮挡问题。
## 角度单位
对头,就是那个三角函数中的角度,弧度。
- `deg`(度数)
表示角度,用于控制旋转和变形。
- `rad`(弧度)
表示弧度,用于控制旋转和变形。
- `grad`(梯度)
表示梯度,用于控制旋转和变形。
- `turn`(圈数)
表示旋转的圈数,用于控制旋转和变形。
## 时间单位
多用于控制持续时间,如动画。
- `s`(秒)
用于控制动画和过渡的时间长度。
- `ms`(毫秒)
用于控制动画和过渡的时间长度,是秒的千分之一。
## 网格单位
用于网格布局,就是 Grid。
- `fr`
表示网格容器剩余空间的一部分,用于网格布局。
## 频率单位
嘿...这个真不常见。
- `Hz`(赫兹)
表示频率,用于控制动画和音频的播放速度。
- `kHz`(千赫兹)
表示千赫兹,是赫兹的千倍,用于控制音频的播放速度。
## 分辨率单位
用于打印媒体查询,没见过~~
- `dpi`(每英寸点数)
表示每英寸的点数,用于控制图片大小和清晰度。
- `dpcm`(每厘米点数)
表示每厘米的点数,用于控制图片大小和清晰度。
- `dppx`(每像素点数)
表示每像素的点数,用于控制图片大小和清晰度。
* * *
## 常用单位
这么多单位,可不是每个都会使用的,一般常用的也就几个,如下:
- `px`
边框、固定尺寸图标、微小间距。
- `%`
容器宽度、高度(相对于父元素)。
- `rem`
字体大小、间距、布局尺寸。
- `vw/vh`
全屏布局、响应式字体/元素。
- `fr`
CSS Grid 布局中的弹性列宽。
- `calc()`
动态计算尺寸(如 calc(100% - 20px)。
- `clamp()`
流体响应式设计(如字体、容器尺寸)。
## 总结
1. 核心掌握:`px`、`%`、`rem`、`vw/vh`、`fr`、`calc()`、`min()`、`max()`、`clamp()`。
2. 了解即可:`em`、`vmin/vmax`、`ch`。
3. 特殊场景备用:`svh/lvh`、`ex`。
4. 无需深究:`cm`、`mm`、`in`、`pt`、`pc`。
本文来自投稿,不代表本站立场,如若转载,请注明出处:http//www.knowhub.vip/share/2/1926
- 热门的技术博文分享
- 1 . ESP实现Web服务器
- 2 . 从零到一:打造高效的金仓社区 API 集成到 MCP 服务方案
- 3 . 使用C#构建一个同时问多个LLM并总结的小工具
- 4 . .NET 原生驾驭 AI 新基建实战系列Milvus ── 大规模 AI 应用的向量数据库首选
- 5 . 在Avalonia/C#中使用依赖注入过程记录
- 6 . [设计模式/Java] 设计模式之工厂方法模式
- 7 . 5. RabbitMQ 消息队列中 Exchanges(交换机) 的详细说明
- 8 . SQL 中的各种连接 JOIN 的区别总结!
- 9 . JavaScript 中防抖和节流的多种实现方式及应用场景
- 10 . SaltStack 远程命令执行中文乱码问题
- 11 . 推荐10个 DeepSeek 神级提示词,建议搜藏起来使用
- 12 . C#基础:枚举、数组、类型、函数等解析
- 13 . VMware平台的Ubuntu部署完全分布式Hadoop环境
- 14 . C# 多项目打包时如何将项目引用转为包依赖
- 15 . Chrome 135 版本开发者工具(DevTools)更新内容
- 16 . 从零创建npm依赖,只需执行一条命令
- 17 . 关于 Newtonsoft.Json 和 System.Text.Json 混用导致的的序列化不识别的问题
- 18 . 大模型微调实战之训练数据集准备的艺术与科学
- 19 . Windows快速安装MongoDB之Mongo实战
- 20 . 探索 C# 14 新功能:实用特性为编程带来便利
- 相关联分享
- CSS float 浮动布局应用场景
- CSS position定位布局全解析
- JavaScript 3 种书写位置及 script 标签的正确存放位置
- JavaScript 的各种调试方法
- 神奇的 transform 改变元素形状,matrix3d 矩阵变换算法演示
- 细说 CSS grid 网格布局子元素相关属性
- CSS 选择器的优先级
- 移动端适配的视口元标签(meta)常见使用场景
- CSS @media 媒体查询不要只会视口宽度适配详解
- CSS 动画之过渡属性 transition 改变用户体验
- 纯 CSS 使用 column 属性实现瀑布流布局
- CSS offset 路径动画演示
- CSS Flex弹性盒子布局全解析
- CSS flex 弹性盒子与 grid 网格布局区别及应用场景
- Web前端入门之CSS 单位详解
- 浏览器如何确定最终的CSS属性值?解析计算优先级与规则
- 多图细说 CSS grid 网格布局父元素容器相关属性
- CSS 循环动画 animation 效果解析和演示
- Web前端入门之CSS中11种颜色写法全解析
- Web前端入门:CSS元素外观属性(边框、阴影、轮廓、透明度)
- 深入理解 CSS 变量 var() :实现主题换肤与代码功能
- CSS background 元素背景图用法全解
- Web前端入门:CSS常见布局的多种实现方式详解