viewport mata

2023-11-08 11:59
文章标签 viewport mata

本文主要是介绍viewport mata,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

转载自:什么是viewport,为什么需要viewport

什么是viewport,为什么需要viewport

viewport:视口,视觉窗口,显示区域。
在显示面积上手机屏幕相对桌面显示器要小很多,在几年前(现在也如此)大部分网站都是为桌面显示器浏览而设计,很少考虑到适应手机屏幕,所以如果用手机浏 览大多网站时会出现问题,比如常见固定宽度的网页会出现横向竖向滑动条,当然这不算什么大问题;但如果是浏览流动布局的网页那情况会非常糟糕,设想一个宽 度为30%的侧边栏对于320px手机屏幕而言也就96px,只能容纳8个12px的汉字,可阅读性非常差。

为了让手机也能获得良好的网页浏览体验,Apple找到了一个办法:在移动版(iOS)的Safari中定义了viewport meta标签①,它的作用就是创建一个虚拟的窗口(viewport),而且这个虚拟窗口的分辨率接近于桌面显示器,Apple将其定位为980px②。

以一代iphone下的Safari来说就是:
在iphone的320px物理屏幕上——视觉窗口(visual viewport),创建出了一个980px的虚拟窗口——布局窗口(layout viewport),在视觉窗口(visual viewport)中我们可以拖动横向竖向滑动条或者放大缩小网页,来达到最佳的浏览效果(类似桌面浏览器);而布局窗口(layout viewport)用来配合CSS渲染布局,例如当我们设置一个容器的宽度为100%时,这个容器的实际值为980px而不是320px。如此一来大部分 网页就能以缩放的形式正常的显示在手机屏幕上了。

如何设置viewport
有了layout viewport似乎解决手机浏览网页的难题,但如果遇到专门为手机优化的网页就又有新的问题:

是的,因为iphone的layout viewport默认为980px,导致专为其优化的320px宽的页面只能以缩放的方式显示,这时就需要对viewport进行设置:

<head>

<meta name=”viewport” content=”width=device-width, initial-scale=1.0, user-scalable=no”/>

</head>

这个是最常见的一条viewport meta代码,将viewport定义为:宽度为设备宽度,初始缩放比例为1倍,禁止用户缩放。设置好后我们的页面就显示完美了:

viewport全部属性&值如下:

width: viewport宽度
height: viewport高度
initial-scale: 初始缩放比例
maximum-scale: 最大缩放比例
minimum-scale: 最小缩放比例
user-scalable: 是否允许用户缩放

例:

width=960 或 device-width
height=1000 或 device-height
initial-scale=0.5
maximum-scale=2
minimum-scale=1
user-scalable=1 或 0 (yes 或 no)

layout viewport的默认值
在Apple实现viewport后,其他浏览器也加入了对viewport meta的支持,但彼此间还是有些差异,差异最大的是layout viewport的表现:

Safari iPhone: 980px
Opera: 850px
Android WebKit: 800px
IE: 974px

最后关注下width=device-width
其实这个属性&值很有意思,字面意应该是viewport宽度等于设备宽度,但在实际中不同的浏览器都给出了个定值:320px;这个值还是源于 Apple,因为早期iphone的分辨率为320px × 480px,大量为iphone量身定制的网站都设置了viewport:width=device-width,并且按照宽度320px来设计制作,所 以其他浏览器加入viewport支持时为了兼容性也将device-width定义为了320px。

注解
① 除此之外不同移动浏览器厂商也有不同的解决方案,例如UCweb就是使用中间件技术。
②不同的浏览器厂商对于layout viewport的大小定义不同,详见”layout viewport的默认值”。

这篇关于viewport mata的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/369712

相关文章

vue3 VueUse useElementVisibility 来监听某一个元素或者div是否在当前视口viewport中可见。

1、先上一个图: 2、安装@vueuse/core pnpm add @vueuse/core 3、新建一个组件: <script setup lang="ts">import { ref, watch } from "vue";import { useElementVisibility } from "@vueuse/core";const target = ref(nu

关于响应式开发中的 viewport概念、像素比、缩放比 简述

1. viewport影响着我们页面的什么? viewport是虚拟显示视口,它是时刻存在的【这一点有异议,有的人说必须要设置meta标签才会存在viewport,然而在chrome浏览器的调试工具中,添加和不添加meta标签都会触发viewport的行为】,我们设置meta标签只是去改变viewport的相关属性,并非是去设置一个viewport。只是在响应式页面开发过程中,默认的viewpo

html5开发之viewport使用-屏幕适配

随着高端手机(Andriod,Iphone,Ipod,WinPhone等)的盛行,移动互联应用开发也越来越受到人们的重视,用html5开发移动应用是最好的选择。然而,每一款手机有不同的分辨率,不同屏幕大小,如何使我们开发出来的应用或页面大小能适合各种高端手机使用呢?学习html5 viewport的使用能帮你做到这一点…… viewport 语法介绍: [html] view plain c

使用 JavaScript 操作 Visual Viewport 的方法

在现代前端开发中,视口(viewport)是一个非常重要的概念。它决定了用户在浏览网页时所看到的内容。在移动设备和各种不同屏幕尺寸的普及下,如何高效地管理视口显得尤为重要。JavaScript 提供了一个强大的接口 —— Visual Viewport API,让开发者可以更灵活地控制和获取视口的信息。本文将详细介绍如何使用 Visual Viewport API,并通过一些示例代码来展示其应用。

meta标签viewport的深入理解(转)

亲测可用,若有疑问请私信 在移动设备上进行网页的重构或开发,首先得搞明白的就是移动设备上的viewport了,只有明白了viewport的概念以及弄清楚了跟viewport有关的meta标签的使用,才能更好地让我们的网页适配或响应各种不同分辨率的移动设备。 一、viewport的概念 通俗的讲,移动设备上的viewport就是设备的屏幕上能用来显示我们的网页的那一块区域,在具体一点,

Extjs中ViewPort动态更换Panel

我们在使用extjs进行开发单页面应用时,我们构建了一个viewport有时候可能希望对viewport中的items进行动态替换,网上也有很多的资料但是都只说了个大概并没有详细说明,这里我将对遇到这种需求时如何处理进行详细介绍。 环境 extjs 4.2 首先我们来看viewport /*** 菜单model*/Ext.define('Menu', {extend: 'Ext.d

移动端适配之viewport

目录  盒模型:width=content(+padding + border) class="content-box"内容盒模型(W3C盒) class="border-box"边框盒模型(IE 盒) scroll滚动 window浏览器视窗:包括滚动条 此Hook利用了visualViewport的resize事件, 处理移动设备上因地址栏显隐、屏幕旋转、虚拟键盘弹出等导

osg::Viewport解析

osg::Viewport视口类继承自osg::StateAttribute状态属性类 首先,条件编译value_type为int活double 四个保护型属性_x,_y,_width,, _height分别表示视口的左上点x,y坐标,视口的宽高 方法: //设置视口(inline内联(像宏一样展开),没有了调用的开销,效率更高) inline void setViewport(valu

一步一步使用Ext JS MVC与Asp.Net MVC 3开发简单的CMS后台管理系统之创建Viewport(1)

忙活了那么久,终于进入正题,Ext JS MVC开发。 开始前,先说说4.1.1的一点点变化。在4.1的时候,要先创建一个扩展于Ext.app.Application的类,然后用create创建它的实例来开始应用程序的。而在4.1.1,则可直接调用application方法开始执行应用程序,简化了。 调用application方法,其参数是一个配置对象,主要配置项有以下两个: l name:

import postcssPxToViewport8Plugin from ‘postcss-px-to-viewport-8-plugin‘;

npm 命令行: npm i postcssPxToViewport8Plugin package.json插件的版本: 重点:引入插件的两种方式  postcss-px2rem-exclude配置 postcss.config.js无效 为什么引入插件不生效? 发现没有效果,然后然后百度网上资料发现发现。。。 需要注意的是:上述配置是脚手架自动生成的文件(并不是自己创建的