首页 web前端 html教程 分享viewport属性解决移动端竖屏切横屏字体被重置的问题实例

分享viewport属性解决移动端竖屏切横屏字体被重置的问题实例

May 17, 2017 pm 01:18 PM

本文分享的是viewport属性解决移动端竖屏切横屏字体被重置的问题。在最初做的时候因为一直没有在手机上实测页面,导致后来写了好些页面后实测发现页面特别小,几乎都看不见。

原因是每个移动设备都是自己默认的视口宽度。

视口:在移动端浏览器当中有两种视口:可见视口(设备屏幕大小)和浏览器视口(网页宽度)。

拿iphone4s来说,它的屏幕是320*480的,但是它却能展示980像素宽度的内容(iphone默认都是980),所以你把网页放到移动端展示就相当于缩小了980/320。手机这样做的目的是可以显示更多的东西,但是结果就是在PC端做好的页面到了移动端就像蚂蚁一样小!

移动端有一个meta标签:viewport,你可以用这个标签设定浏览器视口宽度和可见视口宽度一样。

<meta name="viewport" content="width=device-width">
登录后复制

对于一些不支持viewport的古老的移动设备浏览器(嗯,也许还有,比如黑莓),可以使用如下代码

<meta name="HandheldFriendly" content="true">
登录后复制

不过我觉得现在应该没多少人用这个,一般就写第一行就行了。

说到viewport,他其实还有一些其他属性

initial-scale:初始缩放比例

maximum-scale:允许缩放的最大比例

minimum-scale:允许缩放的最小比例

user-scalable:是否允许手动缩放

这些属性有什么用呢?

移动设备在竖屏切换到横屏的时候字体会被重置,会变得很大,如何解决呢?

只需要这样设置

<meta name="viewport" content="width=device-width, initial-scale=1,minimum-scale=1, maximum-scale=1>
登录后复制

这样设置页面默认缩放大小比例是1,允许缩放也是1-1,相当于禁止缩放,浏览器只会按照样式定义的字体大小渲染。

你也许会看到这种写法。

<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" >
登录后复制

但其实当你使用user-scalable=no 这个属性的时候minimum-scale=1,maximum-scale=1已经被忽略掉了,因为你已经禁止缩放了。

在其他地方找到了一些更具体的说法:

1)、user-scalable=no就一定可以保证页面不可以缩放吗?NO,有些浏览器不吃这一套,还有一招就是minimum-scale=1.0, maximum-scale=1.0 最大与最小缩放比例都设为1.0就可以了。

2)、initial-scale=1.0   初始缩放比例受user-scalable控制吗?不一定,有些浏览器会将user-scalable理解为用户手动缩放,如果user-scalable=no,initial-scale将无法生效。

3)、手机页面可以触摸移动,但是如果有需要禁止此操作,就是页面宽度等于屏幕宽度是页面正好适应屏幕才可以保证页面不能移动。

4)、如果页面是经过缩小适应屏幕宽度的,会出现一个问题,当文本框被激活(获取焦点)时,页面会放大至原来尺寸。

 所以为了保险起见,建议使用第二种写法。

当然,这样做的坏处就是禁止用户进行缩放,在《web开发实战》中有一个折中的办法,有兴趣的可以去看下,这里就不在叙述。

一点点题外话:

在CSS3中有一个属性:-webkit-text-size-adjust。

这个属性也是禁止字体缩放,这个属性的好处在于可以自定义范围,可以根据项目需求设定。

 需要注意的是这个属性的作用是禁用Webkit内核浏览器的文字大小调整功能而不是对页面缩放控制。中文版chrome浏览器字体最小限制是12px。

不过由于该属性被滥用,在几年前桌面浏览器已经不支持了,所以我也没有真正去用过,都是在其他资料上看到的。

【相关推荐】

1. 特别推荐“php程序员工具箱”V0.1版本下载

2. 关于viewport兼容性问题的实例代码

3. viewport专题:深入理解css中响应式 Web 设计-viewport

4. HTML5中Viewport的参数介绍以及使用方法

以上是分享viewport属性解决移动端竖屏切横屏字体被重置的问题实例的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1662
14
CakePHP 教程
1418
52
Laravel 教程
1311
25
PHP教程
1261
29
C# 教程
1234
24
如何在Vue项目中使用移动端的手势操作 如何在Vue项目中使用移动端的手势操作 Oct 08, 2023 pm 07:33 PM

如何在Vue项目中使用移动端的手势操作随着移动设备的普及,越来越多的应用程序需要在移动端上提供更加友好的交互体验。而手势操作是移动设备上常见的交互方式之一,它能够让用户通过触摸屏幕来完成各种操作,如滑动、缩放等。在Vue项目中,我们可以通过第三方库来实现移动手势操作,下面将介绍如何在Vue项目中使用手势操作,并提供具体的代码示例。首先,我们需要引入一个专门用

解决Vue移动端多触点问题 解决Vue移动端多触点问题 Jun 30, 2023 pm 01:06 PM

在移动端开发中,我们经常会遇到多手指触控的问题。当用户在移动设备上使用多个手指滑动或缩放屏幕时,如何准确地识别和响应这些手势是一个重要的开发难题。在Vue开发中,我们可以采取一些措施来解决移动端多手指触控问题。一、使用vue-touch插件vue-touch是一个用于Vue的手势插件,它可以方便地处理移动端的多手指触控事件。我们可以通过npm安装vue-to

CSS Viewport: 如何使用 vh、vw、vmin 和 vmax 单位来实现响应式设计 CSS Viewport: 如何使用 vh、vw、vmin 和 vmax 单位来实现响应式设计 Sep 13, 2023 pm 12:15 PM

CSSViewport:如何使用vh、vw、vmin和vmax单位来实现响应式设计,需要具体代码示例在现代响应式网页设计中,我们通常希望网页能够适应不同屏幕尺寸和设备,以提供良好的用户体验。而CSSViewport单位(视口单位)就是帮助我们实现这一目标的重要工具之一。在本文中,我们将介绍如何使用vh、vw、vmin和vmax单位来实现响应式设

学习Golang指针转换的最佳实践示例 学习Golang指针转换的最佳实践示例 Feb 24, 2024 pm 03:51 PM

Golang是一门功能强大且高效的编程语言,可以用于开发各种应用程序和服务。在Golang中,指针是一种非常重要的概念,它可以帮助我们更灵活和高效地操作数据。指针转换是指在不同类型之间进行指针操作的过程,本文将通过具体的实例来学习Golang中指针转换的最佳实践。1.基本概念在Golang中,每个变量都有一个地址,地址就是变量在内存中的位置。

Vue开发中如何解决移动端双击放大问题 Vue开发中如何解决移动端双击放大问题 Jun 29, 2023 am 11:06 AM

随着移动端设备的普及,使用Vue进行移动端开发已经成为了常见的选择。然而,我们在移动端开发过程中经常会面临一个问题,就是双击放大。本文将针对这一问题,探讨在Vue开发中如何解决移动端双击放大的具体方法。移动端双击放大问题的出现,主要是因为移动设备在触摸屏上进行双击操作时,会自动放大网页的缩放比例。对于一般的网页开发来说,这种双击放大通常是有好处的,因为它可以

使用 CSS Viewport 单位 vh 和 vmin 创建媒体查询的技巧 使用 CSS Viewport 单位 vh 和 vmin 创建媒体查询的技巧 Sep 13, 2023 am 11:18 AM

使用CSSViewport单位vh和vmin创建媒体查询的技巧随着移动设备的普及,响应式设计已成为现代网页设计的必备技术。为了适应不同大小的屏幕,开发人员需要通过媒体查询来调整布局和样式。而在媒体查询中,最常用的单位是像素(px)。然而,CSS3引入了一种新的视窗单位,即vh和vmin,它们能够更好地适应不同设备尺寸。本文将介绍如何使用vh和v

如何使用 CSS Viewport 单位 vh 来创建适配手机屏幕的网页布局 如何使用 CSS Viewport 单位 vh 来创建适配手机屏幕的网页布局 Sep 13, 2023 am 11:15 AM

如何使用CSSViewport单位vh来创建适配手机屏幕的网页布局手机设备的普及和使用越来越广泛,越来越多的网页需要进行手机屏幕的适配。为了解决这个问题,CSS3引入了一个新的单位——Viewport单位,其中包括vh(viewportheight)。在这篇文章中,我们将探讨如何使用vh单位来创建适配手机屏幕的网页布局,并提供具体的代码示例。一

Oracle实例数量与数据库性能关系 Oracle实例数量与数据库性能关系 Mar 08, 2024 am 09:27 AM

Oracle实例数量与数据库性能关系Oracle数据库是业界知名的关系型数据库管理系统之一,广泛应用于企业级的数据存储和管理中。在Oracle数据库中,实例是一个非常重要的概念。实例是指Oracle数据库在内存中的运行环境,每个实例都有独立的内存结构和后台进程,用于处理用户的请求和管理数据库的操作。实例数量对于Oracle数据库的性能和稳定性有着重要的影响。

See all articles