首页IT科技根据分辨率切换css(CSS 获取当前可视屏幕高度–使用calc()方法动态计算宽度或者高度)

根据分辨率切换css(CSS 获取当前可视屏幕高度–使用calc()方法动态计算宽度或者高度)

时间2025-05-06 08:54:41分类IT科技浏览3864
导读:先了解一下CSS3的相对长度单位和绝对长度单位(参考详细教程 : 相对长度单位...

先了解一下CSS3的相对长度单位和绝对长度单位(参考详细教程) :

相对长度单位

相对长度单位指定了一个长度相对于另一个长度的属性           。对于不同的设备相对长度更适用                 。

单位 描述 em 它是描述相对于应用在当前元素的字体尺寸           ,所以它也是相对长度单位      。一般浏览器字体大小默认为16px                 ,则2em == 32px; ex 依赖于英文字母小 x 的高度; ch 数字 0 的宽度; rem rem 是根 em(root em)的缩写      ,rem作用于非根元素时           ,相对于根元素字体大小;rem作用于根元素字体大小时                 ,相对于其出初始字体大小; vw viewpoint width      ,视窗宽度     ,1vw=视窗宽度的1% ; vh viewpoint height                 ,视窗高度           ,1vh=视窗高度的1% ; vmin vw和vh中较小的那个; vmax vw和vh中较大的那个           。 绝对长度单位

绝对长度单位是一个固定的值     ,它反应一个真实的物理尺寸                 。绝对长度单位视输出介质而定                 ,不依赖于环境(显示器           、分辨率                 、操作系统等)      。

px 像素 (1px = 1/96th of 1in) in 英寸 (1in = 96px = 2.54cm) cm 厘米 mm 毫米

我们通过vh / vw 可以获得当前屏幕的视窗高度/宽度           ,所以在css中,通过计算这个高度即可使得div的高度自动撑开到屏幕高度     。而计算这个高度可以使用css3的calc()函数(参考详细教程):

calc() 函数的定义与用法:

calc() 函数用于动态计算长度值                 ,需要注意的是:

运算符前后都需要保留一个空格                 ,例如:width: calc(100% - 10px); 任何长度值都可以使用calc()函数进行计算; calc()函数支持 “+           ”, “-                 ”, “*      ”, “/           ” 运算; calc()函数使用标准的数学运算优先级规则;

运用实列:

1. 设置div的高度满屏      、宽度满屏: 方法一:height:100vh; width: 100vw; <div class="div">一些文本...</div> <style> .div { height:100vh; width: 100vw; position: absolute; left: 50px; border: 1px solid black; background-color: yellow; padding: 5px; text-align: center; } </style> 方法二:width: calc(100%);height:calc(100%); <div class="div">一些文本...</div> <style> .div { width: calc(100%); height:calc(100%); position: absolute; left: 50px; border: 1px solid black; background-color: yellow; padding: 5px; text-align: center; } </style> 2. 自定义div的高度           、宽度:calc(expression)

expression:必须是一个数学表达式,结果将采用运算后的返回值                 。

<div class="div">一些文本...</div> <style> .div { //width: calc(50%*2); //height:calc(40%+50px); width: calc(100%/6); height:calc(100%-50px); position: absolute; left: 50px; border: 1px solid black; background-color: yellow; padding: 5px; text-align: center; } </style>

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
vue3的响应式(【手撕源码】vue3响应式原理解析(文末抽奖))