【前端基础】什么是视口?

视口

了解视口相关概念及理想视口的设置 是移动Web开发非常重要环节。

  • 什么是视口?

视口简单来说就是浏览器显示页面内容的区域。

在PC端,正常的视口宽度就是整个浏览器的窗口可视区的宽度,会随着浏览器窗口大小的重置而缩放;

大多数为PC端设计的网站宽度至少为800px,为了不破坏没有针对移动设备优化的PC网页,移动端引入了视觉视口、布局视口、理想视口三个概念

  • 视觉视口

视觉视口是指用户当前看到区域即设备宽度

  • 布局视口

移动设备的浏览器都默认设置 了一个viewport元标签,定义了一个虚拟的布局视口,,CSS 布局将会根据它来进行计算,并被它约束。

一般来讲,移动设备上的viewport都是要大于浏览器可视区域的,这是因为考虑到移动设备的分辨率相对于桌面电脑来说都比较小,所以为了能在移动设备上正常显示那些传统的为桌面浏览器设计的网站,移动设备上的浏览器都会把自己默认的viewport设为980px或1024px

所以PC上的网页基本能在手机上呈现,只不过看上去很小,一般默认允许用户通过手动缩放、平移来查看网页。

  • 理想视口

布局视口对用户不友好,【基于理想视口设计的网站,不需要用户手动缩放,也不需要出现横向滚动条,网站的所有内容都可以正常的呈现给用户】移动端【适配】方案

由于手机屏幕尺寸、分辨率不同,还要要考虑横竖屏问题,为了使得web页面在不同移动设备上【实现尽可能统一或合理的展示效果】,需要在开发过程中使用合理的适配方案。rem适配

rem单位介绍

Rem( font size of the root element) 是一个相对单位,相对于根元素的字号大小进行计算

大多数浏览器的默认字号是16px,因此默认1rem=16px。

rem布局原理

在布局过程中只要使用 rem 设置元素的尺寸,在改变 rem 的基准值 html 的字体大小的时候,页面上的元素将等比例缩放实现适配。

rem适配实现

1)设置页面的viewport

2)以设计稿为基准值,1rem=100px,使用rem单位取代px常规布局。

3)换算不同设备尺寸下1rem的值,即改变不同尺寸下html 的font-size

使用rem+vw单位实现适配

沿用rem布局方案,所有的布局元素及属性都用rem做单位,用vw单位设置html的font-size,这样就不再需要JS来动态计算根元素字体大小

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/756127.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CTF 题型 SSRF攻击例题总结

CTF 题型 SSRF攻击&例题总结 文章目录 CTF 题型 SSRF攻击&例题总结Server-side Request Forgery 服务端请求伪造SSRF的利用面1 任意文件读取 前提是知道要读取的文件名2 探测内网资源3 使用gopher协议扩展攻击面Gopher协议 (注意是70端口)python…

前端项目,个人笔记(五)【图片懒加载 + 路由配置 + 面包屑 + 路由行为修改】

目录 1、图片懒加载 步骤一:自定义全局指令 步骤二:代码中使用 ​编辑步骤三:效果查看 步骤四:代码优化 2、封装组件案例-传对象 3、路由配置——tab标签 4、根据tab标签添加面包屑 4.1、实现 4.2、bug:需要…

智能合约 之 部署ERC-20

Remix介绍 Remix是一个由以太坊社区开发的在线集成开发环境(IDE),旨在帮助开发者编写、测试和部署以太坊智能合约。它提供了一个简单易用的界面,使得开发者可以在浏览器中直接进行智能合约的开发,而无需安装任何额外的…

进销存管理完整方案:那些让人头疼的进销存难题及解决方法!

什么是进销存管理?为何进销存管理在企业管理中如此重要?进销存管理的核心模块包括哪些?为何企业在进销存管理中常常遭遇前后方协作不畅、数据不同步等痛点?又该如何针对进销存管理痛点进行优化?本文将从进销存管理的基…

代码随想录训练营第50天 | LeetCode 123.买卖股票的最佳时机III、LeetCode 188.买卖股票的最佳时机IV

LeetCode 123.买卖股票的最佳时机III 文章讲解:代码随想录(programmercarl.com) 视频讲解:动态规划,股票至多买卖两次,怎么求? | LeetCode:123.买卖股票最佳时机III_哔哩哔哩_bilibili 思路 代码如下&am…

java实现kml文件下载接口

根据业务需求,需提供一个下载kml格式航线文件的HTTP GET接口 示例代码 package com.kyrielx.kmzdemo.controller;import org.apache.commons.io.FileUtils; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatus; import org…

git是什么git能做什么

git是什么 git 是一个免费、开源、分布式的版本控制系统,跟踪个人和团队在项目上协作时的变更历史。随着开发者对项目进行更改,可以随时恢复项目的任何早期版本。 git能做什么 开发者可以通过git查看项目历史,了解: - 做了哪些…

5.首页搜索与瀑布流

搜索栏 官网 https://vkuviewdoc.fsq.pub/components/search.html 是否开启右边控件 该控件为类似按钮形式,可以设置为"搜索"或者"取消"等内容,如果开启动画效果,用户确认搜索后,该控件会自动消失 show-ac…

各种窗函数对脉压结果的影响

雷达导论专栏总目录链接: 雷达导论专栏总目录-CSDN博客 1. 各类窗函数 有几个窗函数的系数可配,配置如下: tukeywin(N,0.75)kaiser(N,2.5)gausswin(N,1.5)taylorwin(N,3,-24)2. 时域加窗 时域加窗时,直接加在匹配滤波函数上:Htw=exp(1j*pi*K*tp.^2).*win;。那么矩形窗就相…

使用jQuery的autocomplete实现数据查询一次,联想自动补全

书接上回,上次说到在jsp页面中,通过监听输入框的数值变化,实时查询数据库,得到返回值使用autocomplete属性自动补全,实现一个联想补全辅助操作,链接:使用jquery的autocomplete属性实现联想补全操…

73_Pandas获取分位数/百分位数

73_Pandas获取分位数/百分位数 使用 quantile() 方法获取 pandas 中 DataFrame 或 Series 的分位数/百分位数。 目录 Quantile() 的基本用法指定要获取的分位数/百分位数:参数 q指定interpolation方法:参数interpolation 数据类型 dtype 的差异 指定行…

二、Kubernetes(k8s)中部署项目wordpress(php博客项目,数据库mysql)

前期准备 1、关机顺序 2、开机顺序 (1)、k8s-ha1、k8s-ha2 (2)、master01、master02、master03 (3)、node01、node02 一、集群服务对外提供访问,需要通过Ingress代理发布域名 mast01上传 ingress-nginx.yaml node01、node02 上传 ingress-nginx.tar 、kube-webh…

鸿蒙开发实战:【网络管理-Socket连接】

介绍 本示例主要演示了Socket在网络通信方面的应用,展示了Socket在两端设备的连接验证、聊天通信方面的应用。 效果预览 使用说明 1.打开应用,点击用户文本框选择要登录的用户,并输入另一个设备的IP地址,点击确定按钮进入已登录…

【C++】用红黑树模拟实现set、map

目录 前言及准备:一、红黑树接口1.1 begin1.2 end1.3 查找1.4 插入1.5 左单旋和右单旋 二、树形迭代器(正向)2.1 前置 三、模拟实现set四、模拟实现map 前言及准备: set、map的底层结构是红黑树,它们的函数通过调用红…

鸿蒙Harmony应用开发—ArkTS声明式开发(基础手势:Toggle)

组件提供勾选框样式、状态按钮样式及开关样式。 说明: 该组件从API Version 8开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 子组件 仅当ToggleType为Button时可包含子组件。 接口 Toggle(options: { type: ToggleType, is…

一台电脑安装多个版本node,如何切换使用

直接上答案,请安装nvm——nodejs的版本管理工具 官网地址在此:nvm文档手册 - nvm是一个nodejs版本管理工具 - nvm中文网 (uihtm.com) 1.由于我电脑本来就有node14,所以需要先卸载 原来的node,建议在软件目录自带的node文件夹中点…

Java学习笔记NO.20

Java流程控制 1. 用户交互 Scanner Java中的Scanner类用于获取用户输入,可以从标准输入(键盘)读取各种类型的数据。 import java.util.Scanner; public class UserInputExample { public static void main(String[] args) { Scanner sc…

weaviate向量库安装

简介 Weaviate 是一个开源的向量数据库和搜索引擎,专门用于存储、搜索和分析向量数据。它提供了一个简单易用的 REST API,使得用户可以轻松地将向量数据存储到数据库中,并且能够以高效的方式进行相似向量的搜索。 以下是一些 Weaviate 向量…

面向切面的编程实战

面向切面的编程(AOP)就是让哥们写代码的时候更加关注核心业务的实现,将核心业务代码前后的日志等不重要的通过注解的方式,交给其他部分完成,使得代码有更高的可维护性。 具体使用 先定义一个注解 Target(ElementTyp…

[Java、Android面试]_08_强软弱虚四种引用及应用场景

本人今年参加了很多面试,也有幸拿到了一些大厂的offer,整理了众多面试资料,后续还会分享众多面试资料。 整理成了面试系列,由于时间有限,每天整理一点,后续会陆续分享出来,感兴趣的朋友可关注收…