适配方案

目前来看,适配从设备来分大致分两种,一种是手机端适配,另一种是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>

如图所示:

三,跟其他适配方案做对比

1.使用媒体查询@media也可以实现适配,为什么我没有讲?

图上:想必这是最好的答案。

2.本方案代码冗余太多,如果把css压缩,我相信目前这种方案还是很好的选择。

3.兼容性目前来看可以甩掉媒体查询几条街

4.如果不考虑低版本的浏览器完全不用考虑此方法哈!!!

希望您看完此次教程对你有一点帮助,菜鸟前端-小小坤期待下次你的光临小舍

时间: 2024-10-18 18:15:25

适配方案的相关文章

移动端适配方案研究

初次接触移动端的时候,以为终于可以不用像pc那样考虑令人头疼的ie浏览器兼容问题,有强大的css3的帮助,可以随心所欲..可是后来才发现原来移动端各种层次不齐的终端更会让人抓耳挠腮,同样的页面在不同的手机上显示的完全不一样的效果,于是抛开功能,页面适配性也成了一个大的课题. 说到移动端,下面这一行代码大家一定不陌生: <meta name="viewport" content="width=device-width, initial-scale=1, maximum-s

微信iOS多设备多字体适配方案总结

一.背景 2014下半年,微信iOS版先后适配iPad, iPhone6/6plus.随着这些大屏设备的登场,部分用户觉得微信的字体太小,但也有很多用户不喜欢太大的字体.为了满足不同用户的需求,我们做了全局字体设置功能,在[设置-通用-字体大小]这里修改设置后,微信大部分界面都会随之缩放. 二.多设备适配 1.各设备的逻辑分辨率: 关于iphone6/6plus的物理分辨率.逻辑分辨率.屏幕物理尺寸.PPI等资料,很多文章已经有详细说明了,这里就不再累赘.对于终端开发人员来说,其实我们需要关心的

Unity2D多分辨率屏幕适配方案(转载)

一下内容转自:http://imgtec.eetrend.com/forum/3992 此文将阐述一种简单有效的Unity2D多分辨率屏幕适配方案,该方案适用于基于原生开发的Unity2D游戏,即没有使用第三方2D插件,如Uni2D,2D toolkit等开发的游戏,NGUI插件不受这个方案影响,可以完美和此方案配合使用. 先说明一些基本的概念: 1.屏幕的宽高比Aspect Ratio = 屏幕宽度/屏幕高度 2.Unity2D中摄像机镜头的尺寸决定了我们实际看到游戏内容的多少,在编辑器中我们

Android适配方案小结(三)

在Android适配方案小结(一).(二)中,我们了解了一些基本概念. 那么在具体开发中,我们应该注意什么呢. 首先,我们必须要知道,其实适配的关键在于两点: (1)不同分辨率设备的适配,这点在单位的使用上用dp.sp以及图片资源存放于不同的drawable文件夹就可以解决问题: (2)不同尺寸的适配,这点主要靠将相关值以及布局文件放置于不同的文件夹中来解决. 2.1 values文件夹 可以在工程下创建不同的values文件夹:values-sw480dp, values-sw600dp, v

Android开发屏幕适配方案

Android屏幕适配方案总结 日常开发中,难免遇到屏幕适配的方案,网上也有很多方案,在这里本人只是做一个总结,以免日后使用 单位的概念 pt(point):磅,一个标准的固定长度单位,大小为1/72英寸,主要用于印刷与平面设计.1英寸=2.54厘米=72磅 1pt=0.03527cm px(pixel):像素,组成屏幕图像的最小点,一个相对大小单位.同尺寸屏幕中像素越小越多,代表屏幕分辨率越高,反之越高. 1pt=(ppi/72)*px 屏幕尺寸(screen size):屏幕物理尺寸,指屏幕

H5常用代码:适配方案3

在H5项目中有一种常见的宣传页,就是那种整屏整屏的,带着炫丽进场动画的移动宣传页,不仅是一种欣赏也起到了很大宣传作用. 对于这种整屏的适配,前面通过视口的兼容处理也是可以做到的,但是在窄屏下会在上下有明显的切割,于是想到既然是保证内容在整屏,那是不是只要保证高度在整屏内就完美了,不管屏幕怎么小整个高度被填在屏幕内,于是就有了这一种适配方案: 代码如下: <!DOCTYPE html> <html> <head> <title>主结构&适配方案3<

Unity+NGUI多分辨率适配方案

说起unity的适配方案,网上可谓是一查一大堆,但是真正要应用到项目中的时候,总会出现各式各样的问题.由于最近自己要做一个小游戏,在开始做游戏之前,就想着先好好搞一搞适配这块,以后新起项目的时候也会用得着. NGUI应该是现在大部分开发者都会去选择的UI插件,虽然NGUI还存在着不少问题,像是相对来说,NGUI还是比较靠谱的,所以这里只是针对NGUI做适配方案. NGUI中对于每一个场景,都是以UIRoot为GameObject树的根的,UIRoot下面主要有这几种属性 1) Scaling S

移动端高清、多屏适配方案

移动端高清.多屏适配方案 背景 开发移动端H5页面 面对不同分辨率的手机 面对不同屏幕尺寸的手机 视觉稿 在前端开发之前,视觉MM会给我们一个psd文件,称之为视觉稿. 对于移动端开发而言,为了做到页面高清的效果,视觉稿的规范往往会遵循以下两点: 首先,选取一款手机的屏幕宽高作为基准(以前是iphone4的320×480,现在更多的是iphone6的375×667). 对于retina屏幕(如: dpr=2),为了达到高清效果,视觉稿的画布大小会是基准的2倍,也就是说像素点个数是原来的4倍(对i

web屏幕适配方案

一个多月前水了一篇移动web屏幕适配方案,当时噼里啪啦的写了一通,自我感觉甚是良好.不过最近又有一些新的想法,和之前的有一些不同. 先说一下淘宝的方案,感觉现在好多的适配方案都是受了它的影响,上周六看了winter在一个会议的分享,讲到了这个方案.现在你谷歌一下移动 web适配,绝对可以看到很多类似的,切活动页的童鞋都忍不住试一把.这些方案和我的博客写的其实还是相似的,就是抛弃了那种viewport直接缩放, 然后给定html的初始font-size值,使用rem这个单位. 在屏幕的设备像素比上

cocos2dx屏幕适配方案

我们在利用cocos2dx来开发游戏时,在开始时就不可避免的会遇到屏幕适配问题,来使我们的游戏适应移动终端的各种分辨率大小.目前,大家采用的屏幕适配方案不一,网上的资料也比较丰富,下面我也将自己使用的方案做下记录.由于我的Mac系统下只有一个分辨率的虚拟机,所以这次使用的是VS2010,使用的是cocos2dx2.2.2版本. 我这里采用的方案是为不同分辨率的屏幕设置不同资源目录的方案,根据我们的需求需要准备多套资源,但是由于部分分辨率较为接近,所以也不必为所有分辨率都去单独准备资源,可以几种分