CSS px

在 CSS 中,px(像素)是最常用的单位之一。它可以用于指定元素的宽高、位置、内外边距等。

CSS px 是什么?

px,全称 “pixel(像素)” 。px 就是一张图片中最小的点,或者是计算机屏幕最小的点。

举个例子,下面有一个绿叶网的图标(JPG格式),如下图 1 所示。如果将这个图标放大 n 倍,则此时效果如下图 2 所示。

正常的绿叶图标

放大的绿叶图标

我们会发现,原来一张图片是由很多的小方点组成的。其中,每一个小方点就是一个像素(px)。一台计算机的分辨率是 800px × 600px,其实意思就是 “计算机宽是 800 个小方点,高是 600 个小方点”。

CSS 像素 vs 物理像素

很多初学的小伙伴可能会有这样一个疑问:“我的手机分辨率是2K,像素非常密集,为什么网页上的 16px 没有变成芝麻那么小呢?”

这是因为浏览器帮我们做了一次 “魔法转换”:

  • 物理像素 (Physical Pixel):屏幕上真实发光的小点。
  • CSS 像素 (CSS Pixel):浏览器渲染时的逻辑单位。

其中,转换关系(设备像素比 DPR)如下:

  • 普通屏幕:1 CSS 像素 = 1 物理像素。
  • 高清屏幕 (Retina/2x屏):1 CSS 像素 = 4(2 x 2)物理像素。
  • 超清屏幕 (3x屏):1 CSS 像素 = 9(3 x 3)物理像素。

在现代 Web 开发中,我们只需要关心 “CSS 像素” 就可以了。浏览器会自动根据屏幕的清晰度(DPR),调用更多的物理像素来渲染这 1px,让它看起来更清晰、更锐利,但物理尺寸(视觉大小)保持不变。

px 的使用场景

px 是最容易理解的 CSS 单位,并且它的兼容性也非常好。不过 px 单位却存在以下 2 个缺点。

  • 受屏幕分辨率的影响:在高分辨率屏幕上,px 单位会显得很小;而在低分辨率屏幕上,px 单位会显得很大。
  • 响应式布局困难:使用 px 单位进行响应式布局比较困难,因为需要针对不同的屏幕分辨率编写不同的 CSS 代码。

为了解决 px 单位的缺点,可以使用其他 CSS 单位来代替,比如 em、rem、vw、vh 等。

CSS 不同单位对比
单位 说明
px 绝对单位,一个像素点
em 相对单位,相对于父元素的字体大小
rem 相对单位,相对于根元素(html)的字体大小
vw 相对单位,视口宽度的 1%
vh 相对单位,视口高度的 1%

与 px 相比,em、rem、vw、vh 等单位更适合用于创建响应式布局,因为它们可以根据不同的屏幕尺寸和视口大小进行缩放。

1. 什么时候应该使用 px?

对于 px 来说,它适用于需要精确控制元素尺寸和位置的场景,比如:

  • 边框:border: 1px solid #ccc;(没人希望边框随着屏幕变大而变粗)。
  • 阴影:box-shadow: 5px 5px 10px black;。
  • 极小的细节:比如 16x16 的图标。
  • 固定宽度的侧边栏:在某些布局中,侧边栏宽度固定,内容区域自适应。

2. 什么时候尽量少用 px?

对于 px 来说,它不适用于以下场景:

  • 需要创建响应式布局。
  • 需要元素尺寸随屏幕或视口大小缩放。

提示: 在选择 CSS 单位时,我们应根据具体情况进行权衡。如果需要精确地控制元素的大小和位置,可以使用 px 单位。如果需要创建响应式布局,可以使用 em、rem、vw 或 vh 等单位。

上一篇: CSS 粘性定位

下一篇: CSS 百分比

给站长反馈

绿叶网正在不断完善中,小伙伴们如果发现任何问题,还望多多给站长反馈,谢谢!

邮箱:lvyenet@vip.qq.com

「绿叶网」服务号
绿叶网服务号放大
关注服务号,微信也能看教程。
绿叶网服务号