浅谈CSS中的尺寸单位

0
回复
1658
查看
[复制链接]

微信扫一扫 分享朋友圈

7848

主题

7931

帖子

7948

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
7948

最佳新人活跃会员热心会员推广达人宣传达人灌水之王突出贡献优秀版主荣誉管理论坛元老

发表于 2021-5-3 05:12:23 | 显示全部楼层 |阅读模式
浏览器的兼容性越来越好,移动端基本是清一色的webkit,经常会用到css的不同尺寸/长度单位,这里做个整理。
概览
绝对单位

        px: Pixel 像素pt: Points 磅pc: Picas 派卡in: Inches 英寸mm: Millimeter 毫米cm: Centimeter 厘米q: Quarter millimeters 1/4毫米
相对单位

        %: 百分比em: Element meter 根据文档字体计算尺寸rem: Root element meter 根据根文档( body/html )字体计算尺寸ex: 文档字符“x”的高度ch: 文档数字“0”的的宽度vh: View height 可视范围高度vw: View width 可视范围宽度vmin: View min 可视范围的宽度或高度中较小的那个尺寸vmax: View max 可视范围的宽度或高度中较大的那个尺寸
运算
calc: 四则运算
实例:
  1. h1 {    width: calc(100% - 10px + 2rem);}
复制代码
单位比例
1in = 2.54cm = 25.4 mm = 101.6q = 72pt = 6pc = 96px
详细
绝对单位
px - Pixel 像素

像素 px 相对于设备显示器屏幕分辨率而言。
  1. div { font-size: 12px }p { text-indent: 24px }
复制代码
pt Points 磅
1 pt = 1/72 英寸
  1. div { font-size: 10pt }p { height: 100pt }
复制代码
pc Picas 派卡
十二点活字(印刷中使用的),相当于我国新四号铅字的尺寸。
  1. div { font-size: 10pc }p { height: 10pc }
复制代码
in Inches 英寸
  1. div { font-size: 10in }p { height: 10in }
复制代码
mm Millimeter 毫米
  1. div { font-size: 10mm }p { height: 10mm }
复制代码
cm Centimeter 厘米
  1. div { font-size: 10cm }p { height: 10cm }
复制代码
q Quarter millimeters 1/4毫米
  1. div { font-size: 20q }p { height: 100q }
复制代码
相对单位
% 百分比
相对于父元素宽度
  1. <body>    <div class="parent">        <div class="children"></div>    </div></body><style>.parent { width: 100px }.children { width: 66.6% }/* children的宽度为 66.6px */</style>
复制代码
em Element meter 根据文档计算尺寸
相对于当前文档对象内文本的字体尺寸而言,若未指定字体大小则继承自上级元素,以此类推,直至 body,若 body 未指定则为浏览器默认大小。
  1. <body>    <div class="element"></div></body><style>body {    font-size: 14px;}.element {    font-size: 16px;    width: 2em;    /* 2em === 32px */}</style>
复制代码
rem Root element meter 根据根文档( body/html )字体计算尺寸
相对于根文档对象( body/html )内文本的字体尺寸而言,若未指定字体大小则继承为浏览器默认字体大小。
  1. <body>    <div class="element"></div></body><style>body {    font-size: 14px;}.element {    font-size: 16px;    width: 2rem;    /* 2rem === 28px */}</style>
复制代码
ex 文档字符“x”的高度
相对于字符“x”的高度,通常为字体高度的一半,若未指定字体尺寸,则相对于浏览器的默认字体尺寸。
至于为啥是x,我TM也不知道。
  1. <body>    <div class="x"></div></body><style>.x {    height: 1ex;    overflow: hidden;    background: #aaa;}</style>
复制代码
ch 文档数字“0”的的宽度
同上,相对于数字“0”的宽度。
  1. <body>    <h1>定义一个宽度正好能装下10个0的容器:</h1>    <div class="0">0000000000</div></body><style>.0 {    width: 10ch;    overflow: hidden;    background: #ccc;}</style>
复制代码
一张图解释:



vh View height / vw View Width - 可视范围
相对于可视范围的高度和宽度,可视范围被均分为 100 单位的 vh/vw;可视范围是指屏幕可见范围,不是父元素的,百分比是相对于包含它的最近的父元素的高度和宽度。
假设设备可视范围为高度 900px,宽度 750px,则,1 vh = 900px/100 = 9px,1vw = 750px/100 = 7.5px。
  1. <body>    <h1>article title</h1>    <div class="element"></div>    <div class="full-height"></div></body><style>.element {    width: 50vw;    height: 80vh;    /* 如果屏幕高度为1000px,则该元素高度为800px,vw 同理 */}.full-height {    height: 100vh;    /* 轻易实现了与屏幕同等高度的元素 */}h1 {    width: 100vw;    /* 设置一个和屏幕同宽的标题,标题的字体大小就会自动根据浏览器的宽度进行缩放,以达到字体和viewport大小同步的效果。 */}</style>
复制代码
vmin / vmax 可视范围的宽度或高度中较小/较大的那个尺寸
假设浏览器的宽度设置为 1200px,高度设置为 800px, 则1vmax = 1200/100px = 12px, 1vmin = 800/100px = 8px。
如果宽度设置为 600px,高度设置为 1080px, 则1vmin = 6px, 1vmax = 10.8px。
假设需要让一个元素始终在屏幕上可见:
  1. .box {     height: 100vmin;     width: 100vmin;}
复制代码



假设需要让这个元素始终铺满整个视口的可见区域:
  1. .box {     height: 100vmax;     width: 100vmax;}
复制代码



总结
em、rem 是实际生产中我们最常用到的单位,可以使用其配合媒体查询改变 body 字体大小来实现响应式的设计,vh、vw、vmin、vmax也可以很方便地帮助我们控制响应尺寸,但实际的可控性可能不如前者,具体按照我们的业务需求去实践吧!
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持模板人源码论坛。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!模板人源码·版权声明


本网站所收集的部分公开资料来源于互联网,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。本站部分作品是由网友自主投稿和发布、编辑整理上传,对此类作品本站仅提供交流平台,不为其版权负责。如果您发现网站上有侵犯您的知识产权的作品,请与我们取得联系,我们会及时修改或删除。
      本网站所提供的信息,只供参考之用学习交流,切勿用作非法用途。本网站不保证信息的准确性、有效性、及时性和完整性。本网站及其雇员一概毋须以任何方式就任何信息传递或传送的失误、不准确或错误,对用户或任何其他人士负任何直接或间接责任。在法律允许的范围内,本网站在此声明,不承担用户或任何人士就使用或未能使用本网站所提供的信息或任何链接所引致的任何直接、间接、附带、从属、特殊、惩罚性或惩戒性的损害赔偿。        唯一网址: https://www.mubanren.com/thread-540-1-1.html

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
温馨提示:充值398元VIP会员立享全站资源30天免费下载 如有问题可以直接联系客服
                  金币充值    VIP购买    投诉举报    失效链接反馈
1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关
2、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
3、免责声明:本附件资源转载自互联网,转存百度网盘,若有侵权请速联系客服,我们将会在24小时内删除,谢谢!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

400-0000-365

周一至周五 9:30-18:00

北京市大兴区景园北街2号02号

  • 关注微信账号

  • 关注微博账号