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;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/374968.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

小程序问题

1.获取节点 wx.createSelectorQuery() wx.createSelectorQuery().in(this) //组件中加in(this)&#xff0c;不然获取不到 2.使用实例 wx.createSelectorQuery().in(this).select(#share).fields({node: true,size: true}).exec(async (res) > {const canvas res[0].node;…

如何将Docker镜像源更改为阿里云的镜像加速地址

在使用Docker时&#xff0c;尤其是在国内环境下&#xff0c;由于网络原因&#xff0c;从Docker Hub拉取镜像可能会遇到速度较慢的问题。为了提高拉取速度&#xff0c;我们可以将Docker的镜像源更改为阿里云等国内镜像源。下面详细介绍如何获取并配置阿里云的Docker镜像加速地址…

C++三大特征:多态

1.virtual关键字 1.1何为虚函数 virtual用于在base类中声明一个虚函数&#xff0c;[虚函数]的主要作用是[允许]在派生类&#xff08;也称为子类)中对该函数进行[重写](override) 1.2何为重写 重写就是在drived类中写一个函数(返回类型,名称,参数列表)与base类相同的函数,dr…

C++基础(二)

目录 1.类和对象 1.1类的定义 1.2访问限定符 1.3类域 2.实例化 2.1实例化概念 2.2对象大小 3.this指针 4.类的默认成员函数 4.1构造函数 4.2析构函数 4.5运算符重载 1.类和对象 1.1类的定义 类的定义格式 class为定义类的关键字&#xff0c;Stack为类的名字&…

从零开始实现大语言模型(四):简单自注意力机制

1. 前言 理解大语言模型结构的关键在于理解自注意力机制(self-attention)。自注意力机制可以判断输入文本序列中各个token与序列中所有token之间的相关性&#xff0c;并生成包含这种相关性信息的context向量。 本文介绍一种不包含训练参数的简化版自注意力机制——简单自注意…

uni-app/vue项目如何封装全局消息提示组件

效果图&#xff1a; 第一步&#xff1a;封装组件和方法&#xff0c;采用插件式注册&#xff01; 在项目目录下新建components文件夹&#xff0c;里面放两个文件&#xff0c;分别是index.vue和index.js. index.vue&#xff1a; <template><div class"toast&quo…

【Linux杂货铺】2.进程优先级

1.进程优先级基本概念 进程优先级是操作系统中用于确定进程调度顺序的一个指标。每个进程都会被分配一个优先级&#xff0c;优先级较高的进程会在调度时优先被执行。进程优先级的设定通常根据进程的重要性、紧急程度、资源需求等因素来确定。操作系统会根据进程的优先级来决定进…

nuPlan 是一个针对自动驾驶车辆的闭环机器学习(ML-based)规划基准测试

nuPlan: A closed-loop ML-based planning benchmark for autonomous vehicles nuPlan 是一个针对自动驾驶车辆的闭环机器学习&#xff08;ML-based&#xff09;规划基准测试 Abstract In this work, we propose the world’s first closed-loop ML-based planning benchmar…

【JavaScript】解决 JavaScript 语言报错:Uncaught ReferenceError: XYZ is not defined

文章目录 一、背景介绍常见场景 二、报错信息解析三、常见原因分析1. 变量未声明2. 拼写错误3. 块级作用域4. 使用未定义的函数或对象5. 代码执行顺序 四、解决方案与预防措施1. 确保变量已声明2. 检查拼写错误3. 注意块级作用域4. 定义和调用函数5. 正确的代码执行顺序 五、示…

tkinter-TinUI-xml实战(11)多功能TinUIxml编辑器

引言 在TinUIXml简易编辑器中&#xff0c;我们通过TinUI搭建了一个简易的针对TinUIXml布局的编辑器&#xff0c;基本掌握了TinUIXml布局和TinUIXml的导入与导出。现在&#xff0c;就在此基础上&#xff0c;对编辑器进行升级。 本次升级的功能&#xff1a; 更合理的xml编辑与…

Java设计模式---(创建型模式)工厂、单例、建造者、原型

目录 前言一、工厂模式&#xff08;Factory&#xff09;1.1 工厂方法模式&#xff08;Factory Method&#xff09;1.1.1 普通工厂方法模式1.1.2 多个工厂方法模式1.1.3 静态工厂方法模式 1.2 抽象工厂模式&#xff08;Abstract Factory&#xff09; 二、单例模式&#xff08;Si…

浅析Kafka-Stream消息流式处理流程及原理

以下结合案例&#xff1a;统计消息中单词出现次数&#xff0c;来测试并说明kafka消息流式处理的执行流程 Maven依赖 <dependencies><dependency><groupId>org.apache.kafka</groupId><artifactId>kafka-streams</artifactId><exclusio…

【密码学】大整数分解问题和离散对数问题

公钥密码体制的主要思想是通过一种非对称性&#xff0c;即正向计算简单&#xff0c;逆向计算复杂的加密算法设计&#xff0c;来解决安全通信。本文介绍两种在密码学领域内最为人所熟知、应用最为广泛的数学难题——大整数分解问题与离散对数问题 一、大整数分解问题 &#xf…

thinkphp 生成邀请推广二维码,保存到服务器并接口返回给前端

根据每个人生成自己的二维码图片,接口返回二维码图片地址 生成在服务器的二维码图片 控制器 public function createUserQRcode(){$uid = input(uid);if

传言称 iPhone 16 Pro 将支持 40W 快速充电和 20W MagSafe

目前&#xff0c;iPhone 15 和 iPhone 15 Pro 机型使用合适的 USB-C 电源适配器可实现高达 27W 的峰值充电速度&#xff0c;而 Apple 和授权第三方的官方 MagSafe 充电器可以高达 15W 的功率为 iPhone 15 机型进行无线充电。所有四款 iPhone 15 机型均可使用 20W 或更高功率的电…

FPGA学习笔记(一) FPGA最小系统

文章目录 前言一、FPGA最小系统总结 前言 今天学习下FPGA的最小系统一、FPGA最小系统 FPGA最小系统与STM32最小系统类似&#xff0c;由供电电源&#xff0c;时钟电路晶振&#xff0c;复位和调试接口JTAG以及FLASH配置芯片组成&#xff0c;其与STM32最大的不同之处就是必须要有…

Appium自动化测试系列: 2. 使用Appium启动APP(真机)

历史文章&#xff1a;Appium自动化测试系列: 1. Mac安装配置Appium_mac安装appium-CSDN博客 一、准备工作 1. 安卓测试机打开调试模式&#xff0c;然后使用可以传输数据的数据线连接上你的电脑。注意&#xff1a;你的数据线一定要支持传输数据&#xff0c;有的数据线只支持充…

《数据结构:C语言实现顺序表》

文章目录 一、顺序表1、静态顺序表2、动态顺序表 二、动态顺序表实现1、创建自定义类型2、完成顺序表的创建&#xff0c;测试功能需求3、完成顺序表的初始化和销毁功能4、顺序表插入数据和打印数据5、删除数据 三、顺序表完成最终的代码test.c文件中的代码&#xff1a;用来测试…

新手教学系列——MongoDB聚合查询的进阶用法

引言 MongoDB的聚合查询是其最强大的功能之一。无论是汇总、平均值、计数等标准操作,还是处理复杂的数据集合,MongoDB的聚合框架都能提供高效且灵活的解决方案。本文将通过几个实例,详细讲解如何在实际项目中使用MongoDB进行聚合查询。 标准应用:汇总、平均值、计数等 在…

k8s集群部署mysql8主备

一、搜索mysql8版本 # helm search repo mysql# helm pull bitnami/mysql --version:11.1.2# tar -zxf mysql-11.1.2.tgz# cd mysql 二、修改value.ysqml文件 动态存储类自己提前搭建。 # helm install mysql8 -n mysql-cluster ./ -f values.yaml NAME: mysql8 LAST DEPLOYED…