响应式布局实例

响应式布局

响应式布局是为了让设计的东西,兼容各种设备终端,是Ethan Marcotte在2010年5月提出的一个概念。传统的设计思路时,手机端一套,pc端一套,还有根据pc端屏幕大小而分出好几套。

1.媒体布局

Meta标签定义

使用 viewport meta 标签在手机浏览器上控制布局

<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1" />

通过快捷方式打开时全屏显示

<meta name="apple-mobile-web-app-capable" content="yes" />

隐藏状态栏

<meta name="apple-mobile-web-app-status-bar-style" content="blank" />

iPhone会将看起来像电话号码的数字添加电话连接,应当关闭

<meta name="format-detection" content="telephone=no" />
使用Media Queries适配对应样式

常用于布局的CSS Media Queries有以下几种:
设备类型(media type):
all所有设备;
  screen 电脑显示器;
  print打印用纸或打印预览视图;
  handheld便携设备;
  tv电视机类型的设备;
  speech语意和音频盒成器;
  braille盲人用点字法触觉回馈设备;
  embossed盲文打印机;
  projection各种投影设备;
  tty使用固定密度字母栅格的媒介,比如电传打字机和终端。

设备特性(media feature):
width浏览器宽度;
  height浏览器高度;
  device-width设备屏幕分辨率的宽度值;
  device-height设备屏幕分辨率的高度值;
  orientation浏览器窗口的方向纵向还是横向,当窗口的高度值大于等于宽度时该特性值为portrait,否则为landscape;
  aspect-ratio比例值,浏览器的纵横比;
  device-aspect-ratio比例值,屏幕的纵横比。

案例:随着屏幕大小,分别显示一列,两列,三列

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
   <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
   <title></title>
   <style type="text/css">
       /* 小屏幕(平板,大于等于 768px)
       @media (min-width: 768px){  */
       @media (min-width: 200px){
           .divleft {
               margin-top:10px;
           }
           .divleft1 {
               margin-top:10px;
           }
           .divleft2 {border:2px solid #EBEBEB; border-radius:5px;
               background-color:white;
               min-height:200px;
           }
           .divleft2_1 {border:2px solid #EBEBEB; border-radius:5px;border-bottom:0px;
               background-color:white;
               min-height:200px;
           }
           .divcenter {
               margin-top:10px;
           }
           .divcenter1 {
           }
           .divcenter2{border:2px solid #EBEBEB; border-radius:5px;
               background-color:white;
               min-height:200px;
           }
           .divcenter2_1{border:2px solid #EBEBEB; border-radius:5px;border-top:0px;
               background-color:white;
               min-height:200px;
           }
           .divright {
               margin-top:10px;
               clear:both;
           }
           .divright2 {border:2px solid #EBEBEB; border-radius:5px; 
               background-color:white;
               min-height:200px;
           }
       }
       /* 中等屏幕(桌面显示器,大于等于 992px) */
       @media (min-width: 992px){
           .divleft {
               position:absolute;
               color:green;
               width:50%;
               margin-top:10px;
               margin-bottom:10px;
           }
           .divleft1 {
               position:absolute;
               color:green;
               width:50%;
               margin-top:10px;
               margin-bottom:10px;
           }
           .divleft2 {border:2px solid #EBEBEB; border-radius:5px; margin-right:10px;
               background-color:white;
               min-height:200px;
           }
           .divleft2_1 {border:2px solid #EBEBEB; border-radius:5px;border-right:0px;
               background-color:white;
               min-height:200px;
           }
           .divcenter {
               float:right;
               width:50%;
               margin-top:10px;
               margin-bottom:10px;
           }
           .divcenter1 {
               float:right;
               width:50%;
               margin-top:10px;
               margin-bottom:10px;
           }
           .divcenter2{border:2px solid #EBEBEB; border-radius:5px; margin-left:10px; 
               background-color:white;
               min-height:200px;
           }
           .divcenter2_1{border:2px solid #EBEBEB; border-radius:5px;border-left:0px;
               background-color:white;
               min-height:200px;
           }
           .divright {
               clear:both;
               width:50%;
           }
           .divright2 {border:2px solid #EBEBEB; border-radius:5px; 
               background-color:white;
               min-height:200px;
           }
       }
       /* 大屏幕(大桌面显示器,大于等于 1200px) */
       @media (min-width: 1200){
           .divleft {
               position:absolute;
               color:green;
               width:33%;
               margin-top:10px;
           }.divleft1 {
               position:absolute;
               color:green;
               width:33%;
               margin-top:10px;
           }
           .divleft2 {border:2px solid #EBEBEB; border-radius:5px; margin-right:10px;
               background-color:white;
               min-height:200px;
           }
           .divleft2_1 {border:2px solid #EBEBEB; border-radius:5px; margin-right:10px;
               background-color:white;
               min-height:200px;
           }
           .divcenter {
               float:left;
               width:34%;
               margin-top:10px;
           }
           .divcenter1 {
               float:left;
               width:34%;
               margin-top:10px;
           }
           .divcenter2{border:2px solid #EBEBEB; border-radius:5px; margin-left:10px;
               background-color:white;
               min-height:200px;
           }
           .divcenter2_1{border:2px solid #EBEBEB; border-radius:5px; margin-left:10px;
               background-color:white;
               min-height:200px;
           }
           .divright {
               float:right;
               width:33%;
               margin-top:10px;
           }
           .divright2 {border:2px solid #EBEBEB; border-radius:5px; 
               background-color:white;
               min-height:200px;
           }
       }
   </style>
</head>
<body style="background-color:#F3F3F3;">
   <form id="form1" runat="server">
   <div style="min-width:210px;">
       <div class="box">    
   	    <div class="divleft">
               <div class="divleft2">
                   c1
               </div>
   	    </div>    
   	    <div class="divcenter">
               <div class="divcenter2">
                   c2
               </div>
   	    </div>
   	    <div class="divright">
               <div class="divright2">
                   c3
               </div>
   	    </div>
   	</div>
       <div class="box" style="clear:both;">    
   	    <div class="divleft1">
               <div class="divleft2_1">
                   c1
               </div>
   	    </div>    
   	    <div class="divcenter1">
               <div class="divcenter2_1">
                   c2
               </div>
   	    </div>
   	</div>
       <div class="box" style="clear:both;">    
   	    <div class="divleft">
               <div class="divleft2">
                   c1
               </div>
   	    </div>    
   	    <div class="divcenter">
               <div class="divcenter2">
                   c2
               </div>
   	    </div>
   	    <div class="divright">
               <div class="divright2">
                   c3
               </div>
   	    </div>
   	</div>
   </div>
   </form>
</body>
</html>

2.百分百设计

设计宽高的百分比,可以让标签随屏幕大小,而自动适应。

实例:

<!DOCTYPE html>
<html>
<head>
 <title></title>
 <style>
     body{margin:0;padding:0;}
     #left{width: 150px;height: 100px;background-color: red;float: left}
     #right{width: 150px;height: 100px;background-color: green;float: right}
     #center{height: 100px;background-color: blue;}
 </style>
</head>
<body>
<div id="left">left</div>
<div id="right">right</div>
<div id="center">center</div>
</body>
</html>
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xcLeigh

万水千山总是情,打赏两块行不行

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值