You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@media only screen and (min-device-width: 320px) and (max-device-width: 480px) {
/* CSS Styles */
}
(2)Smartphones (landscape)
@media only screen and (min-width : 321px) {
/* CSS Styles */
}
(3)Smartphones (portrait)
@media only screen and (max-width : 320px) {
/* CSS Styles */
}
(4)iPads (portrait and landscape)
@media only screen and (min-device-width : 768px) and (max-device-width : 1024px) {
/* CSS Styles */
}
(5)iPads (landscape)
@media only screen and (min-device-width : 768px) and (max-device-width : 1024px) and (orientation : landscape) {
/* CSS Styles */
}
(6)iPads (portrait)
@media only screen and (min-device-width : 768px) and (max-device-width : 1024px) and (orientation : portrait) {
/* CSS Styles */
}
(7)iPhone 4
@media only screen and (-webkit-min-device-pixel-ratio : 1.5),only screen and (min-device-pixel-ratio : 1.5) {
/* CSS Styles */
}
(8)Desktops and laptops
@media only screen and (min-width : 1224px) {
/* CSS Styles */
}
Javascript window.matchMedia方法
css3为我们提供了很强大的media query,而我们时常需要在js中动态的知道什么时候某个状态满足了。CSS Object Model(CSSOM)Views规范增加了对JavaScript操作CSS media query的原生支持,它在window对象下增加了matchMedia()方法。
MediaQueryList对象
你可以传入一个CSS media query然后返回一个MediaQueryList对象。这个对象包括两个属性:matches,布尔值数据,表示CSS media query是否与当前的显示状态匹配;media对应传入的参数字符串。如下:
var mediaQueryList = window.matchMedia("screen and (max-width:480px)");
console.log(mediaQueryList.media); //"screen and (max-width:480px)"
console.log(mediaQueryList.matches); //true or false
Media Type
先让我们一起来了解一下media type,在css2中就支持media type。平时我们在写代码时,可能不太在意,但你应该见到过如下写法:
Media Type 类型
实际上screen就是一种media type,目前media type有以下类型(摘自网上):
Media Type 常用用法
media type常用用法,除了放在link标签中,还可以有如下几种用法:
(1)放在link标签中
(2)放在style标签中
(3)写在style样式中
(4)写在import中
Media Query
media query是CSS 3对media type的增强,可将media query理解决为query条件的增强,可以对设备特性进行检验,那media query可以看作是 设备+特性+逻辑式 的结合。
Media Query设备特性
media type的设备类型media query均支持,同时它又增加了一些设备特性,如下表(摘自网上):
Media Query逻辑关键字
media query支持的逻辑关键字主要有:“only”“and”“not”和“,”。
Media Query常见形式
结合设备,设备特性及逻辑关键字,media query主要有以下几种形式
常见的Media Query表达式
用css3 media query可以很好的实现响应式设计,以下列出几种常见的表达式
(1)Smartphones (portrait and landscape)
(2)Smartphones (landscape)
(3)Smartphones (portrait)
(4)iPads (portrait and landscape)
(5)iPads (landscape)
(6)iPads (portrait)
(7)iPhone 4
(8)Desktops and laptops
Javascript window.matchMedia方法
css3为我们提供了很强大的media query,而我们时常需要在js中动态的知道什么时候某个状态满足了。CSS Object Model(CSSOM)Views规范增加了对JavaScript操作CSS media query的原生支持,它在window对象下增加了matchMedia()方法。
MediaQueryList对象
你可以传入一个CSS media query然后返回一个MediaQueryList对象。这个对象包括两个属性:matches,布尔值数据,表示CSS media query是否与当前的显示状态匹配;media对应传入的参数字符串。如下:
MediaQueryList对象监听器
当然为了有效监听这个变化,MediaQueryList对象还为我们提供了addListener和removeListener
当视图状态发生改变时,监听器对应的函数就会执行,而对应的MediaQueryList对象也会传入。用这个方式吗,你可以让你的JavaScript可以很快地响应布局变化,并且不需要用轮询的方式。另外关于media query的实现原理一直不太清楚,什么时候media query就生效的,比如说转屏,是否是只要当前屏幕width或height发生改变时就去查询media query估计就待看看webkit源码才能清楚了。
The text was updated successfully, but these errors were encountered: