CSS中常见的长度单位

原文地址:https://segmentfault.com/a/1190000008934791?utm_source=tuicool&utm_medium=referral

px - 像素

px 是 CSS 中最常用的长度单位,可以用来指定字体大小,元素的宽度、高度、边框、内边距,外边距的大小等等, 它是一个虚拟长度单位,是计算机系统的数字化图像长度单位,如果px要换算成物理长度,需要指定精度DPI

px 单位的值必须是整数值

与px相关的一些单位

in - 表示英寸,是一个物理单位,在CSS中被直接映射成为px; 转换的方法是 1in = 96px

cm - 表示厘米,在生活中常用的单位,同样被映射为 px; 转换方法为 1cm = 37.8px

mm - 表示毫米,与cm类似,转换方法为 1mm = 0.1cm = 3.78px

em 与 rem

em 单位的值等于基本元素或父元素的字体大小。

例如,如果父元素的字体大小为16px,则所有直接子元素中的1em值将计算为16px。基于基本单元的知识,可以很方便的增大或减小子元素的字体大小。 这里的值不需要是整数。

使用em可以轻松地将各种元素的字体大小保持在固定比例。

例如,如果父元素的font-size的值为50px,则将子元素的字体大小设置为2em, 相当于设置为100px。 类似的,将它设置为0.5em将使得子元素的字体大小为25px。

另外有一点需要注意:如果想要通过 em 设置当前元素的大小值,并且不是相对于直接父元素,而是相对父元素的父元素或者根元素,就会变得很复杂,因为每一层都要进行计算

例如:

<div class="parent">
    <div class="child1">
        <div class="child2"></div>
    </div>
</div>

.parent {
    font-size: 20px;
}

.child1 {
    font-size: 1.5em;
}

.child2 {
    font-size: 1.2em;
}

那么就需要经过计算: child1的字体大小为 20 x 1.5 = 30px , 而 child2 的字体大小就等于 20 x 1.5 x 1.2 = 36px

rem 也是一个相对单位,与 em 的不同点在于rem的长度总是相对于根元素, 而不是像 em 使用级联的方式来计算尺寸。这种单位使用起来就简单很多

同样是上面的例子,不过使用的单位是 rem

<div class="parent">
    <div class="child1">
        <div class="child2"></div>
    </div>
</div>

.parent {
    font-size: 20px;
}

.child1 {
    font-size: 1.5rem;
}

.child2 {
    font-size: 1.2rem;
}

那么就需要经过计算: child1的字体大小为 16 x 1.5 = 24px , 而 child2 的字体大小就等于 16 x 1.2 = 19.2px ; 这里为什么是使用 16 来乘而不是 20 呢?这就是因为rem的长度总是相对于根元素, 就是指 html, 而 html文档中默认字体大小为 16px, 因此这里使用 16来计算

可视区相对长度单位

可视区相对长度 基于 视图窗口或视口(屏幕上的可视区域或者框架)的宽度和高度。

可视区高度单位(vh)和可视区宽度单位(vw)

vh单位与可视区的高度相关。vh的值等于可视区高度的1/100。如果我们要根据浏览器窗口的高度来调整元素,这个单位是有用的。 例如,如果可视区的高度是400px,则1vh等于4px。 如果可视区高度为800px,则1vh等于8px。

类似的,vw单位与可视区的宽度相关。 因此可以推算1vw的值。 1vw就等于可视区宽度的1/100。 例如,如果窗口的宽度为1200px,则1vw将为12px。

vmin 和 vmax

vmin 是当前 vm 和 vh 中较小的一个值,也就是说,是可视区域较小的一边的1/100的长度; 例如:可视区大小为 1000x800, 则 wmin = 800/100 = 8px; 如果可视区大小为 600x800, 则 wmin = 600/100 = 6px;

类似的, wmax 是当前 vm 和 vh 中较大的一个值,也就是说,是可视区域较大的一边的1/100的长度; 例如:可视区大小为 1000x800, 则 wmin = 1000/100 = 10px; 如果可视区大小为 600x800, 则 wmin = 800/100 = 8px;

百分比表示的长度

以百分比为单位的长度值是基于具有相同属性的父元素的长度值。因此会随着父元素对应的长度值得变化而变化。例如:设置父元素的宽度为 100px, 设置直接子元素的宽度为 50%,则子元素的宽度为 50px;

时间: 2024-10-17 10:30:15

CSS中常见的长度单位的相关文章

CSS中常见的布局

一.css中常见的布局有哪些? (1)两列布局 (2)三列布局 (3)弹性布局 (4)圣杯布局 (5)双飞翼布局 二.具体实现  (1)两列布局 https://www.cnblogs.com/qing-5/p/11442906.html (2)三列布局 https://www.cnblogs.com/qing-5/p/11338819.html (3)圣杯布局和双飞翼布局 相同点: a.三列布局,中间宽度自适应,两边定宽: b.中间栏要在浏览器中优先展示渲染: c.允许任意列的高度最高: d.

css中常见中文字体的英文名称

曾经看过一些文章,建议CSS中字体应用英文来替代,但一直未引起我重视.最近官网改版,今天同事测试发现Mac的Safari总是显示宋体 → → 修改font-family:"微软雅黑"为"Microsoft YaHei" 后正常. 黑体:SimHei 宋体:SimSun 新宋体:NSimSun 仿宋:FangSong 楷体:KaiTi 微软雅黑:Microsoft YaHei 幼圆:YouYuan

CSS中常见的BUG调试

1.布局--layout 布局是windows提出的概念,用于控制元素的尺寸和定位. 拥有布局的元素负责自身及其子元素的尺寸及定位,而没有布局的元素仅仅能依靠近期的祖先元素进行控制. 通常在IE6中出现的BUG.非常可能是由于布局的缘故而产生的,因而修复IE中BUG的时候,第一件事就是尝试通过规则迫使元素拥有布局来看是否能修复. 默认情况下拥有布局的元素包含:body.html(标准模式下).table.tr.td.img.hr.input.select.textarea.button.ifra

css中常见浏览器兼容性问题

浏览器兼容问题一:不同浏览器的标签默认的外补丁和内补丁不同 问题症状:随便写几个标签,不加样式控制的情况下,各自的margin 和padding差异较大. 碰到频率:100% 解决方案:CSS里 *{margin:0;padding:0;} 备注:这个是最常见的也是最易解决的一个浏览器兼容性问题,几乎所有的CSS文件开头都会用通配符*来设置各个标签的内外补丁是0. 浏览器兼容问题二:块属性标签float后,又有横行的margin情况下,在IE6显示 margin比设置的大 问题症状:常见症状是I

html+css中常见的浏览器兼容性处理

1.居中问题 div里的内容,IE默认为居中,而FF默认为左对齐,可以尝试增加代码margin: 0 auto; 2.高度问题 两上下排列或嵌套的div,上面的div设置高度(height),如果div里的实际内容大于所设高度,在FF中会出现两个div重叠的现象:但在IE中,下面的div会自动给上面的div让出空间所以为避免出现层的重叠,高度一定要控制恰当,或者干脆不写高度,让他自动调节,比较好的方法是 height:100%;但当这个div里面一级的元素都float了的时候,则需要在div块的

css中常见的属性-----在路上(14)

一.css文字属性 color : #999999; /*文字颜色*/ font-family : 宋体,sans-serif; /*文字字体*/ font-size : 9pt; /*文字大小*/ font-style:itelic; /*文字斜体*/ font-variant:small-caps; /*小字体*/ letter-spacing : 1pt; /*字间距离*/ line-height : 200%; /*设置行高*/ font-weight:bold; /*文字粗体*/ ve

CSS中常见的位置(position)属性

常用的位置属性列表: position(top.bottom.left.right) .overflow.z-index position用法: 值 描述 relative 相对定位,原位置仍占用空间,相对于其正常位置进行定位. 因此,"left:20" 会向元素的 LEFT 位置添加 20 像素. absolute 绝对定位,不保留原空间,相对于 static 定位以外的第一个父元素进行定位. 元素的位置通过 "left", "top", &q

----关于css中常见单位----

1.px 像素,绝对单位长度,可设定固定的长度大小.(像素是相对于显示器屏幕分辨率而言) 所有浏览器都显示为一样大小. eg: html: <p>这是一段正常段落</p> <p class="change">这是一个设置了大小为30像素大小的段落</p> css: p.change{font-size:30px} 效果如图: 2.em 值不固定,相对单位长度,会继承父级元素的字体大小. em是以字为单位,1em是占一个字符的宽度,大小随着

CSS中常见中文字体的英文名称(Microsoft YaHei,SimHei)

Mac OS的一些: 华文细黑:STHeiti Light [STXihei]华文黑体:STHeiti华文楷体:STKaiti华文宋体:STSong华文仿宋:STFangsong儷黑 Pro:LiHei Pro Medium儷宋 Pro:LiSong Pro Light標楷體:BiauKai蘋果儷中黑:Apple LiGothic Medium蘋果儷細宋:Apple LiSung Light Windows的一些: 新細明體:PMingLiU細明體:MingLiU標楷體:DFKai-SB黑体:S