关于手机屏幕尺寸
参考文章:https://github.com/xiangpaopao/blog/issues/8
screen.width和screen.height表示手机的分辨率
window.outerWidth和window.outerHeight指浏览器外沿大小(而实际上在有些手机上的显示显然很不靠谱,有时比innerWidth和innerHeight还小)
window.innerWidth和window.innerHeight指浏览器的视口大小,即实际的网页显示范围
media query
如下代码
#test{
width:10px;
height:10px;
}
@media screen and (min-height: 521px) and (max-height: 530px){
#test{
background-color:green
}
}
@media screen and (min-height: 550px){
#test{
background-color:pink
}
}
当页面刚加载时,视口高度为521px,那么test会显示出绿色背景,当浏览器为全屏时,会显示出粉色背景。所以我们得出这样的结论:
media query会随着视口的改变去渲染网页,而不是只在页面加载时一次性决定网页样式。这一点其实在很多media query的demo中都有体现(http://www.webdesignerwall.com/demo/media-queries/)。
使用外联样式时如何根据媒体类型选择样式文件
这组样式是用于在PC上通过浏览器的尺寸改变来模拟移动端的表现。其意思就是屏幕宽度大于480px就用desktop.css,小于480px就使用andriod.css。
媒体类型
- all
所有媒体类型- braille
用于盲文触觉反馈装置- embossed
用于分页的盲人打印机- handheld
用于手持设备
用于打印机- projection
用于项目介绍,例如投影仪- screen
最早用于彩色计算机屏幕- speech
用于语音同步器。注:css2有一个常用媒体类型“aural”来实现这一目的- tty
用于定宽字符网格(如电报,终端或者显示兼容有限的便携设备)。在使用'tty'媒体类型时请勿使用'px'为单位。- tv
用于电视(低分辨率,彩色,滚动能力有限的屏幕,有声)
以上设备类型是大小写敏感的。
媒体类型分类
Media Types | continuous/paged | visual/audio/speech/tactile | grid/bitmap | interactive/static |
---|---|---|---|---|
braille | continuous | tactile | grid | both |
embossed | paged | tactile | grid | static |
handheld | both | visual, audio, speech | both | both |
paged | visual | bitmap | static | |
projection | paged | visual | bitmap | interactive |
screen | continuous | visual, audio | bitmap | both |
speech | continuous | speech | N/A | both |
tty | continuous | visual | grid | both |
tv | both | visual, audio | bitmap | both |
Media features | description | value | Applies to | Accepts min/max |
---|---|---|---|---|
width | 输出设备的目标显示区域的宽度 | length | visual and tactile | yes |
height | 输出设备的目标显示区域的高度 | length | visual and tactile | yes |
device-width | 输出设备的呈现面的宽度(对于连续媒体,就是屏幕的宽度;对于分页媒体,指页的宽度) | length | visual and tactile | yes |
device-height | 输出设备的呈现面的高度(对于连续媒体,就是屏幕的高度;对于分页媒体,指页的高度) | length | visual and tactile | yes |
orientation | 如果目标设备的高度大于宽度,那么就是portrait(肖像),否则就是landscape(风景画) | portrait/landscape | bitmap | no |
aspect-radio | 设备的宽高比(width/height) | ratio | bitmap | yes |
device-aspect-radio | 设备的呈现面宽高比(device-width/device-height) | ratio | bitmap | yes |
color | 输出设备每个彩色分量所占的位数 | integer | visual | yes |
color-index | 表示颜色查找表中的记录数,如果设备没有采用颜色查找表,则该值为0 | integer | visual | yes |
monochrome | 表示一个单色帧缓冲中每个像素的位数,如果设备不是单色设置,该值为0 | integer | visual | yes |
resolution | 输出设备的分辨率,例如像素的密度。如果查询非块状像素的设备,min-resolution中最小值需和指定值做比较,max-resolution也是一样。不含min-或max-前缀的resolution不能匹配任何非块状像素的设备。 | resolution | bitmap | yes |
scan | 表示电视的扫描过程 | progressive/interlace | tv | no |
grid | 表示网格还是位图,如果设备是基于网格的(如tty终端或者只显示固定字体的电话),该值为1,否则为0 | integer | visual and tactile | no |