CSS中的”外围“尺寸

2021-02-28  本文已影响0人  JohnYuCN

一、device-width

表示”理想宽度“,也称为”ideal viewport“,是理想状态下外围容器宽度。针对移动端可以如下方式设定(这也是PC端是默认值,也不能修改):

<meta name="viewport" content="device-width">

它的值对于PC端,指的是屏幕的物理像素宽(Mac电脑或部分4K屏幕windows是有优化,会小于物理值)

它的值,代表着body水平流动的最大值,如果body的强制设定宽度超过它,就会出现水平滚动条

在移动端的缺省值为980或1024(根据机器的不同,大部分为980,ipadpro为1024)

二、 document.body.clientWidth:

是指body元素的css宽度

其值受两个因素的影响:

* body的css的width属性
* 不设width时,由viewport的值做为上限,并随widnow.innerWidth的变化而变化

三、document.documentElement.clientWidth

是指document对象的容器宽度,学名:viewport,也可以称为"layout viewport",它的值会影响着水平滚动条的出现(另两个因素,是默认viewport及body.clientWidth)

同时它的值也将成为body宽度水平流动的上限,即成为document.body.clientWidth自动变化的上限(当然也可以手动设定body的css)

是由以下方式进行指定(关注width部分):

<meta name="viewport" content="3000, initial-scale=1.0 maximum-scale=1.0,minimum-scale=1.0,user-scalable=0" >

以上设定,对PC端无任何效果,它的width恒为屏幕宽度(物理像素),也可以理解为width=device-width

针对移动端:以上设置全部生效

四、window.innerWidth:

是指浏览器内部的实际内部宽度,以像素为单位

五、window.outerWidth:

pc端:是指浏览器外部的实际外部宽度,以像素为单位

移动端:是指浏览器的实际宽度,以DP为单位

六、window.innerHeight:

pc端: 是指浏览器内部的实际物理像素高度,但会比window.outerHeight要小(因为有地址栏,状态栏,工具栏等)

移动端:是指浏览器内部的实际物理像素高度

七、window.outerHeight:

移动端:是指浏览器的实际高度,以DP为单位

八、分析不同:

1. document.body.clientWidth 和document.documentElement.clientWidth

2. window.innerWidth和window.outerWidth:

3. window.innerHeight和window.outerHeight:

九、三种不同的viewport的理解

1. Ideal viewport

与设备相关的理想布局宽度

2. Visual viewport

一个整屏可以看到的宽度,介于ideal viewport和980(1024)之间的宽度

如果网页布局小于ideal viewport,则屏幕不会被全部使用

如果网页布局大于980,则需要横向滚屏。

4. Layout viewport

就是document.documentElement.clientWidth,目的是控制网页布局的最大宽度

上一篇 下一篇

猜你喜欢

热点阅读