1. 程式人生 > >適配方案

適配方案

tro display log soft code 改變 方案 什麽 代碼冗余

目前來看,適配從設備來分大致分兩種,一種是手機端適配,另一種是PC端適配。本次教程主要講PC端適配。

一,為什麽講述本次教程?

昨天不是很忙,在閑下來的時候看京東,淘寶,天貓的前端代碼,當我改變瀏覽器的寬度時候,內容自動適配。感覺很好奇,就查看他們的css樣式。

結果發現一個比較好的方案。這也是今天我要講述的適配方案。

二,這次教程需要用到的技術是什麽?

首先你要了解css權重,比如

.nav span{
  color:#999;
}
.nav .span{
  color:#ccc;
}

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>css權重</title>
		<style type="text/css">
			.nav span{
			  color:#999;
			}
			.nav .span{
			  color:#ccc;
			}
		</style>
	</head>
	<body>
		<div class="nav">
			<span class="span">hello css</span>
		</div>
	</body>
</html>

技術分享

這兩行代碼那個權重更高,測試一把就知道啦!!!

哈哈相信知道css權重的童鞋會說,太簡單了。不知道的呢!肯定還不知道怎麽回事?

不了解css權重的可以看看大漠老師的講解很全面:http://www.w3cplus.com/css/css-specificity-things-you-should-know.html

其次是規劃自己的css樣式,利用css權重來改變樣式

舉個例子:


/**

*.Lk_medium
* 中等寬度1190
*
*.Lk_mini
* 最小尺寸990
* */



.warp
{ width: 1810px; margin
: 0 auto; height: 200px; background-color: #20A0FF; } .Lk_medium .warp{ width: 1100px; margin: 0 auto; background-color: red; } .Lk_mini .warp{ width: 900px; margin
: 0 auto; background-color: #717FA5; }

當瀏覽器訪問頁面時,默認加載的是warp 樣式

當你改變瀏覽器的大小時,我們可以用js動態改變 html 或者body 的class樣式。

這樣的話,頁面就按照它的大小去加載相形的css

上html與js代碼

技術分享
 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta charset="UTF-8">
 5         <title>css權重</title>
 6         <style type="text/css">
 7             .warp{
 8                 width: 1810px;
 9                 margin: 0 auto;
10                 height: 200px;
11                 background-color: #20A0FF;
12             }
13             .Lk_medium .warp{
14                 width: 1100px;
15                 margin: 0 auto;
16                 background-color: red;
17             }
18             .Lk_mini .warp{
19                 width: 900px;
20                 margin: 0 auto;
21                 background-color: #717FA5;
22             }
23         </style>
24         <script type="text/javascript" src="js/jquery-1.8.3.min.js" ></script>
25         <script type="text/javascript">
26             $(function(){
27                 function setwidth(){
28                     var _width=$(window).width();
29                     $("body").removeClass("Lk_medium").removeClass("Lk_mini");
30                     if(_width>=1905){
31                         
32                     }else if(_width>=1190){
33                         $("body").addClass("Lk_medium");
34                     }else if(_width>=990){
35                         $("body").addClass("Lk_mini");
36                     }
37                 }
38                 setwidth();
39                 $(window).resize(function(){
40                     setwidth();
41                 })
42             })
43         </script>
44     </head>
45     <body>
46         <div class="warp">
47             
48         </div>
49     </body>
50 </html>
View Code

如圖所示:

技術分享

技術分享

三,跟其他適配方案做對比

[email protected],為什麽我沒有講?

技術分享

圖上:想必這是最好的答案。

2.本方案代碼冗余太多,如果把css壓縮,我相信目前這種方案還是很好的選擇。

3.兼容性目前來看可以甩掉媒體查詢幾條街

4.如果不考慮低版本的瀏覽器完全不用考慮此方法哈!!!

希望您看完此次教程對你有一點幫助,菜鳥前端-小小坤期待下次你的光臨小舍

適配方案