响应式布局

快来打我* 2022-10-18 01:38 465阅读 0赞

目录:

  1. 响应式布局介绍
  2. 响应式布局特点
  3. 响应式布局的实现方式
  4. 响应式布局媒体查询使用
  5. 响应式布局示例

    1. 示例1
    2. 示例2

1. 响应式布局介绍

响应式布局可以为不同终端的用户提供更加舒适的界面和更好的用户体验,就是一个网页可以在不同设备上显示,比如:电脑、平板、手机等,不同设备都可以兼容显示。这样就不必为每一种终端再去制作相应的网页。

2. 响应式布局特点

有很强的灵活性,不同的终端设备都可以显示。代码冗余多,会加载许多隐藏的元素,加载时间长。

3. 响应式布局的实现方式

媒体查询、流体布局、 弹性布局、第三方框架、Js

4. 响应式布局媒体查询使用

  1. 直接在CSS中使用:

    1. @media 类型(常选all/screen)and (条件1) and (条件2){
    2.   CSS选择器{
    3.     CSS属性:属性值;
    4.   }
    5. }

    有多个条件时,用and连接
    示例:

    1. @media screen and (max-width: 600px) { /*当屏幕尺寸小于600px时,应用下面的CSS样式*/
    2. .class {
    3. background: #ccc;
    4. }
    5. }

    写法是前面加@media,其它跟link里的media属性相同
    其实基本上就是样式覆盖~,判断设备,然后引用不同的样式文件覆盖。

  2. 使用link连接CSS,media属性可以设置媒体查询方式:
    <!
    示例:

    1. <link rel="stylesheet" type="text/css" href="styleA.css" media="screen and (min-width: 400px)">

    意思是当屏幕的宽度大于等于400px的时候,应用styleA.css
    在media属性里:

    1. screen 是媒体类型里的一种,CSS2.1定义了10种媒体类型
    2. and 被称为关键字,其他关键字还包括 not(排除某种设备),only(限定某种设备)
    3. (min-width: 400px) 就是媒体特性,其被放置在一对圆括号中。完整的特性参看 相关的Media features部分


      意思是当屏幕的宽度大于600小于800时,应用styleB.css
      其它属性可看这里:http://www.swordair.com/blog/2010/08/431/

  3. 使用@improt导入,直接在url()后面使用空格,间隔媒体查询规则:
    @import url(“CSS/02响应式布局CSS.css”) all and (max-width:800px);

提示:在做响应式布局的设置一般用第二种方法。
要注意的是由于网页会根据屏幕宽度调整布局,所以不能使用绝对宽度的布局,也不能使用具有绝对宽度的元素。这一条非常重要,否则会出现横向滚动条。

补充:media query中的not only all等关键字

今天在群里一群友问起 @media only screen and (min-width: 320px) 中only是什么意思,查了些资料。

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

only: 用来定某种特别的媒体类型。对于支持Media Queries的移动设备来说,如果存在only关键字,移动设备的Web浏览器会忽略only关键字并直接根据后面的表达式应用样式文件。对于不支持Media Queries的设备但能够读取Media Type类型的Web浏览器,遇到only关键字时会忽略这个样式文件。

all: 所有设备,这个应该经常看到

还有其它一些:
















































media_type

设备类型说明

all

所有设备

aural

听觉设备

braille

点字触觉设备

handled

便携设备,如手机、平板电脑

print

打印预览图等

projection

投影设备

screen

显示器、笔记本、移动端等设备

tty

如打字机或终端等设备

tv

电视机等设备类型

embossed

盲文打印机

相关资料扩展:http://book.51cto.com/art/201204/328362.htm

       http://www.w3cplus.com/content/css3-media-queries

       http://www.w3.org/TR/CSS2/media.html#media-types

5. 响应式布局示例

示例1:

一个三栏布局的,在不同的尺寸下,变为两栏,再变为一栏~

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3lpZ3VhbmdfODIw_size_16_color_FFFFFF_t_70

  1. <!DOCTYPE HTML>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1" />
  6. <title>css3-media-queries-demo</title>
  7. <style>
  8. body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, form, fieldset, input, textarea, p, blockquote, th, td {
  9. padding: 0;
  10. margin: 0;
  11. }
  12. .content{
  13. zoom:1;
  14. }
  15. .content:after{
  16. content: ".";
  17. display: block;
  18. height: 0;
  19. clear: both;
  20. visibility: hidden;
  21. }
  22. .leftBox, .rightBox{
  23. float: left;
  24. width: 20%;
  25. height: 500px;
  26. margin: 5px;
  27. background: #ffccf7;
  28. display: inline;
  29. -webkit-transition: width 1s ease;
  30. -moz-transition: width 1s ease;
  31. -o-transition: width 1s ease;
  32. -ms-transition: width 2s ease;
  33. transition: width 1s ease;
  34. }
  35. .middleBox{
  36. float: left;
  37. width: 50%;
  38. height: 800px;
  39. margin: 5px;
  40. background: #b1fffc;
  41. display: inline;
  42. -webkit-transition: width 1s ease;
  43. -moz-transition: width 1s ease;
  44. -o-transition: width 1s ease;
  45. -ms-transition: width 1s ease;
  46. transition: width 1s ease;
  47. }
  48. .rightBox{
  49. background: #fffab1;
  50. }
  51. @media only screen and (min-width: 1024px){
  52. .content{
  53. width: 1000px;
  54. margin: auto
  55. }
  56. }
  57. @media only screen and (min-width: 400px) and (max-width: 1024px){
  58. .rightBox{
  59. width: 0;
  60. }
  61. .leftBox{ width: 30%}
  62. .middleBox{ width: 65%}
  63. }
  64. @media only screen and (max-width: 400px){
  65. .leftBox, .rightBox, .middleBox{
  66. width: 98%;
  67. height: 200px;
  68. }
  69. }
  70. </style>
  71. </head>
  72. <body>
  73. <div class="content">
  74. <div class="leftBox"></div>
  75. <div class="middleBox"></div>
  76. <div class="rightBox"></div>
  77. </div>
  78. </body>
  79. </html>

#

示例2:

制作一个在不同尺寸显示不同效果的网页,分别是1200px、900px、600px的不同效果。

1. 建立一个html文件:

<!DOCTYPE html>


  
    
    
     导入调用Css文件
    

  设置布局ViewPortd各种信息:
    1、width=device-width;设置viewport视口宽度等于设备宽度;
    2、initial-scale=1; 网页默认缩放比为1(网页在手持设备上,不会进行默认缩放)
    3、minimum-scale=1 网页最小缩放比为1
    4、maximum-scale=1 网页最大缩放比为1
    5、user-scalable=no 禁止用户手动缩放网页的

    注意:做响应式网页这句设置语句必须写

    
  

  
     为头部做一个列表和div图标
    
    主体三个div
    

      
left

      
center

      
right


    

    底部
    

      footer
    

  
  1. <!DOCTYPE html>
  2. <html>
  3.   <head>
  4. <meta charset="UTF-8">
  5. <title></title>
  6. <link rel="stylesheet" href="style.css" />
  7. <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
  8. <style type="text/css">
  9. @media screen and (max-width:1200px ) {
  10. #header,
  11. #main,
  12. #foot{
  13. width: 100%;
  14. }
  15. }
  16. @media screen and (max-width: 900px) {
  17. #main .right{
  18. display: none;
  19. }
  20. #main .left{
  21. width: 35%;
  22. }
  23. #main .center{
  24. width: 65%;
  25. border-right: hidden;
  26. }
  27. }
  28. @media screen and (max-width: 600px){
  29. #header ul{
  30. display: none;
  31. }
  32. #header div{
  33. display: block;
  34. }
  35. #main{
  36. height: 920px;
  37. }
  38. #main .left{
  39. float: none;
  40. width: 100%;
  41. height: 250px;
  42. line-height: 250px;
  43. }
  44. #main .center{
  45. float: none;
  46. width: 100%;
  47. height: 400px;
  48. line-height: 400px;
  49. border-left: hidden;
  50. border-top: 10px solid white;
  51. border-bottom: 10px solid white;
  52. }
  53. #main .right{
  54. display: block;
  55. float: none;
  56. width: 100%;
  57. height: 250px;
  58. }
  59. }
  60. </style>
  61. </head>
  62. <body>
  63. <header id="header">
  64. <ul>
  65. <li>Header1</li>
  66. <li>Header2</li>
  67. <li>Header3</li>
  68. <li>Header4</li>
  69. <li>Header5</li>
  70. </ul>
  71. <div>icon</div>
  72. </header>
  73. <section id="main">
  74. <div class="left">left</div>
  75. <div class="center">center</div>
  76. <div class="right">right</div>
  77. </section>
  78. <footer id="foot">
  79. footer
  80. </footer>
  81. </body>
  82. </html>

2. 建立一个相应的Css文件

  1. @media screen and (max-width:1200px ) {
  2. #header,
  3. #main,
  4. #foot{
  5. width: 100%;
  6. }
  7. }
  8. @media screen and (max-width: 900px) {
  9. #main .right{
  10. display: none;
  11. }
  12. #main .left{
  13. width: 35%;
  14. }
  15. #main .center{
  16. width: 65%;
  17. border-right: hidden;
  18. }
  19. }
  20. @media screen and (max-width: 600px){
  21. #header ul{
  22. display: none;
  23. }
  24. #header div{
  25. display: block;
  26. }
  27. #main{
  28. height: 920px;
  29. }
  30. #main .left{
  31. float: none;
  32. width: 100%;
  33. height: 250px;
  34. line-height: 250px;
  35. }
  36. #main .center{
  37. float: none;
  38. width: 100%;
  39. height: 400px;
  40. line-height: 400px;
  41. border-left: hidden;
  42. border-top: 10px solid white;
  43. border-bottom: 10px solid white;
  44. }
  45. #main .right{
  46. display: block;
  47. float: none;
  48. width: 100%;
  49. height: 250px;
  50. }
  51. }
  52. *{
  53. margin: 0px;
  54. padding: 0px;
  55. text-align: center;
  56. font-size: 48px;
  57. box-sizing: border-box;
  58. }
  59. #header,
  60. #main,
  61. #foot{
  62. height: 100px;
  63. width: 1200px;
  64. background-color: orange;
  65. line-height: 100px;
  66. margin: 0 auto;
  67. min-width: 300px;
  68. }
  69. #header ul{
  70. width: 80%;
  71. }
  72. #header ul li{
  73. float: left;
  74. width: 20%;
  75. list-style: none;
  76. font-size: 20px;
  77. }
  78. #header div{
  79. width: 50px;
  80. height: 50px;
  81. background-color: yellow;
  82. line-height: 50px;
  83. font-size: 20px;
  84. float: right;
  85. margin-top: 25px;
  86. margin-right: 25px;
  87. display: none;
  88. }
  89. #main{
  90. height: 520px;
  91. line-height: 520px;
  92. border-bottom: 10px solid white;
  93. border-top: 10px solid white;
  94. }
  95. #main .left{
  96. width: 25%;
  97. height: 500px;
  98. background-color: darkblue;
  99. float: left;
  100. }
  101. #main .center{
  102. width: 50%;
  103. height: 500px;
  104. background-color:white;
  105. float: left;
  106. border-left: 10px solid white;
  107. border-right: 10px solid white;
  108. }
  109. #main .right{
  110. width: 25%;
  111. height: 500px;
  112. background-color: red;
  113. float: left;
  114. }

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3lpZ3VhbmdfODIw_size_16_color_FFFFFF_t_70 1

设置在1200px和大于1200px像素时显示,列表元素浮动显示,列表宽度占80%,列表中元素每个以占20%显示,隐藏头部右侧div。让主体中的三个div浮动排开,设置左右两边div宽度占25%。中间的占50%。底部div宽度占100%。

@media screen and (max-width:1200px ) {
  #header,
  #main,
  #foot{
    width: 100%;
  }
}

d7c834e1ba3b285ca480dec672d8f040.png

当显示宽度在1200px和900px之间时,将主体中右边红色div隐藏,并将左边蓝色div宽度改为35%,中间白色宽度为65%。

@media screen and (max-width: 900px) {
  #main .right{
    display: none;
  }
  #main .left{
    width: 35%;
  }
  #main .center{
    width: 65%;
    border-right: hidden;
  }
}

4ce41e98c3e6b3adb114d5755a4ecaf0.png

当显示宽度在600px已下时,将头部中的列表隐藏,显示之前头部隐藏的小div;设置主体合适的高度,将主题中三个div按照从左到右的顺序进行从上到下排列,并将他们的宽度设为100%,

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

  #header ul{
    display: none;
  }
  #header div{
    display: block;
  }

  #main{
    height: 920px;
  }
  #main .left{
    float: none;
    width: 100%;
    height: 250px;
    line-height: 250px;
  }
  #main .center{
    float: none;
    width: 100%;
    height: 400px;
    line-height: 400px;
    border-left: hidden;
    border-top: 10px solid white;
    border-bottom: 10px solid white;
  }
  #main .right{
    display: block;
    float: none;
    width: 100%;
    height: 250px;
    line-height: 250px;
  }
}

37f92b80dcbb255aa39800df5ecb8606.png

发表评论

表情:
评论列表 (有 0 条评论,465人围观)

还没有评论,来说两句吧...

相关阅读

    相关 响应布局

    一、响应式开发 1.1、概述 就是使用媒体查询针对不同宽度的设备进行布局和样式的设置,从而适配不同设备的目的。 1.2、响应式布局容器 1

    相关 响应布局

    目录: 1. 响应式布局介绍 2. 响应式布局特点 3. 响应式布局的实现方式 4. 响应式布局媒体查询使用 5. 响应式布局示例 1. 示例1

    相关 响应布局

    一、视口(viewport) 移动前端的viewport就是浏览器中用于呈现网页的区域。视口通常并不等于屏幕大小。手机端和PC端视口存在差异,电脑端视口等于其分辨率,手机端的

    相关 响应布局

    响应式布局 响应式布局在面对不同分辨率设备灵活性强,在平时的网页设计中基本上都要用到响应式布局设计,它给我们提供了良好的用户浏览页面,能带给我们更好的客户体验,下面给大家分享

    相关 响应布局

    简介 什么是响应式布局? 同一个页面在不同屏幕尺寸下有不同的布局 传统的开发方式是PC端开发一套,手机一套 使用响应式布局只需要开发一套

    相关 响应布局

    一、什么是响应式布局?   响应式布局就是一个网站能够兼容多个终端——而不是为每个终端做一个特定的版本。这个概念是为解决移动互联网浏览而诞生的。   响应式布局可以为不