zoukankan      html  css  js  c++  java
  • 视口及媒体查询

    一、像素及视口

    1.1 像素

    像素
      - 屏幕是由一个个发光的小点构成,即像素构成
      - 分辨率:1920 x 1080 指的是屏幕中小点的数量
      - 前端中像素有:css像素物理像素
        - 物理像素:上述所说的小点点就属于物理像素
        - css像素:编写网页时,用的是css像素
          - 浏览器在显示网页时,需要将css像素转换为物理像素然后再呈现
          - 一个css像素最终由几点物理像素显示,由浏览器决定:
            默认情况下在pc端,一个css像素 = 一个物理像素

    1.2 视口(viewport)

    - 视口:屏幕中用来显示网页的区域
    - 通过查看视口的大小,可以观察css像素和物理像素的比例 - 默认情况下: 视口宽度:1920px(css像素) 1920px(物理像素) - 此时,css像素和物理像素比值为 1:1

       - 放大两倍:
         视口宽度:960px(css像素)
              1920px(物理像素)
                -
    此时,css像素和物理像素比值为 1:2

    二、移动端

    不同屏幕下,单位像素的大小是不同的;像素越小,屏幕会越清晰
      24寸 1920 x 1080
      i6 4.7寸 750 x 1334

      智能手机的像素点 远远小于 计算机的像素点

      问题:一个宽度为900px的网页在iPhone6中要如何显示?
      
      默认情况下,移动端的网页都会将视口设置为980px(css像素),以确保pc端页面可以在移动端正常访问;
      若超出了980px,移动端的浏览器会自动对网页缩放以完整显示网页。
      
      基本大部分的pc端网站都可以在移动端中正常浏览,但是往往不会有一个好的体验
      因此,大部分网站都会专门为移动端设计网页

    三、完美视口

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>完美视口</title>
        <style>
            *{
                margin: 0;
                padding: 0;
            }
    
            .box1{
                width: 100px;
                height: 100px;
                background-color: red;
            }
        </style>
    </head>
    <body>
        <!--  
            移动端默认的视口大小是980px(css像素)
                - 默认情况下,移动端的像素比是 980/移动端宽度
                - 直接在网页中编写移动端代码,在980px的视口下,像素比非常不好,导致网页内容 非常小 
    
                - 编写移动端页面时,必须要确保有一个比较合理的像素比:
                    1css像素 = 2/3个物理像素
    
                - 可以通过meta标签来设置视口大小
                <meta name="viewport" content="width=device-width, initial-scale=1.0">
        -->
        <div class="box1"></div>
    </body>
    </html>

    四、vw(视口宽度:viewport width)

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>vw</title>
        <style>
            *{
                margin: 0;
                padding: 0;
            }
    
            .box1{
                width: 100vw;
                height: 100px;
                background-color: #bfa;
            }
        </style>
    </head>
    <body>
        <!-- 
            由于不同设备视口和像素比不同,所以在移动端开发时,就不能使用px
    
            vw:视口宽度viewport width
                - 100vw = 一个视口的宽度
                - 1vw = 1%视口宽度
    
                vw这个单位永远相当于视口宽度进行计算
    
                设计图的宽度
                    750px 或 1125px
    
                创建一个 48px x 35px 大小的元素
                    - 100vw = 750px(设计图的像素) 0.1333333333333vw(100/750)= 1px
                    - 6.4vw = 48px(设计图像素)
                    - 4.667vw = 35px
         -->
        <div class="box1"></div>
    </body>
    </html>

    五、vw适配

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>vw适配</title>
        <style>
            *{
                margin: 0;
                padding: 0;
            }
    
            html{
                /* 
                    网页中字体大小最小为12px,不能设置一个比12px小
    
                    0.1333333vm = 1px
                    5.3333vw = 40px 
                */
                font-size: 5.3333vw;
            }
    
            .box1{
                /*  
                    rem
                        - 1 rem = 1 html的字体大小
                        - 1 rem = 40px(设计图)
                */
                width: 4.8rem;
                height: 3.5rem;
                background-color: #bfa;
            }
        </style>
    </head>
    <body>
        <div class="box1"></div>
    </body>
    </html>

     六、媒体查询(响应式布局)

    <style>
        @media only screen and (min- 500px) and (max- 700px){
            body{
                background-color: #bfa;
            }
        }
    </style>

    6.1 媒体类型

    ① all:用于所有设备

    ② print:用于打印机和打印预览

    ③ screen:用于电脑屏幕,平板电脑,智能手机等

    ④ speech:应用于屏幕阅读器等发声设备

    6.2 @media语法

    ① and:并集

    ② only:仅仅(解决浏览器兼容性)

    ③ not:除了

    ④ ",":交集

    @media mediatype and|not|only (media feature) {
        CSS-Code;
    }
  • 相关阅读:
    模拟光照中的凹凸纹理原理和应用
    Visual Studio 2010 SP1正式开放下载
    同桌的你网工版
    [转载]同桌的你程序员版
    学习计划:SSIS
    基于Java的HTML解析器
    初次使用NHibernate遇到的问题
    .NET下开源CMS系统汇总
    MyEclipse、Tomcat启动项目报错
    VBA 分文件夹 分excel
  • 原文地址:https://www.cnblogs.com/nadou/p/13954103.html
Copyright © 2011-2022 走看看