【学习笔记】桌面浏览器的视口

news/2024/12/16 6:07:13/

概念:设备像素和CSS像素

设备像素:设备物理屏幕的像素分辨率,使用screen.width/height获取

这里有四个像素100%缩放,CSS像素完全覆盖设备像素
在这里插入图片描述

缩小后,CSS像素开始缩小,意味着一个设备像素覆盖多个CSS像素
在这里插入图片描述

放大后,CSS像素变大,现在一个CSS像素覆盖多个设置像素
在这里插入图片描述

您只对CSS像素感兴趣。正是这些像素决定了样式表的呈现方式

屏幕大小

用户显示器的大小,使用screen.width/height获取,对我们来说这个数据没什么用

屏幕尺寸示例
在这里插入图片描述

窗口尺寸

它准确地告诉您用户当前有多少空间可用于CSS布局
使用window.innerWidth/innerHeight获取

窗口大小示例
在这里插入图片描述

如果用户放大,窗口中的可用空间就会减少。innerWidth/Height通过减小来反映这一点。

注意,测量的宽度和高度包括滚动条

这里的例外是Opera,它的窗当用户放大时,innerWidth/Height不会减小:它们是以设备像素为单位测量的。这在台式机上很烦人,但在移动设备上却是致命的,我们稍后会看到。

滚动偏移

window.pageXOffsetwindow.pageYOffset,包含文档的水平和垂直滚动偏移
因此,可以得到滚动条偏移了多少,不管在什么缩放状态,测量的也是CSS像素。

滚动偏移示例
在这里插入图片描述

概念:视口(viewport)

viewport的功能是约束元素,它是站点最上面的包含块

视口不是HTML结构,所以你不能通过CSS来影响它。它只是有浏览器窗口的宽度和高度-在桌面上。在手机上,情况就复杂多了。

视口宽度示例
在这里插入图片描述

测量视口

使用document.documentElement.clientWidth/clientHeight,测量视口,不包含滚动条
document.documentElement其实代表<html>dom元素

虽然是html元素,但是这个属性是一个特例,就是指定html的尺寸,它也是视口尺寸
在这里插入图片描述

测量html元素

document.documentElement.offsetWidth/offsetHeight,测量真正的html尺寸

html元素的真正尺寸演示
在这里插入图片描述

事件坐标

pageX/Y,以CSS像素表示相对于<html>元素的坐标
clientX/Y,以CSS像素为单位给出相对于视口的坐标
screenX/Y,以设备像素为单位给出相对于屏幕的坐标。
您将在90%的时间使用pageX/Y;通常您想知道事件相对于文档的位置。另外10%的时间您将使用clientX/Y。你永远不需要知道事件相对于屏幕的坐标

媒体查询

您可以定义特殊的CSS规则,这些规则只在页面宽度大于、等于或小于某个大小时执行
width/height,类似于clientWidth/Height,及视口尺寸,是CSS像素
device-width/device-height,类似于screen.width/height,是设置像素

演示
在这里插入图片描述


http://www.ppmy.cn/news/1555514.html

相关文章

Unreal Engine 5 (UE5) 中“变换“(Transform)类型变量

在 Unreal Engine 5 (UE5) 中&#xff0c;"变换"&#xff08;Transform&#xff09;类型变量是一个非常常见和重要的数据类型&#xff0c;它用于表示 对象的位置&#xff08;Location&#xff09;、旋转&#xff08;Rotation&#xff09; 和 缩放&#xff08;Scale&a…

Qt网络通信、线程之间通信详解

一、 网络通信协议主要包括TCP和UDP&#xff0c;但更常用和可靠的是TCP协议。TCP是一种面向连接的、可靠的、面向流的传输协议&#xff0c;特别适合用于连续数据传输。在Qt中&#xff0c;网络通信主要通过QTcpSocket类和QTcpServer类来实现。 QTcpSocket类用于建立TCP客户端和…

【ChatGPT】解锁AI思维链:如何让机器像人类一样思考?

在人工智能领域&#xff0c;我们一直在追求让机器像人类一样思考。然而&#xff0c;即使是最先进的AI&#xff0c;也常常被诟病缺乏“常识”&#xff0c;难以理解复杂问题&#xff0c;更不用说像人类一样进行逻辑推理和解决问题了。最经常的表现就是遇到不会的地方&#xff0c;…

【AI落地应用实战】智能文档处理本地部署——可视化文档解析前端TextIn ParseX实践

湘江之畔&#xff0c;秋风送爽。前不久&#xff0c;2024长沙中国1024程序员节在长沙盛大举行。今年的程序员节主题为“智能应用新生态”&#xff0c;以科技为纽带&#xff0c;搭建起了一个共筑智能应用新生态的交流平台&#xff0c;众多技术大咖齐聚一堂&#xff0c;探讨智能应…

HDR视频技术之七:逆色调映射

HDR 技术近年来发展迅猛&#xff0c;在未来将会成为图像与视频领域的主流。当前 HDR 内容非常短缺&#xff0c;限制了 HDR 视听节目的广泛应用。逆色调映射(Inverse Tone Mapping)应运而生&#xff0c;它是一种用来将 SDR 源信号转换为 HDR 源信号的技术&#xff0c;可以应用于…

Java——网络编程(上)

1 计算机网络 (作用资源共享和信息传递) (计算机网络组成——> 硬件——>计算机设备&#xff0c;外部设备&#xff0c;通信线路 软件——>网络操作系统&#xff0c;网络管理软件&#xff0c;网络通信协议) 计算机网络是指将地理位置不同的具有独立功能的多台计算机…

JAVA题目笔记(二十四)多线程 (run方法原理)

一、卖电影票 public class Main {public static void main(String[] args) {//创建线程对象 Ticket t1new Ticket("电影院一&#xff1a;");Ticket t2new Ticket("电影院二&#xff1a;");t1.start();t2.start();} }import java.util.concurrent.locks.L…

设计模式详解(十):策略模式——Strategy

什么是Strategy设计模式&#xff1f; Strategy模式是一种行为型设计模式&#xff0c;它定义了一系列算法&#xff0c;将每种算法封装到独立的类中&#xff0c;使它们可以互换。使用该模式&#xff0c;可以在不修改客户端代码的情况下动态地改变算法的行为。 为什么需要Strate…