1.前戏

在网页结构里有这么一条

<meta name="viewport" content="width=device-width, initial-scale=1.0">

content="width=device-width, initial-scale=1.0" 设置了网页初始宽度为设备的宽度,网页按一倍缩放显示。

2.媒体查询(media query)

CSS3 @media 查询

定义和使用

使用 @media 查询,你可以针对不同的媒体类型定义不同的样式。

@media 可以针对不同的屏幕尺寸设置不同的样式,特别是如果你需要设置设计响应式的页面,@media 是非常有用的。

当你重置浏览器大小的过程中,页面也会根据浏览器的宽度和高度重新渲染页面。

实例

如果文档宽度小于 300 像素则修改背景颜色(background-color):

@media screen and (max-width: 300px) {
    body {
	background-color:lightblue;
    }
}

设置规则来使用不同的 stylesheets

media="handle" 相当于 media="min-width : 500px" ,当达到最小宽度,这条规则就会被加载。

<link media="handle" rel="stylesheet" href="" />

其他

<link media="(orientation : landscape) and (min-width : 320px)" rel="stylesheet" href="" />
<link rel="stylesheet" media="mediatype and|not|only (media feature)" href="mystylesheet.css">

分析

为不同的设备载入不同的 css 来实现的?

3.用纯 css 实现一个显隐菜单的效果

代码

html 代码

<label for="check">菜单</label>
<input type="checkbox" id="check" />

css 代码

#checkbox:checked~p{
    display:none;
}

点击“菜单”后,label 的 for 把动作传给了后面 id 为 check 的 input,input 就被打上了勾。

再看 css 代码,用了“伪类”和“兄弟选择器”,让后面的内容隐藏了。

显示的话同理。

分析

利用单选框的状态来做菜单的开关。