整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

CSS 可视窗口

CSS 可视窗口
lt;meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0,user-scalable=no" id="viewport" />

width=device-width 设置布局视口的宽度, device-width设备出厂的视口宽度

user-scalable=no 是否允许用户缩放, 值为no或yes, no代表不允许, yes代表允许

initial-scale=1.0 设置页面的初始缩放视口宽度为1.0倍

maximum-scale=1.0 允许用户最大的缩放视口宽度为1.0倍

minimum-scale=1.0 允许用户最小的缩放视口宽度为1.0倍

获取可是窗口的宽度和高度?

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>

<!--视口-->

<!--
视口宽度:设备宽度
是否允许用户缩放:no
初始缩放比:1
最大缩放比:1
最小缩放比:1

-->
<meta name="viewport" content="width=device-width,user-scalable=no," />
</head>
<body>
<!--
视口
可视窗口
-->
<h1>小许的手机真奇葩竟然不是980</h1>
<p>你们感觉还好那我呢 </p>
<script type="text/javascript">
    var w=document.documentElement.clientWidth || document.body.clientWidth;

    alert(w)
</script>
</body>
</html>

获取屏幕的像素比和分辨率

<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8" />
<title>Document</title>
<meta name="viewport" content="width=device-width"/>
</head>
<body>
<script type="text/javascript">
    //设备像素比=分辨率/设备真实的大小
    var w=document.documentElement.clientWidth || document.body.clientWidth;
    var dpr=window.devicePixelRatio; //屏幕的像素比

    alert(w*dpr) //计算出屏幕的分辨率

    //console.log(window.devicePixelRatio);//设备像素比
</script>
</body>
</html>

devicePixelRatio属性

该 Window 属性 devicePixelRatio 能够返回当前显示设备的物理像素分辨率与 CSS 像素分辨率的比率

还原屏幕的分辨率

口单位(Viewport units)

什么是视口?

在PC端,视口指的是在PC端,指的是浏览器的可视区域;

而在移动端,它涉及3个视口:Layout Viewport(布局视口),Visual Viewport(视觉视口),Ideal Viewport(理想视口)。

视口单位中的“视口”,PC端指的是浏览器的可视区域;移动端指的就是Viewport中的Layout Viewport。

根据CSS3规范,视口单位主要包括以下4个:

1.vw:1vw等于视口宽度的1%。

2.vh:1vh等于视口高度的1%。

3.vmin:选取vw和vh中最小的那个。

4.vmax:选取vw和vh中最大的那个。

vh and vw:相对于视口的高度和宽度,而不是父元素的(CSS百分比是相对于包含它的最近的父元素的高度和宽度)。1vh 等于1/100的视口高度,1vw 等于1/100的视口宽度。

比如:浏览器高度950px,宽度为1920px, 1 vh=950px/100=9.5 px,1vw=1920px/100=19.2 px。

vmax相对于视口的宽度或高度中较大的那个。其中最大的那个被均分为100单位的vmax。

vmin相对于视口的宽度或高度中较小的那个。其中最小的那个被均分为100单位的vmin。


vh/vw与%区别


请看下面简单的栗子:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>VW&VH</title>
</head>
<style>
    * {
        padding: 0;
        margin: 0
    }

    .left {
        float: left;
        width: 50vw;
        height: 20vh;
        background-color: blue;
        text-align: center;
        line-height: 20vh;
        font-size: 3rem
    }

    .right {
        float: right;
        width: 50vw;
        height: 20vh;
        background-color: green;
        text-align: center;
        line-height: 20vh;
        font-size: 3rem
    }
</style>

<body>
    <div class="left">left</div>
    <div class="right">right</div>
</body>

</html>


兼容性问题(在移动端 iOS 8 以上以及 Android 4.4 以上获得支持,并且在微信 x5 内核中也得到完美的全面支持)

端web页面中,js可以很方便的获取div元素的高度和宽度,那么这篇文章就说一说原生JS与JQ如何快速的获取DIV元素的高度和宽度的方法。

js获取div元素高度与宽度的方法

js获取div元素的高度与宽度要用的 clientHeight 与 clientWidth方法

clientHeight:返回元素的可视高度

clientWidth:返回元素的可视宽度

示例代码:

<div id="mochu" style="height: 200px;width:150px;color:#fff;background-color: blueviolet;">
 飞鸟慕鱼博客
</div>
<script>
 //获取高度
 var h=document.getElementById('mochu').clientHeight;
 //获取宽度
 var w=document.getElementById('mochu').clientWidth;
 console.log(h);
 console.log(w);
</script>

打印结果:

200

150