打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
使用@media screen解决移动web开发的多分辨率问题(手机、pad等多分辨率适配)以及图片等比缩放的自适应思路

1.@media screen 

     当今移动设备的发展已经越来越迅速,移动web开发的需求也越来越多多。许多大平台、大门户都纷纷推出了自己的移动web版网站。

随着移动设备飞速的发展,移动产品的屏幕规格越来越多。从几年前的320×240像素的屏幕,到现在1920×1080分辨率的屏幕。各种分辨率的屏幕让前端开发的人们叫苦连连,如何使用一种有效的方式来解决各种屏幕分辨率下的用户体验呢?

在css2中就有media type属性,用于判断媒体类型。而在css3中新增了 media query属性用于增强media type属性。因此当css3问世后,这个问题有了新的解决办法。media query属性的是media type属性的增强功能,使media type可以进行条件判断输出对应的css。

media query的使用方法

一、判断媒体类型,引用不同的样式表

<link rel=”stylesheet” media=”screen and (判断条件)”herf=”需要调用的样式表文件” />

     通过设定屏幕的判断条件,调用对应的css文件。该实例多用于整页面不同风格的css调用与选取,使用该方法可能需要为一个页面制作多份个css文件。

二、判断媒体类型,执行不同的css样式属性
@media screen and (max-width:240px){

.box{width:200px;}

.title{color:red;}

}

     上述实例可以出现在外部样式表与内部样式表中。直接在样式表中以@media screen属性标注媒体类型的判断事件,在括号中写出判断条件为max-width:240px;该判断的意思是屏幕宽度小于240px则执行大括号内的样式属性,如果大于240px则不执行。

 转载自本文固定链接: http://www.frontopen.com/1221.html

2.图片等比缩放的自适应思路

       如果网页背景是图片的话上面一种方法的适配思路是:宽度设为100%,针对不同的常用的分辨率区间设置不同的固定高度。这样高度固定下来了,页面上的其他元素就可以布局了。但这样做的缺点是,对于一些分辨率的手机,图片会被拉伸或被压缩有时甚至会比较严重。但是要对所有分辨率的手机进行分配显然比较繁杂。
      而下面这种图片等比缩放的适配思路则解决了上面的问题。图片等比缩放的适配思路:缩放的图片的宽度与浏览器宽度一致,高度以及其他元素的位置都进行等比例缩放。
i.获取浏览器窗口宽和高(主要body要{margin:0;padding:0;}否则获取的会不准确);
ii.求出背景图片的宽高比;
iii.算出等比缩放的图片的新高度=浏览器的宽度(即新图宽)/原图片的宽高比;
iiii.算出背景图片的宽和浏览器宽的比以及高的百分比;
v.其他按钮等的定位,即可采用原图大小除以iiii中对应的宽高比即可。

       以上步骤均可在JavaScript进行动态的处理,如下例:
  1. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
  2. <meta name="viewport" content="width=device-width, initial-scale=1" />  
  3. <script type="text/javascript" src="source/plugin/ks_xhxw/static/script/jquery-1.7.1.min.js"></script>  
  4. <title>example首页</title>  
  5. <style>  
  6.     body {  
  7.         margin: 0;  
  8.         padding: 0;  
  9.         overflow: scroll;  
  10.         background-color: #fd3b36;  
  11.     }  
  12.     #mainpage {  
  13.     background-image: url(example/image/home.png);  
  14.         background-repeat: no-repeat;  
  15.         color:#fef6d8;  
  16.     }  
  17.     img {  
  18.         -webkit-tap-highlight-color:rgba(255,255,255,0);  
  19.     }  
  20.     #img:hover {  
  21.         background-image: url(example/image/home_button_click.png);  
  22.         background-repeat: no-repeat;  
  23.     }  
  24. </style>  
  25. <title>首页</title>  
  26. <body>  
  27. <div id="mainpage">  
  28.     <div id="content">祝福新年</div>  
  29.      <div id="btn">  
  30.         <img id="img" border="0" src="example/image/home_button.png"/>  
  31.     </div>  
  32. </div>  
  33. <script>  
  34. var sw = $(window).width();  
  35. var sh = $(window).height();  
  36. var pw = 640;  
  37. var ph = 1006;  
  38. var percent = pw/ph;  
  39. var percentw = pw/sw;  
  40. var newh = sw/percent; // 新高度 background-size: 100% newh;  
  41. var percenth = ph/newh;  
  42. $('#mainpage')  
  43.     .css('width', sw + 'px')  
  44.     .css('height', newh + 'px')  
  45.     .css('background-size', '100% ' + newh + 'px');  
  46. var contenttop = 440/percenth;  
  47. var contentleft = 48/percentw;  
  48. var contentfont = 26/percenth;  
  49. contentfont = Math.floor(contentfont);  
  50. var contentlineh = 38/percenth;  
  51. $('#content')  
  52.     .css('padding-top', contenttop + 'px')  
  53.     .css('padding-left',contentleft+'px')  
  54.     .css('padding-right',contentleft+'px')  
  55.     .css('line-height',contentlineh+'px')  
  56.     .css('vertical-align','top')  
  57.     .css('font-size',contentfont+'px');  
  58. var btntop = 64/percenth;  
  59. var btnleft = 140/percentw;  
  60. var btnpw = 366/percentw;  
  61. var btnph = 96/percenth;  
  62. $('#btn')  
  63.     .css('padding-top', btntop + 'px')  
  64.     .css('padding-left',btnleft+'px');  
  65. $('#img')  
  66.     .css('width', btnpw+'px ')  
  67.     .css('height',btnph + 'px');  
  68.   
  69. $('#img').hover(function() {  
  70.     $('#img').css('background-size', btnpw + 'px ' + btnph + 'px');  
  71. });  
  72. </script>  
  73. </body>  






本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
利用@media screen实现网页布局的自适应 | 小蝴蝶
css3 media媒体查询器用法总结
CSS3使用vw实现自适应
不使用Media Queries的自适应CSS
运用@media实现网页自适应中的几个关键分辨率
html5/css3响应式布局介绍及设计流程
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服