博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用CSS3的@media来实现网页自适应
阅读量:6991 次
发布时间:2019-06-27

本文共 2229 字,大约阅读时间需要 7 分钟。

如今,电脑显示器的屏幕分辨率向越来越大发展,而手机等移动设备终端的分辨率却不可能大到哪里去。越来越多的网站,开始让自己的页面自适合各种分辨率,在小分辨率下显示基本的内容,在大分辨率下显示全部功能,甚至是分多等级的多版本。

作为web前端开发人员需要知道并且会用这种知识。

css2的@media

css2里面虽然支持@media属性,但是能实现的功能比较少,一般只用做打印的时候做特殊定义的CSS。

语法: @media sMedia { sRules }
说明:
sMedia :  指定设备名称。请参阅附录:设备类型
sRules :  样式表定义
指定样式表规则用于指定的设备类型。请参阅link对象的media属性(特性)。
示例:

1
2
3
4
5
6
7
8
9
// 设置显示器用字体尺寸
@media 
screen
{
BODY {
font-size
:
12pt
; }
}
// 设置打印机用字体尺寸
@media 
print
{
@import 
"print.css"
BODY {
font-size
:
8pt
;}
}

css3的@media

@media 属性在CSS3里面已经演变成一种 media queries(媒体查询/匹配)了,在CSS3里面,可以用查询语句来匹配各种类型的屏幕。

语法:@media : { sRules }
取值:

1
2
<sMedia>:指定设备名称。
{sRules}:样式表定义。

说明:

判断媒介(对象)类型来实现不同的展现。此特性让CSS可以更精确作用于不同的媒介类型,同一媒介的不同条件(分辨率、色数等等).

01
02
03
04
05
06
07
08
09
10
11
12
13
media_query: [only | not]?  [ and  ]*
expression: (  [: ]? )
media_type: 
all
aural
braille
handheld
print
projection
screen
tty
tv
embossed
media_feature: width | min-width | max-width
| height | min-height | max-height
| device-width | min-device-width | max-device-width
| device-height | min-device-height | max-device-height
| device-aspect-ratio | min-device-aspect-ratio | max-device-aspect-ratio
| color | min-color | max-color
| color-index | min-color-index | max-color-index
| monochrome | min-monochrome | max-monochrome
| resolution | min-resolution | max-resolution
| scan | grid

解析

media_query:媒体查询条件。包括了 only not and 这些经常在程序里面出现的逻辑判断。
expression:表达式。媒体特征的匹配与否。
media_type:媒体的种类。包括了很多。
media_feature:媒体的特征。常用的是 min-width max-width 最小最大宽度的判断。

(推荐在Chrome或者FIREFOX下打开,打开后,按快捷键“CTRL”+”+”,“CTRL”+”-”来缩放页面):

CSS代码

1
2
3
4
5
body{
background
:
blue
;}
/*宽度500px-800px之间+高度100px-400px之间 蓝色*/
@media 
screen
and (
max-width
:
500px
){body{
background
:
green
;}}
/*宽度小于500px时 绿色*/
@media 
screen
and (
min-width
:
800px
){body{
background
:
red
;}}
/*宽度大于800px时 红色*/
@media 
screen
and (
max-height
:
100px
){body{
background
:yellow;}}
/*高度小于100px时 黄色*/
@media 
screen
and (
min-height
:
400px
){body{
background
:pink;}}
/*高度大于400px时 粉色*/

HTML代码

1
2
3
4
5
6
<
p
>效果演示,请缩小/扩大浏览器的窗口大小注意背景色的变化。逻辑如下:</
p
>
<
p
>/*宽度500px-800px之间+高度100px-400px之间 蓝色*/</
p
>
<
p
>/*宽度小于500px时 绿色*/</
p
>
<
p
>/*宽度大于800px时 红色*/</
p
>
<
p
>/*高度小于100px时 黄色*/</
p
>
<
p
>/*高度大于400px时 粉色*/</
p
>

demo演示地址:

转载地址:http://jkbvl.baihongyu.com/

你可能感兴趣的文章
London2012同步时间新语
查看>>
Android如何获取多媒体文件信息
查看>>
端口列表详解
查看>>
ecshop 用户中心
查看>>
浅谈MySql的存储引擎(表类型)
查看>>
第三方控件DevExpress中ASPxNavBar1用法
查看>>
Spring.net、NHibernate相关文章导航
查看>>
Android中Application设置全局变量以及传值
查看>>
每日英语:The Rise Of The Female Investor
查看>>
黑马程序员-JAVA基础-基本数据类型对象包装类
查看>>
Gzip Zlib PNG 压缩算法,源码详解 - swo2006 - C++博客
查看>>
Console-算法[foreach,if]-一输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数...
查看>>
[原][问题解决]Openstck云平台虚拟机无法连接问题解决
查看>>
状态控件ios 中滑块、开关、分段控件、操作表和警告的常用函数
查看>>
分享非常漂亮的WPF界面框架源码及其实现原理
查看>>
如何获取ResultSet的行数和列数(转)
查看>>
绑定列ORA-24816: 在实际的 LONG 或 LOB 列之后提供了扩展的非 LONG 绑定数据
查看>>
Mobile Web调试工具Weinre
查看>>
Android巴士转发
查看>>
未能进入中断模式,原因如下:源文件“XXXXXX”不属于正在调试的项目。
查看>>