media怎么写

1. iphone6 media怎么写 iphone6及iphone6plus已经出来一段时间了 。
很多移动端网站,以前写死body为320px的,现在估计也忙着做适配了 。大屏幕手机其实一直有,只是以前大家没怎么重视,移动端的H5页面大部分都以320px为基准宽度进行布局,那些大屏屌丝android用户也懒得去理,而现在iphone也搞起多屏幕,老板们重视程度就不一样了 。
回归正题,兼容iphone各版本机型最佳的方式就是自适应 。1、viewport简单粗暴的方式: <metaname="viewport"content="width=320,maximum-scale=1.3,user-scalable=no"> 直接设置viewport为320px的1.3倍,将页面放大1.3倍 。
为什么是1.3? 目前大部分页面都是以320px为基准的布局,而iphone6的宽度比是375/320=1.171875,iphone6+则是414/320=1.29375 那么以1.29倍也就约等于1.3了 。2、ip6+的CSSmediaquery @media(min-device-width:375px)and(max-device-width:667px)and(-webkit-min-device-pixel-ratio:2){ /*iphone6*/ } @media(min-device-width:414px)and(max-device-width:736px)and(-webkit-min-device-pixel-ratio:3){ /*iphone6plus*/ } PS:也可以直接使用实际的device-width:如device-width:375px 在原有页面的基础上,再针对相应的屏幕大小单独写样式做适配 。
3、REM布局 REM是CSS3新增的一种单位,并且移动端的支持度很高,android2.x+,ios5+都支持 。REM是相对于dom结构的根元素来设置大小,也就是html这个元素 。
相较于em单位,rem使用上更容易理解及运用 。REM与PX的换算可以查看网址:我们设置font-size:12px;也就是说12px相对于1rem,那么18px也就是18/12=1.5rem 。
那么我们以320px的设计布局为基准,将html设置为font-size:100px,即100px=1rem 。(设置100px是为了方便计算)那么可以将大部分px单位除以100就可以直接改成rem单位了 。
REM如何做响应式布局? 1、如果仅仅是适配ip6+设备,那么使用mediaquery就行 。伪代码如下: /*320px布局*/ html{font-size:100px;} body{font-size:0.14rem/*实际相当于14px*/} /*iphone6*/ @media(min-device-width:375px)and(max-device-width:667px)and(-webkit-min-device-pixel-ratio:2){ html{font-size:117.1875px;} } /*iphone6plus*/ @media(min-device-width:414px)and(max-device-width:736px)and(-webkit-min-device-pixel-ratio:3){ html{font-size:129.375px;} } 这样,在ip6下,也就将页面内的元素放大了1.17倍,ip6+下也就是放大了1.29倍 。
2、如果是完全自适应,那么可以通过JS来控制 。(function(doc,win){ vardocEl=doc.documentElement, resizeEvt='orientationchange'inwindow?'orientationchange':'resize', recalc=function(){ varclientWidth=docEl.clientWidth; if(!clientWidth)return; docEl.style.fontSize=100*(clientWidth/320)+'px'; }; //AbortifbrowserdoesnotsupportaddEventListener if(!doc.addEventListener)return; win.addEventListener(resizeEvt,recalc,false); doc.addEventListener('DOMContentLoaded',recalc,false); })(document,window); 页面初始化的时候计算font-size,然后再绑定resize事件 。
这种效果就和百分比布局一样了 。那么用REM做单位与百分比做单位有什么优势? 主要优势在于能更好的控制元素大小 。
(一般百分比应用在布局层,一般常见62616964757a686964616fe4b893e5b19e31333337623533设置为50%,33.3%,25%之类的整数居多,难以运用在复杂的页面小部件内) 。但是相比百分比布局,需要借助JS或mediaquery实现,略有一点瑕疵 。
DEMO地址 4、图片自适应 刚说完REM布局,那么用百分比布局也能实现一样的效果,但是用百分比布局,必须要面临一个问题:图片宽度100%,页面加载时会存在高度塌陷的问题 。. 那么可以用padding-top设置百分比值来实现自适应 。
公式如下: padding-top=(ImageHeight/ImageWidth)*100% 原理:padding-top值为百分比时,取值是是相对于宽度的 。相关代码实现: .cover{position:relative;padding-top:100%;height:0;overflow:hidden;} .coverimg{position:absolute;top:0;width:100%;} DEMO地址,缩放浏览器窗口看看 。