-
Notifications
You must be signed in to change notification settings - Fork 5
移动端适配 #17
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Comments
REMAlloy Team 移动web适配利器-rem
哪些适合采用
|
VH,VW一、语法MDN css length 二、lib-flexible为啥不维护了?
大漠在再聊移动端页面的适配也说到:
v2.0的改变
// detect 0.5px supports
if (dpr >= 2) {
var fakeBody = document.createElement('body')
var testElement = document.createElement('div')
testElement.style.border = '.5px solid transparent'
fakeBody.appendChild(testElement)
docEl.appendChild(fakeBody)
if (testElement.offsetHeight === 1) {
docEl.classList.add('hairlines')
}
docEl.removeChild(fakeBody)
}
三、布局方式1. 直接使用
|
CSS实现长宽比的几种方案思路就是高度的计算要基于宽度。
需要恶补1. %单位计算方式.2. CSS 函数,变量
参考 |
CSS类型一、<length>长度类型用来衡量距离的
二、<percentage>百分比类型元素百分比不是长度的类型,而是单独的一种CSS数据类型,属于数字类型。
2.1 %的参考值
2.2 包含块(Contain Block)2.1中提到的
注意:
2.3 小结
参考 |
基本概念
一、三种视口(viewport)
1.1 可见视口
移动设备屏幕大小,能看见内容的区域。
1.2 布局视口
移动页面是从PC过渡过来的,移动端可见视口相对于PC可见视口是比较小的。PC页面放到移动端展示就会挤在一起了(如375px宽的屏幕肯定无法正常显示980px宽的PC页面),为了避免这种情况移动设备会用一个比较大的视图(一般980px)进行页面布局。这样布局视口的内容就不能完全展示了,要么进行左右滑动查看,要么缩小页面完全展示。浏览器选择了后者,即缩小布局视口展示在可见视口里(毕竟用户可以手动放大页面)。
在基于REM布局中html的font-size计算就是按照布局尺寸算的。
1.3 理想视口
就是可见视口。讲布局视口的宽度和可见视口宽度一致。本质上采用可见视口的宽度进行布局。
茴字的四种写法—移动适配方案的进化
二、像素
一直以为最小只能显示1px,但其实并不是这样的。
2.1 物理像素(设备像素,device pixel)
2.2 独立像素(设备独立像素,device independent pixels,简写dips)
CSS布局像素,即PX。CSS里的1px并不是物理像素的1像素,那还得看
独立像素比
。这里的
1像素
指的就是1 CSS px
,CSS里px
也是相对单位(相对于物理像素)。2.3 独立像素比(window.devicePixelRatio)dpr
CSS像素、物理像素、逻辑像素、设备像素比、PPI、Viewport
2.4 视网膜屏幕
一般指ddr > 1的屏幕
三、
0.5px
问题1px
是CSS最小的单位,并且各个屏幕看起开擦不多。但是理论上在dpr >1
的屏幕中可以展示更细的线条,也是大家经常说到的0.5px
线条或则Retina屏幕1px
问题。总体方式是:如果设备支持(限iOS 8及以上设备)更好,不支持再hack
hack实现
判断设备是否支持0.5px
目前只能利用JS,可以参考flexible 2.0
hack实现方式
viewport meta
+rem
有坑,flexible都放不用这个了。
伪类 + transform 的实现
只考虑了
drp=2
都case,严谨点可以利用媒体查询处理多种drp
都场景(当然了代码量不小)详细参考[前端]移动端Retina视网膜屏1px解决方案(H5))
参考
The text was updated successfully, but these errors were encountered: