一:什么是Viewport?

1. viewport 是用户网页的可视区域。

2. viewport中文翻译为“视区”

手机浏览器是把页面放在一个虚拟的"窗口"(viewport)中,通常这个虚拟的"窗口"(viewport)比屏幕宽,这样就不用把每个网页挤到很小的窗口中(这样会破坏没有针对手机浏览器优化的网页的布局),用户可以通过平移和缩放来看网页的不同部分。

二:Viewport的作用

用于解决PC页面能在手机上正常显示,不会因屏幕变小而挤压布局导致页面排版混乱的问题。

三:设置Viewport

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

这段代码的几个参数解释:

  • width:控制 viewport 的大小,可以指定的一个值,如 600,或者特殊的值,如 device-width 为设备的宽度(单位为缩放为 100% 时的 CSS 的像素)。
  • height:和 width 相对应,指定高度。

  • initial-scale:初始的缩放比例(默认设置为1.0)

  • minimum-scale:允许用户缩放到的最小比例(默认设置为1.0)

  • maximum-scale:允许用户缩放到的最大比例(默认设置为1.0)

  • user-scalable:用户是否可以手动缩放(默认设置为no,因为我们不希望用户放大缩小页面。no时 minimum-scale 与 maximum-scale 可以不用写)

四:什么是@media

@media可以根据不同的媒体类型定义不同的样式。

就是针对不同的屏幕尺寸设置不同的样式,特别是如果你需要设置设计响应式的页面,@media 是非常有用的。

当你重置浏览器大小的过程中,页面也会根据浏览器的宽度和高度重新渲染页面。

五:@media使用

它有两种使用方式:

1. 直接在link中使用,通过media判断尺寸的大小在引入不同css文件

<link rel="stylesheet" media="mediatype and|not|only (media feature)" href="mystylesheet.css">

2. 直接在<style>标签里面设置

@media mediatype and|not|only (media feature) {
    CSS-Code;
}

mediatype媒体类型有:

all  用于所有设备

print  用于打印机和打印预览

screen  用与电脑屏幕,平板电脑,智能手机等(最常用的)

还有许多已废除

and,only和not三个关键字:

not: not是用来排除掉某些特定的设备的,比如 @media not print(非打印设备)

only:only用来定某种特别的媒体类型

and:定义媒体的宽度区间

案例写法:

第一种方式写法

<link rel="stylesheet" type="text/css" media="screen and (max-width:1200px)" href="style.css">

当屏幕的宽度大于1200px时,应用style.css

<link rel="stylesheet" type="text/css" media="screen and (max-width:960px) and (min-width:1200px)" href="style.css">

当屏幕的宽度大于992px,小于1200px时,应用style.css

第二种方式写法

@media screen and ( max-width: 768px ){

    body{

      background: blue;

    }  

}

当屏幕小于768px时,用此css样式

@media screen and ( min-width: 768px ) and (max-width: 992px){

    body{

      background: red;

    }  

}

当屏幕大于768px时,小于992px时,用此css样式

@media screen and ( min-width: 992px ){

    body{

      background: yellow;

    }  

}

当屏幕小于992px时,用此css样式

补充:还有一个等于(其它的特性不在写了)

@media screen and (max-device-width:960px){

    body{

      background: yellow;

    }  

}

当等于960px时,用此css样式

横屏:@media screen and (orientation: portrait) and (max-width: 720px) { 对应样式 }  

竖屏:@media screen and (orientation: landscape) { 对应样式 } 

注意:这些有CSS3和HTML5中特性,存在一定的兼容问题,处理如下

引入兼容JS文件

<!--[if lt IE 9]>

  <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>

  <script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script>

<![endif]-->

设置IE渲染方式默认为最高(这部分可以选择添加也可以不添加)

现在有很多人的IE浏览器都升级到IE9以上了,所以这个时候就有又很多诡异的事情发生了,例如现在是IE9的浏览器,但是浏览器的文档模式却是IE8:

为了防止这种情况,我们需要下面这段代码来让IE的文档模式永远都是最新的:

  1. <meta http-equiv="X-UA-Compatible" content="IE=edge">

(如果想使用固定的IE版本,可写成:<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE9">)

不过我最近又发现了一个更给力的写法:

  1. <meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">

怎么这段代码后面加了一个chrome=1,这个Google Chrome Frame(谷歌内嵌浏览器框架GCF),如果有的用户电脑里面装了这个chrome的插件,就可以让电脑里面的IE不管是哪个版本的都可以使用Webkit引擎及V8引擎进行排版及运算,无比给力,不过如果用户没装这个插件,那这段代码就会让IE以最高的文档模式展现效果。这段代码我还是建议你们用上,不过不用也是可以的。

参考与引用:http://blog.csdn.net/inuyasha1121/article/details/50777116

转载于:https://www.cnblogs.com/renshijie/p/7965494.html

viewport和@media查询相关推荐

  1. CSS3 @media 查询(制作响应式布局)

    这里简单说明一下@media 查询. 详细说明文档:http://www.runoob.com/cssref/css3-pr-mediaquery.html 使用 @media 查询,你可以针对不同的 ...

  2. CSS @media 查询

    @media 查询,用于针对不同的媒体类型定义不同的样式. @media 的css3版本的浏览器支持: css语法: @media 媒体类型 and|not|only (媒体功能) { css样式代码 ...

  3. js获取屏幕高度宽度分辨率问题,当css3的@media查询写法不能解决问题时请看这个

    当css的@media查询写法如下: @media screen and (max-width: 1920px) {     .feature-table { height: 980px;backgr ...

  4. 媒体查询@media查询

    什么是媒体查询 媒体查询可以让我们根据设备显示器的特性(如视口宽度.屏幕比例.设备方向:横向或纵向)为其设定CSS样式,媒体查询由媒体类型和一个或多个检测媒体特性的条件表达式组成.媒体查询中可用于检测 ...

  5. 低版本浏览器支持css3 Media查询的方法, ie6-ie8 不支持css3 的时候用respond.js,html5shiv.js 【非常实用哦】。。。。。。。。。。。。...

    Respond.js 是一个快速.轻量的 polyfill,用于为 IE6-8 以及其它不支持 CSS3 Media Queries 的浏览器提供媒体查询的 min-width 和 max-width ...

  6. CSS3 媒体查询(media)与 Viewport

    @media 使用 @media 查询,你可以针对不同的媒体类型定义不同的样式. 一.语法 1.样式表中的CSS媒体查询 @media mediatype and|not|only (media fe ...

  7. 移动web现状、viewport视口、二倍图、移动web开发主流方案、布局技术选型(流式布局、flex弹性布局、less+rem+媒体查询布局、混合布局、媒体查询、bootstrap)

    移动端web现状: 移动端常见浏览器:UC浏览器,QQ浏览器,Opera浏览器,百度手机浏览器,360安全浏览器,谷歌浏览器,搜狗手机浏览器,猎豹浏览器及杂牌浏览器.移动端常见的浏览器都是基于webk ...

  8. CSS:媒体查询 CSS3 Media Queries

    定义和使用 使用 @media 查询,你可以针对不同的媒体类型定义不同的样式. @media 可以针对不同的屏幕尺寸设置不同的样式,特别是如果你需要设置设计响应式的页面,@media 是非常有用的. ...

  9. 媒体查询(-@media)的用法详解

    媒体查询(-@media)的用法详解 媒体查询可以用来干什么? @media的作用:媒体查询可以在指定的设备上使用对应的样式替代原有的样式. 可以简单理解为:告诉浏览器,当满足某条件时,调用某样式.当 ...

最新文章

  1. c mysql 分页,MySQL查询之排序分页
  2. Datawhale编程——动态规划DP
  3. FireWork 制作android 应用程序 icon
  4. 能量分析攻击day01
  5. Java EE:异步构造和功能
  6. iOS开发——自定义下拉框
  7. 海康威视相机SDK开发(1个相机)
  8. BlueViewer 地图加载分析(C#)
  9. web的UI自动化实现步骤
  10. 网络安全-渗透测试前置知识
  11. 帆软之使用FineTube将其他来源数据同步至简道云表单(多图预警)
  12. VBScript 教程
  13. 软工网络15团队作业4——Alpha阶段敏捷冲刺之Scrum 冲刺博客(Day4)
  14. 台式计算机睡眠状态功率,电脑选择待机休眠的时候大约耗电功率是多少W?
  15. Linux proc目录详解
  16. PHP的介绍及应用,ajax的介绍及应用,跨域问题及jsonp解决方法
  17. 7-3 求最小码距(完整版) (10 分)
  18. BetaFlight深入传感设计之三:IMU传感模块
  19. activiti学习(二十一)——流程虚拟机源码分析(三)——从进入到离开userTask
  20. windows server2012R将域名和访问的网址绑定

热门文章

  1. MTKAndroidP平台实现应用单独控制Camera某些效果参数
  2. 在Ubuntu16.04 中安装g2o并运行g2o_viewer
  3. 3位领导2把椅子,应对类似情况的标准答案
  4. 麦肯锡七步成诗法学习笔记简记以及案例分析(附参考资料可下载)
  5. 优步北京B组奖励政策
  6. Windows 11 系统下载,正式版尚未发布
  7. “影响力”就是你存在的价值。文/江湖一剑客
  8. 激光雷达 eai g6_如何配置TAMeb 6.0 EAI以实现复杂的身份验证要求
  9. 点云平滑之双边滤波适用性分析
  10. Win10 UEFI安装