css3媒體查詢技術的出現,在多設備支持上爲咱們提供瞭解決方案。javascript
媒體查詢的使用方法:css
@media screen and (max-width: 480px) { .col-xs-1{width: 8.333333333333332%; float:left;} .col-xs-2{ width: 16.666666666666664%; float:left;} .col-xs-3{ width: 25%; float:left;} }
在設備窗口寬度小於480時,下面的樣式會被採用,不知足這個查詢設置,下面定義的css是無效的,html根本就不會識別到。html
簡單理解就是,若是當前寬度是1000,那麼就是div上有類名.col-xs-1,div仍是隻是簡單塊元素(不會浮動和寬爲百分比),查詢的設置是不起做用的。java
充分利用媒體查詢,實現多設備支持的框架當前最熱門就是bootstrap了,咱們能夠學習和使用它進行開發。css3
下面是我本身利用媒體查詢寫的實例頁面,都是經常使用css佈局方式配合了媒體查詢,多的就不作解釋了,一句話就是寫法都是css裏面,看看就能懂:web
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>media/媒體查詢/簡易UI</title> <!--設備設置--> <meta name="viewport" content="width=device-width,initial-scale=1.0"> <!--渲染ie內核--> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <style> /*========================全局樣式============================*/ *{ margin:0; padding:0;} html{height:100%;} body{height:100%; font-size:16px; font-family:"微軟雅黑";} a{ text-decoration:none;} img{ border:none;} ul{ list-style:none;} /*========================預約義樣式==========================*/ /*通用*/ .left{float:left;} .right{float:right;} .clear{clear:both;} .clearfix:after{ content:"."; display:block; height:0; clear:both; overflow:hidden;} .clearfix{ zoom:1;} /*12列布局*/ .row:after{ content:"."; display:block; height:0; clear:both; overflow:hidden;} @media screen and (max-width: 480px) { .col-xs-1{width: 8.333333333333332%; float:left;} .col-xs-2{ width: 16.666666666666664%; float:left;} .col-xs-3{ width: 25%; float:left;} .col-xs-4{ width: 33.33333333333333%; float:left;} .col-xs-5{width: 41.66666666666667%; float:left;} .col-xs-6{width: 50%; float:left;} .col-xs-7{ width: 58.333333333333336%; float:left;} .col-xs-8{width: 66.66666666666666%; float:left;} .col-xs-9{width: 75%; float:left;} .col-xs-10{width: 83.33333333333334%; float:left;} .col-xs-11{ width: 91.66666666666666%; float:left;} .col-xs-12{ width:100%; float:left;} .col-xs-mar-1{ margin-left: 8.333333333333332%; margin-right: 8.333333333333332%;} .col-xs-mar-2{ margin-left:16.666666666666664%; margin-right:16.666666666666664%;} .col-xs-mar-3{margin-left:25%; margin-right:25%;} .col-xs-mar-4{margin-left:33.33333333333333%; margin-right:33.33333333333333%;} .col-xs-mar-5{margin-left:41.66666666666667%; margin-right:41.66666666666667%;} .col-xs-mar-6{margin-left:50%; margin-right:50%;} .col-xs-mar-7{ margin-left:58.333333333333336%; margin-right:58.333333333333336%;} .col-xs-mar-8{ margin-left:66.66666666666666%; margin-right:66.66666666666666%;} .col-xs-mar-9{margin-left:75%; margin-right:75%;} .col-xs-mar-10{margin-left:83.33333333333334%; margin-right:83.33333333333334%;} .col-xs-mar-11{margin-left:91.66666666666666%; margin-right:91.66666666666666%;} } @media screen and (min-width: 481px) and (max-width: 768px) { .col-sm-1{ width: 8.333333333333332%; float:left;} .col-sm-2{ width:16.666666666666664%; float:left;} .col-sm-3{ width:25%; float:left;} .col-sm-4{ width:33.33333333333333%; float:left;} .col-sm-5{ width:41.66666666666667%; float:left;} .col-sm-6{ width:50%; float:left;} .col-sm-7{ width:58.333333333333336%; float:left;} .col-sm-8{ width:66.66666666666666%; float:left;} .col-sm-9{ width:75%; float:left;} .col-sm-10{ width:83.33333333333334%; float:left;} .col-sm-11{ width:91.66666666666666%; float:left;} .col-sm-12{ width:100%; float:left;} .col-sm-mar-1{ margin-left: 8.333333333333332%; margin-right: 8.333333333333332%;} .col-sm-mar-2{ margin-left:16.666666666666664%; margin-right:16.666666666666664%;} .col-sm-mar-3{margin-left:25%; margin-right:25%;} .col-sm-mar-4{margin-left:33.33333333333333%; margin-right:33.33333333333333%;} .col-sm-mar-5{margin-left:41.66666666666667%; margin-right:41.66666666666667%;} .col-sm-mar-6{margin-left:50%; margin-right:50%;} .col-sm-mar-7{margin-left:58.333333333333336%; margin-right:58.333333333333336%;} .col-sm-mar-8{margin-left:66.66666666666666%; margin-right:66.66666666666666%;} .col-sm-mar-9{margin-left:75%; margin-right:75%;} .col-sm-mar-10{margin-left:83.33333333333334%; margin-right:83.33333333333334%;} .col-sm-mar-11{margin-left:91.66666666666666%; margin-right:91.66666666666666%;} } @media screen and (min-width: 769px) and (max-width: 992px) { .col-md-1{ width: 8.333333333333332%; float:left;} .col-md-2{ width:16.666666666666664%; float:left;} .col-md-3{ width:25%; float:left;} .col-md-4{ width:33.33333333333333%; float:left;} .col-md-5{ width:41.66666666666667%; float:left;} .col-md-6{ width:50%; float:left;} .col-md-7{ width:58.333333333333336%; float:left;} .col-md-8{ width:66.66666666666666%; float:left;} .col-md-9{ width:75%; float:left;} .col-md-10{ width:83.33333333333334%; float:left;} .col-md-11{ width:91.66666666666666%; float:left;} .col-md-12{ width:100%; float:left;} .col-md-mar-1{ margin-left: 8.333333333333332%; margin-right: 8.333333333333332%;} .col-md-mar-2{ margin-left:16.666666666666664%; margin-right:16.666666666666664%;} .col-md-mar-3{margin-left:25%; margin-right:25%;} .col-md-mar-4{margin-left:33.33333333333333%; margin-right:33.33333333333333%;} .col-md-mar-5{margin-left:41.66666666666667%; margin-right:41.66666666666667%;} .col-md-mar-6{margin-left:50%; margin-right:50%;} .col-md-mar-7{margin-left:58.333333333333336%; margin-right:58.333333333333336%;} .col-md-mar-8{margin-left:66.66666666666666%; margin-right:66.66666666666666%;} .col-md-mar-9{margin-left:75%; margin-right:75%;} .col-md-mar-10{margin-left:83.33333333333334%; margin-right:83.33333333333334%;} .col-md-mar-11{margin-left:91.66666666666666%; margin-right:91.66666666666666%;} } @media screen and (min-width: 993px) and (max-width: 1200px) { .container{ width:900px; margin:0 auto;} .col-lg-1{ width: 8.333333333333332%; float:left;} .col-lg-2{ width:16.666666666666664%; float:left;} .col-lg-3{ width:25%; float:left;} .col-lg-4{ width:33.33333333333333%; float:left;} .col-lg-5{ width:41.66666666666667%; float:left;} .col-lg-6{ width:50%; float:left;} .col-lg-7{ width:58.333333333333336%; float:left;} .col-lg-8{ width:66.66666666666666%; float:left;} .col-lg-9{ width:75%; float:left;} .col-lg-10{ width:83.33333333333334%; float:left;} .col-lg-11{ width:91.66666666666666%; float:left;} .col-lg-12{ width:100%; float:left;} .col-lg-mar-1{ margin-left: 8.333333333333332%; margin-right: 8.333333333333332%;} .col-lg-mar-2{ margin-left:16.666666666666664%; margin-right:16.666666666666664%;} .col-lg-mar-3{margin-left:25%; margin-right:25%;} .col-lg-mar-4{margin-left:33.33333333333333%; margin-right:33.33333333333333%;} .col-lg-mar-5{margin-left:41.66666666666667%; margin-right:41.66666666666667%;} .col-lg-mar-6{margin-left:50%; margin-right:50%;} .col-lg-mar-7{margin-left:58.333333333333336%; margin-right:58.333333333333336%;} .col-lg-mar-8{margin-left:66.66666666666666%; margin-right:66.66666666666666%;} .col-lg-mar-9{margin-left:75%; margin-right:75%;} .col-lg-mar-10{margin-left:83.33333333333334%; margin-right:83.33333333333334%;} .col-lg-mar-11{margin-left:91.66666666666666%; margin-right:91.66666666666666%;} } @media screen and (min-width: 1201px) { .container{ width:1100px; margin:0 auto;} .col-xs-max-1{ width: 8.333333333333332%; float:left;} .col-xs-max-2{ width:16.666666666666664%; float:left;} .col-xs-max-3{ width:25%; float:left;} .col-xs-max-4{ width:33.33333333333333%; float:left;} .col-xs-max-5{ width:41.66666666666667%; float:left;} .col-xs-max-6{ width:50%; float:left;} .col-xs-max-7{ width:58.333333333333336%; float:left;} .col-xs-max-8{ width:66.66666666666666%; float:left;} .col-xs-max-9{ width:75%; float:left;} .col-xs-max-10{ width:83.33333333333334%; float:left;} .col-xs-max-11{ width:91.66666666666666%; float:left;} .col-xs-max-12{ width:100%; float:left;} .col-xs-max-mar-1{ margin-left: 8.333333333333332%; margin-right: 8.333333333333332%;} .col-xs-max-mar-2{ margin-left:16.666666666666664%; margin-right:16.666666666666664%;} .col-xs-max-mar-3{margin-left:25%; margin-right:25%;} .col-xs-max-mar-4{margin-left:33.33333333333333%; margin-right:33.33333333333333%;} .col-xs-max-mar-5{margin-left:41.66666666666667%; margin-right:41.66666666666667%;} .col-xs-max-mar-6{margin-left:50%; margin-right:50%;} .col-xs-max-mar-7{margin-left:58.333333333333336%; margin-right:58.333333333333336%;} .col-xs-max-mar-8{margin-left:66.66666666666666%; margin-right:66.66666666666666%;} .col-xs-max-mar-9{margin-left:75%; margin-right:75%;} .col-xs-max-mar-10{margin-left:83.33333333333334%; margin-right:83.33333333333334%;} .col-xs-max-mar-11{margin-left:91.66666666666666%; margin-right:91.66666666666666%;} } /*ui細化*/ .width-10{ width:10px;} .width-50{ width:50px;} .width-100{ width:100px;} .width-150{ width:150px;} .width-200{ width:200px;} .border-normal{ background:#999; border:none; margin:10px 10%; display:block; border-radius:10px; height:50px; line-height:40px; color:#fff; text-align:center; width:80%; font-size:18px; cursor:pointer;} .border-success{background:#0C6;border:none;margin:10px 10%;display:block; border-radius:10px;height:50px; line-height:40px; color:#fff; text-align:center;width:80%; font-size:18px; cursor:pointer;} .border-err{background:#F33;border:none;margin:10px 10%;display:block; border-radius:10px;height:50px; line-height:40px; color:#fff; text-align:center;width:80%; font-size:18px; cursor:pointer;} .table-normal{ width:100%; margin:10px 0px; border-collapse:collapse;} .table-normal td{ border:1px solid #999; padding:5px;} .table-radius{ width:100%; margin:10px 0px; border-spacing:0px;border-right:1px solid #999;border-bottom:1px solid #999;border-radius:10px;} .table-radius td{ border-top:1px solid #999;border-left:1px solid #999; padding:5px;} .table-radius tr td:last-child{} .table-radius tr:last-child td{} .table-radius tr:first-child td:first-child{border-radius:10px 0 0 0;} .table-radius tr:first-child td:last-child{border-radius:0 10px 0 0;} .table-radius tr:last-child td:first-child{border-radius:0 0 0 10px;} /*=========================自定義樣式===========================*/ #size{ height:50px; line-height:50px; text-align:center; font-weight:bold; font-size:20px; margin:50px; border-bottom:5px solid #09F;} .col{ margin:20px 0; background:#0CF; box-sizing:border-box; border:2px solid #993;} .col2{background:#C30; box-sizing:border-box; border:2px solid #0CF;height:50px;} </style> </head> <body> <div id="size">測試窗口大小當前爲<span id="sizeval">0</span>px</div> <h3 style="text-align:center;">演示:12列布局</h3> <div class="container"> <div class="row"> <div class="col col-md-5 col-lg-3 col-lg-mar-2 col-xs-max-2 col-xs-max-mar-1">1</div> <div class="col col-md-5 col-lg-3 col-xs-max-2">2</div> <div class="col col-md-5 col-lg-3 col-lg-mar-2 col-xs-max-2">3</div> <div class="col col-md-5 col-lg-3 col-xs-max-2"> <div class="row"> <div class="col2 col-md-5 col-lg-3 col-lg-mar-2 col-xs-max-2">3-1</div> <div class="col2 col-md-5 col-lg-3 col-lg-mar-2 col-xs-max-2">3-2</div> </div> </div> <div class="col col-md-12 col-lg-6 col-xs-max-12">4</div> <div class="col col-md-8 col-lg-6 col-xs-max-3">5</div> <div class="col col-md-4 col-lg-6 col-xs-max-3">6</div> <div class="col col-md-4 col-lg-6 col-xs-max-6">7</div> </div> </div> <h3 style="text-align:center;">演示:表單ui</h3> <div class="container"> <input type="button" class="border-normal" value="提交"> <input type="button" class="border-success" value="提交"> <input type="button" class="border-err" value="提交"> </div> <h3 style="text-align:center;">演示:表格</h3> <div class="container"> <table class="table-normal"> <tr><td>1</td><td>1</td><td>1</td></tr> <tr><td>2</td><td>2</td><td>2</td></tr> <tr><td>3</td><td>3</td><td>3</td></tr> </table> <table class="table-radius"> <tr><td>1</td><td>1</td><td>1</td></tr> <tr><td>2</td><td>2</td><td>2</td></tr> <tr><td>3</td><td>3</td><td>3</td></tr> </table> </div> </body> <script> var size=document.getElementById("size"); var sizeval=document.getElementById("sizeval"); sizeval.innerHTML=document.documentElement.offsetWidth; window.onresize=function(){ sizeval.innerHTML=document.documentElement.offsetWidth; }; </script> </html>
流式佈局,百分比賦值,多預設設置結合媒體查詢。bootstrap
移動適配方案:媒體查詢+remapp
移動端另外一種適配方案,通常就是對全部移動設備佈局的處理,基本上屏幕小於640px;原理就是rem的使用,咱們知道rem的值處理是相對html字體大小的設置,咱們就是利用這個原理,經過媒體查詢,把主流移動設備的html字體大小進行了設置,好比640px的設備咱們設置爲100px,頁面input高度0.5rem就換算成50px,同咱們仍是320px的設備,320px設備相對咱們的640px比例*100px就會獲得字體大小爲50px,咱們在320px設備下,0.5rem換算就是25px,固然設備不少,咱們在佈局以前要針對全部主流設備作一套html字體大小+媒體查詢的設置,不過設置好了咱們就一直可用,就算多了新的設備,咱們之後添加便可。框架
這種佈局方案會不一樣設備有不一樣顯示,相對精準。佈局
<!doctype html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"> <meta name="apple-mobile-web-app-capable" content="yes"> <meta name="apple-mobile-web-app-status-bar-style" content="black"> <title>移動適配方案:媒體查詢+rem</title> <style type="text/css"> /*css預設*/ *{ padding:0; margin:0} html,body{ height: 100%; width: 100%;} .clearfix:after{ content:"."; display:block; height:0; clear:both; overflow:hidden;} .clearfix{ zoom:1;} /*clear*/ .left{float:left;} .right{float:right;} .clear{clear:both;} @media screen and (max-width: 320px) { html{ font-size:50px;} } @media screen and (min-width: 321px) and (max-width: 375px) { html{ font-size:58.59px;} } @media screen and (min-width: 376px) and (max-width: 414px) { html{ font-size:64.68px;} } @media screen and (min-width: 415px) and (max-width: 640px) { html{ font-size:100px;} } @media screen and (min-width: 641px) { html{ font-size:100px;} } /*佈局樣式*/ .box{ border-bottom:1px solid #999;border-top:1px solid #999; margin-top:0.1rem;font-size:0.2rem;} .box span{height:0.4rem; line-height:0.4rem; width:1rem; float:left; text-align:right;} .box input{height:0.4rem; line-height:0.4rem; width:5.4rem; float:left; border:none;} .box2{border-top:1px solid #999;margin-top:0.2rem;font-size:0.2rem;} .box2 dl{border-bottom:1px solid #999;} .box2 dl dt{ float:left;width:2rem; height:2rem;} .box2 dl dt a{ width:100%; height:100%; display:block; margin-right:0.1rem; background:#09C;} .box2 dl dd{ float:left; width:4.3rem;height:2rem;} .box2 dl dd p{ line-height:0.4rem;} </style> </head> <body> <div class="box clearfix"> <span>名字:</span> <input type="text" /> </div> <div class="box2"> <dl class="clearfix"> <dt><a href="#2"></a></dt> <dd> <p>1</p> <p>2</p> <p>3</p> <p>4</p> <p>5</p> </dd> </dl> <dl class="clearfix"> <dt><a href="#2"></a></dt> <dd> <p>1</p> <p>2</p> <p>3</p> <p>4</p> <p>5</p> </dd> </dl> </div> </body> </html>
移動適配方案:js查詢+rem
mediaQuery.min.js
(function(d,c){var e=d.documentElement,a="orientationchange" in window?"orientationchange":"resize",b=function(){var f=e.clientWidth;if(!f){return}if(f>=640){e.style.fontSize="100px"}else{e.style.fontSize=100*(f/640)+"px"}};if(!d.addEventListener){return}c.addEventListener(a,b,false);d.addEventListener("DOMContentLoaded",b,false);b()})(document,window);
引用+佈局
<!doctype html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"> <meta name="apple-mobile-web-app-capable" content="yes"> <meta name="apple-mobile-web-app-status-bar-style" content="black"> <title>移動適配方案:媒體查詢+rem</title> <script src="mediaQuery.min.js"></script> <style type="text/css"> /*css預設*/ *{ padding:0; margin:0} html,body{ height: 100%; width: 100%;} .clearfix:after{ content:"."; display:block; height:0; clear:both; overflow:hidden;} .clearfix{ zoom:1;} /*clear*/ .left{float:left;} .right{float:right;} .clear{clear:both;} /*佈局樣式*/ .box{ border-bottom:1px solid #999;border-top:1px solid #999; margin-top:0.1rem;font-size:0.2rem;} .box span{height:0.4rem; line-height:0.4rem; width:1rem; float:left; text-align:right;} .box input{height:0.4rem; line-height:0.4rem; width:5.4rem; float:left; border:none;} .box2{border-top:1px solid #999;margin-top:0.2rem;font-size:0.2rem;} .box2 dl{border-bottom:1px solid #999;} .box2 dl dt{ float:left;width:2rem; height:2rem;} .box2 dl dt a{ width:100%; height:100%; display:block; margin-right:0.1rem; background:#09C;} .box2 dl dd{ float:left; width:4.3rem;height:2rem;} .box2 dl dd p{ line-height:0.4rem;} </style> </head> <body> <div class="box clearfix"> <span>名字:</span> <input type="text" /> </div> <div class="box2"> <dl class="clearfix"> <dt><a href="#2"></a></dt> <dd> <p>1</p> <p>2</p> <p>3</p> <p>4</p> <p>5</p> </dd> </dl> <dl class="clearfix"> <dt><a href="#2"></a></dt> <dd> <p>1</p> <p>2</p> <p>3</p> <p>4</p> <p>5</p> </dd> </dl> </div> </body> </html>