js 获取屏幕各种宽高的方法(浏览器兼容)

yizhihongxing

获取屏幕各种宽高是JS中常见的需求之一。不同屏幕大小、分辨率、设备类型对于页面要展示的内容影响很大。下面是JS获取屏幕各种宽高的方法及浏览器兼容性的攻略。

获取屏幕分辨率

我们可以使用window.screen.widthwindow.screen.height获取屏幕分辨率,这两个属性返回的是数值型数据,单位是像素,例如:

console.log(window.screen.width); // 输出屏幕宽度像素数
console.log(window.screen.height); // 输出屏幕高度像素数

兼容性:IE4+、Chrome、Firefox、Safari、Opera。

获取屏幕可用窗口区域的宽高

window.screen对象的availWidthavailHeight属性分别用于获取(应用程序标准)窗口区域的可用宽度和可用高度,使用方式如下:

console.log(window.screen.availWidth); // 输出可用宽度像素数
console.log(window.screen.availHeight); // 输出可用高度像素数

兼容性:IE4+、Chrome、Firefox、Safari、Opera。

获取浏览器窗口宽高

下面的示例代码展示了如何获取浏览器窗口的宽度和高度。

function getWindowSize() {
  var w = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;
  var h = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;
  return {
    width: w,
    height: h
  };
}

这里我们使用window.innerWidthwindow.innerHeight获取浏览器窗口的宽度和高度。如果这两个属性的值为undefined,说明不支持innerWidthinnerHeight,此时我们可以使用document.documentElement.clientWidthdocument.documentElement.clientHeightdocument.body.clientWidthdocument.body.clientHeight,根据浏览器具体情况返回窗口宽度和高度。

兼容性:window.innerWidthwindow.innerHeight IE9+、Chrome、Firefox、Safari、Opera;其他方式的兼容性较好。

获取屏幕的物理宽高

下面这个示例展示了如何获取屏幕的物理宽和高。

function getScreenSize() {
  var w = screen.width * window.devicePixelRatio;
  var h = screen.height * window.devicePixelRatio;
  return {
    width: w,
    height: h
  };
}

这里我们通过screen.widthscreen.height获取屏幕的物理宽度和高度,然后乘以window.devicePixelRatio得到实际像素宽度和高度,返回值为一个对象,属性值分别为宽度和高度。

兼容性:IE不支持devicePixelRatio,其他浏览器兼容性较好。

综上所述,我们可以使用这些方法适配不同的场景,实现网页宽高动态适配。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:js 获取屏幕各种宽高的方法(浏览器兼容) - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • 应用before/after伪类时如何CSS命名以及针对ie6/ie7浏览器兼容

    应用before/after伪类时如何CSS命名以及针对IE6/IE7浏览器兼容的完整攻略如下: 1. CSS命名 命名规范:在需要使用before/after伪类的DOM元素的class名字中,添加:before和:after来区分before伪元素和after伪元素,命名如下: .element:before { content: "&quot…

    css 2023年6月10日
    00
  • 利用css样式实现表格中字体垂直居中的方法

    下面是利用CSS样式实现表格中字体垂直居中的方法的完整攻略。 方法一:使用 table-cell 和 vertical-align 属性 首先,我们需要将表格单元格的样式设为 “display: table-cell”,这样单元格的内容就可以像块级元素一样垂直居中。 然后,在单元格中添加 “vertical-align: middle”,以使文本内容垂直居中…

    css 2023年6月9日
    00
  • 利用负边距技术制作自适应宽度布局的网页

    制作自适应宽度布局的网页,通常可以用到负边距技术。下面是具体的攻略: 1. 理解负边距的概念和作用 负边距是指让元素的边界向相反方向偏移的技术。负边距可用于解决两个元素之间的间隙问题,扩大元素的可点击区域,创造一些装饰性质的效果等。利用负边距实现自适应宽度布局的方法是,将容器元素的宽度设为100%,再将里面的元素向相反方向使用负值边距进行偏移,从而创建一种自…

    css 2023年6月9日
    00
  • media type(媒体类型)与media query(媒体查询)简介及使用方法介绍

    媒体类型和媒体查询是用于响应式设计的重要概念,可以让我们根据设备的屏幕宽度和其他条件来修改网页的样式和布局。下面是媒体类型和媒体查询的详细介绍及使用方法: 媒体类型(Media Type) 媒体类型是用来描述文档呈现特定媒体类型的方式,比如打印机、屏幕、手持设备等。我们可以通过使用媒体查询为不同媒体类型的设备设置不同的样式。 在CSS中,使用@media规则…

    css 2023年6月10日
    00
  • CSS优先级规则的细节

    CSS 优先级规则的细节 CSS 优先级是决定样式被应用的重要标准,当多个样式规则应用到同一个元素时,会按照一定的规则去判断哪些样式规则生效,哪些样式规则被舍弃掉。本篇攻略将详细讲解 CSS 优先级的相关规则和细节。 优先级机制 CSS 优先级按照特定的规则计算,一般来说优先级大的样式规则会覆盖优先级低的样式规则,计算规则如下: !important:样式规…

    css 2023年6月9日
    00
  • JavaScript实现单英文金山打字通

    Javascript实现单英文金山打字通可以分为以下几个步骤: 构建HTML页面结构,包括输入框和文本框。 <!DOCTYPE html> <html> <head> <title>打字练习</title> </head> <body> <h1>打字练习</…

    css 2023年6月11日
    00
  • CSS3的RGBA中关于整数和百分比值的转换

    CSS3的RGBA色彩模式可以使用整数或百分比值来定义每个颜色通道的值,如下所示: /* 定义RGBA颜色,参数值分别是红、绿、蓝和透明度 */ background-color: rgba(255, 0, 0, 0.5); 其中,255是红色通道的整数值,0是绿色通道的整数值,0是蓝色通道的整数值,0.5是透明度的百分比值,表示50%不透明度。 但是,在某…

    css 2023年6月10日
    00
  • 用CSS实现图片的3D凹凸感(凸出镜框外或凹陷镜框里)

    下面我将详细讲解如何用 CSS 实现图片的 3D 凹凸感。 准备图片 首先我们需要准备一张需要进行 3D 处理的图片。在该图片上可以尽可能的增加一些明亮和阴暗的区域,以便更好地突出凸出和凹陷的效果。 CSS 实现 3D 凹凸感 接下来,我们可以使用 CSS 来实现 3D 凹凸感。下面是一些示例说明: 使用 box-shadow 实现凸出 可以使用 box-s…

    css 2023年6月10日
    00
合作推广
合作推广
分享本页
返回顶部