CSS【详解】长度单位 ( px,%,em,rem,vw,vh,vmin,vmax,ex,ch )

简介: CSS【详解】长度单位 ( px,%,em,rem,vw,vh,vmin,vmax,ex,ch )

px

像素 pixel 的缩写,即电子屏幕上的1个点,以分辨率为 1024 * 768 的屏幕为例,即水平方向上有 1024 个点,垂直方向上有 768 个点,则 width:1024px 即表示元素的宽度撑满整个屏幕。

屏幕分辨率不同,1px 的大小也不同,所以严格来说,px 也是相对单位,但不考虑屏幕分辨率时,也可以把 px 当作绝对单位来看待。

% 百分比

通常百分比都是相对于父元素的 content box 计算,所以父元素必须有显式的值,若父元素 height 为 auto ,则百分比值将完全失效!

以下样式的百分比计算规则比较特殊,需特别留意:

  • widthheightfont-size 的百分比相对于父元素“相同属性”的值计算
  • line-height 的百分比相对于父元素的 font-size 计算
  • vertical-align 的百分比相对当前元素的 line-height 计算
  • position:absolute 绝对定位元素相对于第一个position不为 static 的祖先元素的 padding box 计算
  • position:fixed 悬浮定位元素的宽度相对于 html 计算(尺寸等同于浏览器可视窗口的大小)

【实战】撑满整个屏幕

<div class="fullScreen" style="background-color: greenyellow"></div>
 
html,
body {
  height: 100%;
  /* 清除浏览器的默认样式 */
  margin: 0px;
  padding: 0px;
}
.fullScreen {
  height: 100%;
}

解析:

  • 范例中 div 的高度 100% 会相对于父元素(body)的高度进行计算,所以 body 必须设置 height: 100% ,而 body 的父元素是 html 标签,所以 html 也必须设置 height: 100%
  • 宽度无需设置,因为 html , body , div 的都是 display:block 块级元素,宽度都是自动撑满整个屏幕。
  • 浏览器默认会给 html , body 添加 margin 和 padding (不同浏览器的默认样式不一样),此处需手动进行清除。

【实战】响应式布局

https://blog.csdn.net/weixin_41192489/article/details/136423056

em

相对于“当前元素”的字体大小来计算最终长度,以“当前元素” 的字体大小为 16px 为例,1em = 16px,2em 即 2*16 = 32px


最佳实践:用于维护某模块内元素间固定的比例关系,详见

https://blog.csdn.net/weixin_41192489/article/details/126118830

【实战】首行缩进两空格

<template>
  <div style="background-color: greenyellow">
    <p>很久很久以前</p>
  </div>
</template>

<style lang="scss" scoped>
p {
  text-indent: 2em;
}
</style>

【实战】限定中文内容宽度

article {
    max-width: 42em;
}

rem

相对于根元素的字体大小计算长度,以根元素( html 标签)的 font-size 为 16px 为例,2rem 即 2*16 = 32px。

【实战】响应式布局

https://blog.csdn.net/weixin_41192489/article/details/136423056

vw

相对于视口(浏览器的可视区域)宽度计算长度,1vw = 视口宽度的1%

  • 100 vw 即水平方向撑满屏幕

【实战】响应式布局

https://blog.csdn.net/weixin_41192489/article/details/136423056

vh

相对于视口(浏览器的可视区域)高度计算长度,1vh = 视口高度的1%

  • 100 vh 即垂直方向撑满屏幕

【实战】响应式布局

https://blog.csdn.net/weixin_41192489/article/details/136423056

vmin

相对于 vw 和 vh 中较小的计算长度,如手机竖屏时,1vmin = 1vw ; 手机横屏时,1vmin = 1vh ;

vmax

相对于 vw 和 vh 中较大的计算长度,如手机竖屏时,1vmax = 1vh ; 手机横屏时,1vmax = 1vw ;

ex

相对于字符 x 的高度计算长度

【实战】文字和图标垂直居中对齐

https://blog.csdn.net/weixin_41192489/article/details/115218875

ch

相对于字符 0 的宽度计算长度

【实战】手机号的输入框

将手机号输入框的宽度设为11ch,同时让字体等宽,一眼就能看出是否输入了11位的手机号码。

<template>
  <label for="phone">手机号:</label>
  <input id="phone" class="phone_input" type="text" />
</template>

<style lang="scss" scoped>
.phone_input {
  width: 11ch;
  /*等宽字体*/
  font-family: 'Courier New', Courier, monospace;
}
</style>

【实战】限定英文内容宽度

需配合等宽字体才精准。

article {
    max-width: 68ch;
}
/* 等宽字体 */
.font-mono {
    font-family: Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
}

目录
相关文章
|
前端开发 JavaScript Serverless
揭秘CSS布局神器:vw/vh、rem、%与px大PK,掌握它们,让你的网页设计秒变高大上,面试难题迎刃而解!
【8月更文挑战第4天】在Web开发中,合理选择CSS单位对响应式布局至关重要。本文探索viewport单位(vw/vh)、rem、百分比(%)及像素(px)的基础知识与应用场景。通过代码示例,展示如何运用这些单位实现全屏布局、尺寸比例调整、灵活的元素大小及固定尺寸。最后,模拟面试题,介绍如何仅用CSS实现一个元素的高度为其宽度两倍且响应视口变化的方法。
893 8
|
前端开发
css中px和em的区别
css中px和em的区别
204 0
|
前端开发
css中px和em的区别
css中px和em的区别
|
10月前
|
存储 前端开发 JavaScript
仿真银行app下载安装, 银行卡虚拟余额制作app,用html+css+js实现逼真娱乐工具
这是一个简单的银行账户模拟器项目,用于学习前端开发基础。用户可进行存款、取款操作,所有数据存储于浏览器内存中
|
人工智能 程序员 UED
【01】完成新年倒计时页面-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
【01】完成新年倒计时页面-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
803 21
【01】完成新年倒计时页面-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
|
前端开发 JavaScript
【02】v1.0.1更新增加倒计时完成后的放烟花页面-优化播放器-优化结构目录-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
【02】v1.0.1更新增加倒计时完成后的放烟花页面-优化播放器-优化结构目录-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
651 14
【02】v1.0.1更新增加倒计时完成后的放烟花页面-优化播放器-优化结构目录-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
|
前端开发
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
1036 1
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
css3 svg制作404页面动画效果HTML源码
css3 svg制作404页面动画效果HTML源码
294 34
html+js+css实现的建筑方块立体数字时钟源码
html+js+css实现的建筑方块立体数字时钟源码
620 33

热门文章

最新文章

  • 1
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(九):强势分析Animation动画各类参数;从播放时间、播放方式、播放次数、播放方向、播放状态等多个方面,完全了解CSS3 Animation
    449
  • 2
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(八):学习transition过渡属性;本文学习property模拟、duration过渡时间指定、delay时间延迟 等多个参数
    350
  • 3
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(七):学习ransform属性;本文学习 rotate旋转、scale缩放、skew扭曲、tanslate移动、matrix矩阵 多个参数
    335
  • 4
    (CSS)使用Flex布局,帮助你快速了解各种基本的Flex布局属性以及帮你让元素快速达到布局中的指定位置!
    226
  • 5
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(六):全方面分析css的Flex布局,从纵、横两个坐标开始进行居中、两端等元素分布模式;刨析元素间隔、排序模式等
    447
  • 6
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(五):背景属性;float浮动和position定位;详细分析相对、绝对、固定三种定位方式;使用浮动并清除浮动副作用
    621
  • 7
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(四):元素盒子模型;详细分析边框属性、盒子外边距
    924
  • 8
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(三):元素继承关系、层叠样式规则、字体属性、文本属性;针对字体和文本作样式修改
    238
  • 9
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(二):CSS伪类:UI伪类、结构化伪类;通过伪类获得子元素的第n个元素;创建一个伪元素展示在页面中;获得最后一个元素;处理聚焦元素的样式
    756
  • 10
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(一):CSS发展史;CSS样式表的引入;CSS选择器使用,附带案例介绍
    417