zoukankan      html  css  js  c++  java
  • 响应式 Web 设计

    响应式 Web 设计 - 媒体查询

    使用 @media 查询,你可以针对不同的媒体类型定义不同的样式。

    实例

    如果浏览器窗口小于 500px, 背景将变为浅蓝色:

    @media only screen and (max- 500px) {
        body {
            background-color: lightblue;
        }
    }


    添加断点

    在先前的教程中我们使用行和列来制作网页,它是响应式的,但在小屏幕上并不能友好的展示。

    媒体查询可以帮我们解决这个问题。我们可以在设计稿的中间添加断点,不同的断点有不同的效果。

    桌面设备

    手机设备

    使用媒体查询在 768px 添加断点:

    实例

    当屏幕 (浏览器窗口) 小于 768px, 每一列的宽度是 100%:

    /* For desktop: */
    .col-1 { 8.33%;}
    .col-2 { 16.66%;}
    .col-3 { 25%;}
    .col-4 { 33.33%;}
    .col-5 { 41.66%;}
    .col-6 { 50%;}
    .col-7 { 58.33%;}
    .col-8 { 66.66%;}
    .col-9 { 75%;}
    .col-10 { 83.33%;}
    .col-11 { 91.66%;}
    .col-12 { 100%;}

    @media only screen and (max- 768px) {
        /* For mobile phones: */
        [class*="col-"] {
            100%;
        }
    }


    为移动端优先设计

    移动端优先意味着在设计桌面和其他设备时优先考虑移动端的设计。

    这就意味着我们必须对 CSS 做一些改变。

    我们在屏幕小于 768px 进行样式修改,同样在屏幕宽度大于 768px 时也需要修改样式。以下是移动端优先实例:

    /* 为移动端设计: */
    [class*="col-"] {
        100%;
    }
    @media only screen and (min- 768px) {
        /* For desktop: */
        .col-1 { 8.33%;}
        .col-2 { 16.66%;}
        .col-3 { 25%;}
        .col-4 { 33.33%;}
        .col-5 { 41.66%;}
        .col-6 { 50%;}
        .col-7 { 58.33%;}
        .col-8 { 66.66%;}
        .col-9 { 75%;}
        .col-10 { 83.33%;}
        .col-11 { 91.66%;}
        .col-12 { 100%;}
    }

    其他断点

    你可以根据自己的需要添加断点。

    我们同样可以为平板设备和移动手机设备设置断点。

    桌面设备

    平板设备

    手机设备

    在屏幕为 600px 时添加媒体查询,并设置新的样式(屏幕大于600px但小于768px):

    实例

    注意两组类样式是相同的,但名称不同 (col- 和 col-m-):

    /* For mobile phones: */
    [class*="col-"] {
        100%;
    }
    @media only screen and (min- 600px) {
        /* For tablets: */
        .col-m-1 { 8.33%;}
        .col-m-2 { 16.66%;}
        .col-m-3 { 25%;}
        .col-m-4 { 33.33%;}
        .col-m-5 { 41.66%;}
        .col-m-6 { 50%;}
        .col-m-7 { 58.33%;}
        .col-m-8 { 66.66%;}
        .col-m-9 { 75%;}
        .col-m-10 { 83.33%;}
        .col-m-11 { 91.66%;}
        .col-m-12 { 100%;}
    }
    @media only screen and (min- 768px) {
        /* For desktop: */
        .col-1 { 8.33%;}
        .col-2 { 16.66%;}
        .col-3 { 25%;}
        .col-4 { 33.33%;}
        .col-5 { 41.66%;}
        .col-6 { 50%;}
        .col-7 { 58.33%;}
        .col-8 { 66.66%;}
        .col-9 { 75%;}
        .col-10 { 83.33%;}
        .col-11 { 91.66%;}
        .col-12 { 100%;}
    }

    以上代码看起来很多余,但是他可以根据屏幕大小自动设置不同的样式,所以还是非常必要的。

    HTML 实例

    针对桌面设备:

    第一和第三部分跨越 3 列。中间部分跨域 6 列。

    针对平板设备:

    第一跨域 3列,第二部分跨越 9 列,第三部分跨域 12 列:

    <div class="row">
    <div class="col-3 col-m-3">...</div>
    <div class="col-6 col-m-9">...</div>
    <div class="col-3 col-m-12">...</div>
    </div>

    方向:横屏/竖屏

    结合CSS媒体查询,可以创建适应不同设备的方向(横屏landscape、竖屏portrait等)的布局。

    语法:

    orientation:portrait | landscape
    
    • portrait:指定输出设备中的页面可见区域高度大于或等于宽度
    • landscape: 除portrait值情况外,都是landscape

    实例

    如果是横屏背景将是浅蓝色:

    @media only screen and (orientation: landscape) {
        body {
            background-color: lightblue;
        }
    }
  • 相关阅读:
    Java学习笔记-Lambda表达式
    Java学习笔记-枚举类
    Java学习笔记-枚举类
    Java学习笔记-包装类
    js 递归 汉诺塔的例子
    js 用 hasOwnProperty() 判定属性是来自该对象成员,还是原型链
    正则,js函数math()提取混乱字符串中多个字符串内容
    封装好的cookie的三个常用函数 cookie的添加、删除、提取操作函数
    解决ie6下png背景不能透明bug
    ie6下标签定义的高失效,显示的高不受设定的height值影响
  • 原文地址:https://www.cnblogs.com/peijz/p/12710383.html
Copyright © 2011-2022 走看看