>>分享Web前端开发技术,并对孙卫琴的《精通Vue.js:Web前端开发技术详解》提供技术支持 书籍支持  卫琴直播  品书摘要  在线测试  资源下载  联系我们
发表一个新主题 开启一个新投票 回复文章 您是本文章第 20802 个阅读者 刷新本主题
 * 贴子主题:  CSS3的响应式 Web 设计:媒体查询 回复文章 点赞(0)  收藏  
作者:flybird    发表时间:2019-08-19 18:59:47     消息  查看  搜索  好友  邮件  复制  引用

  

响应式 Web 设计 -  媒体查询

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

范例

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

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

添加断点

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

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

桌面设备

点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小

手机设备

点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小            

范例

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

/* For desktop: */
.col-1 { width:  8.33%;}
.col-2 { width:  16.66%;}
.col-3 { width:  25%;}

.col-4 { width:  33.33%;}
.col-5 { width:  41.66%;}
.col-6 { width:  50%;}

.col-7 { width:  58.33%;}
.col-8 { width:  66.66%;}
.col-9 { width:  75%;}

.col-10 { width:  83.33%;}
.col-11 { width:  91.66%;}
.col-12 { width:  100%;}

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

为移动端优先设计

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

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

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

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

其他断点

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

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

桌面设备

点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小        

平板设备

点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小

手机设备

点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小

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

范例

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

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

768px) {
      /* For desktop: */
    .col-1 { width:  8.33%;}
     .col-2 { width:  16.66%;}
     .col-3 { width:  25%;}
     .col-4 { width:  33.33%;}
     .col-5 { width:  41.66%;}
     .col-6 { width:  50%;}
     .col-7 { width:  58.33%;}
     .col-8 { width:  66.66%;}
     .col-9 { width:  75%;}
     .col-10 { width:  83.33%;}
     .col-11 { width:  91.66%;}
     .col-12 { width:  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;
    }
}





程序猿的技术大观园:www.javathinker.net



[这个贴子最后由 flybird 在 2020-02-09 11:31:58 重新编辑]
  Java面向对象编程-->内部类
  JavaWeb开发-->使用Session(Ⅱ)
  JSP与Hibernate开发-->数据库事务的并发问题的解决方案
  Java网络编程-->用Swing组件展示HTML文档
  精通Spring-->Vue CLI脚手架工具
  Vue3开发-->计算属性和数据监听
  10个 Web 开发人员的常用的 Chrome 扩展程序
  Vue3.0 ref、reactive、toRef、toRefs、customRef的区别
  css3中translate、transform和translation,以及动画animati...
  20分钟带你掌握JavaScript Promise和 Async/Await
  vue-min-picker普通选择器,日期选择器,省市区选择器,适用...
  Vue CLI内网安装(禁止运行vue指令解决方案)
  jQuery 事件方法汇总
  jQuery 获取并设置 CSS 类
  HTML DOM Script 对象
  jQuery UI 如何使用部件库
  CSS 听觉参考手册
  JavaScript 库
  JavaScript 函数定义
  JavaScript 变量提升
  Android 广播接收器(Broadcast Receivers)
  更多...
 IPIP: 已设置保密
楼主      
1页 0条记录 当前第1
发表一个新主题 开启一个新投票 回复文章


中文版权所有: JavaThinker技术网站 Copyright 2016-2026 沪ICP备16029593号-2
荟萃Java程序员智慧的结晶,分享交流Java前沿技术。  联系我们
如有技术文章涉及侵权,请与本站管理员联系。