浏览器PC和移动端页面样式适配

摘要:
使用了两种方法。一种是在响应模式下使用bootstrap或直接使用@media media进行查询。另一种是使用两组样式来加载设备。它适用于简单的网页,如官方网站,开发和维护成本低。对于电子商务等复杂网站,两种风格更好,开发和维护成本更高。第一个具体的实施就不用提了。第二种方法是默认加载两个css,然后根据设备禁用其中一个。在这里,首先隐藏主体,以避免切换时未加载样式。12345678hello91011//移动电话页面rem适用于12(函数(doc,win){13varhtmlFont=function(){14vardocEl=doc.documentElement,l=docEl.clientWidth,f;15f=l/15;16l˃750?

用过的两种方式,一种是响应式用bootstrap或者直接用@media媒体查询,第二种是弄两套样式针对设备加载。针对简单的网页比如官网响应式比较适合,开发维护成本低。针对复杂的网站比如电商用两套样式比较好,开发维护成本较高
第一种具体的实现就不说了,第二种方式先默认加载两个css,然后根据设备disabled其中一个,这里body先隐藏为了避免切换的时候出现样式未加载的情况

1 <!doctype html>
2 <html>
3 <head>
4 <link href="index-mobile.css"title="mobile"rel="stylesheet"type="text/css" />
5 <link href="index-pc.css"title="pc"rel="stylesheet"type="text/css" />
6 </head>
7 <body style="display: none;">
8 hello
9 </body>
10 <script>
11     //手机页面rem适配
12 (function(doc,win){
13         varhtmlFont = function(){
14             vardocEl=doc.documentElement, l=docEl.clientWidth, f;
15 f=l/15;
16 l>750?docEl.style.fontSize=50+"px":docEl.style.fontSize=f+"px"};
17 htmlFont();
18 win.addEventListener("resize",htmlFont,false)
19 })(document,window)
20     vartitle;
21     if(/mobile|phone|android|pad/.test(navigator.userAgent.toLowerCase())){
22 title = 'mobile';
23 }else{
24 title = 'pc';
25 }
26 setStyle()
27     functionsetStyle(){
28         vari,links;
29 links =document.getElementsByTagName("link");
30         for(i=0; links[i]; i++){
31             if(links[i].getAttribute("rel").indexOf("style") != -1 &&links[i].getAttribute("title")){
32 links[i].disabled = true;
33                 if(links[i].getAttribute("title").indexOf(title) != -1){
34 links[i].disabled = false;
35 document.body.style.display = "block";
36 }
37 }
38 }
39 }
40 </script>

免责声明:文章转载自《浏览器PC和移动端页面样式适配》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Qt5学习笔记(5)——列表框QListWidget类mac m1 安装python3下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

JS事件 文本框内容改变事件(onchange)通过改变文本框的内容来触发onchange事件,同时执行被调用的程序。

以下代码显示,当用户更改文本框中的文本时,会弹出一个对话框“您更改了文本内容!”。运行结果:该任务补充了右侧编辑器的第13行。当文本框的内容发生更改时,将调用message()函数,并弹出对话框“您更改了文本内容!”。DOCTYPEHTML˃文本框内容更改事件functionmessage(){alert(“您更改了文本内容!”);}个人简介:请编写您的个人...

使用事务和SqlBulkCopy批量插入数据

类似与MicrosoftSQLServer包中名为bcp的命令行应用程序。但是使用SqlBulkCopy类可以编写托管代码解决方案,性能上优于bcp命令行应用程序,更优于如Insert方式向SQLServer表加载大量数据。SqlBulkCopy可以应用到大批量数据的转移上,而不管数据源是什么。之前在做winform开发的时候,发现当datagridview...

微信小游戏流量主广告接入指南!

游戏通过审核发布上线,累计注册用户达到1000后,可以在管理后台开启流量主功能。广告接入广告类型有三种:激励式视频、插屏和BannerBanner广告接入需要注意:1.广告要显示全,不能放在屏幕外。我的游戏被以上原因拒绝了两次。我的banner广告是放在底部正中间,取最小宽度200。也就是尽量的小,不影响游戏操作。激励视频按钮一定要有视频广告相关的提示!...

安装gulp教程(整理)

所以安装nodejs。...

java--枚举

前言:Java中的enum也是一种类类型,它与一般类的区别在于1.世界上只有一个实例2.不能有公共构造函数3。您不能继承和继承枚举事例publicenumHttpCode{SUCCESS(200,“操作成功”)。//定义的每个枚举项都等效于通过构造函数HttpCode(int code,Stringmessage)实例化没有枚举项的通用HttpCo...

nginx做本地目录映射

nginx做本地目录映射有时候需要访问服务器上的一些静态资源,比如挂载其他设备上的图片到本地的目录,而本地的目录不在nginx根目录下,这个时候就需要简单的做一下目录映射来解决,比如想通过浏览器http://ip/image/2016/04/29/10/abc.jpg访问到系统目录/image_data/2016/04/29/10/abc.jpg需要在ngi...