CSS响应式布局(自适应布局)教程
要实现响应式布局,常用的方式有以下几种:
使用 CSS 中的媒体查询(最简单);
使用 JavaScript(使用成本比较高);
使用第三方开源框架(例如 bootstrap,可以很好的支持各种浏览器)。
接下来我们以媒体查询为例来具体演示一下响应式布局的实现。
设置 meta 标签
首先,我们需要设置 meta 标签来告诉浏览器,让视口(网页的可视区域)的宽度等于设备的宽度,并禁止用户对页面的缩放,如下所示:<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
在设置视口时需要注意,视口就是网页可见区域的尺寸,设置视口时只设置宽度就行,不用在乎高度,具体高度由网页内容自动撑开。上面 meta 标签中内容的含义如下:
viewport:即视口,表示网页的可视区域;
width:控制 viewport 的大小,可以指定一个具体的值,例如 600,也可以是由关键字组成的特殊值,例如 device-width 就表示设备的宽度;
initial-scale:表示初始缩放比例,也就是页面次加载时的缩放比例;
maximum-scale:表示允许用户缩放的比例,范围从 0 到 10.0;
minimum-scale:表示允许用户缩放到最小比例,范围从 0 到 10.0;
user-scalable:表示用户是否可以手动缩放,“yes”表示允许缩放,“no”表示禁止缩放。
媒体查询
CSS 媒体查询可以根据指定的条件,针对不同的媒体类型(screen print)定义不同的 CSS 样式,让使用不同设备的用户都能得到的体验。关于媒体查询有以下三种实现方式:
1、直接在 CSS 文件中使用,示例代码如下:
2、使用 @import 导入,示例代码如下:@media (max-width: 320px) {
/*0~320*/
body {
background: pink;
}
}
@media (min-width: 321px) and (max-width: 375px) {
/*321~768*/
body {
background: red;
}
}
@media (min-width: 376px) and (max-width: 425px) {
/*376~425*/
body {
background: yellow;
}
}
@media (min-width: 426px) and (max-width: 768px) {
/*426~768*/
body {
background: blue;
}
}
@media (min-width: 769px) {
/*769~+∞*/
body {
background: green;
}
}
3、在 link 标签中使用,示例代码如下:@import 'index01.css' screen and (max-width:1024px) and (min-width:720px)
@import 'index02.css' screen and (max-width:720px)
更多关于媒体查询的介绍大家可以查阅《CSS媒体查询》一节。<link rel="stylesheet" type="text/css" href="index01.css" media="screen and (max-width:1024px) and (min-width:720px)"/>
<link rel="stylesheet" type="text/css" href="index02.css" media="screen and (max-width:720px)"/>
下面通过一个综的示例来演示一下响应式布局的实现:
当浏览器窗口小于 1200 像素大于 980 像素时,页面的样式如下图所示:<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>响应式布局</title>
<meta name="viewport"content="width=device-width,initial-scale=1.0,maximum-scale=1,user-scalable=no" />
<style>
*{
margin: 0px;
padding: 0px;
font-family: "微软雅黑";
}
#head, #foot, #main
{
height: 100px;
width: 1200px;
/*width: 85%;*/
background-color: goldenrod;
text-align: center;
font-size: 48px;
line-height: 100px;
margin: 0 auto;
}
#head div{
display: none;
font-size: 20px;
height: 30px;
width: 100px;
background-color: green;
float: right;
line-height: 30px;
margin-top: 35px;
}
#head ul{
width: 80%;
}
#head ul li{
width: 20%;
float: left;
text-align: center;
list-style: none;font-size: 20px;
}
#main{
height: auto;
margin: 10px auto;
overflow: hidden;
}
.left, .center, .right{
height: 600px;
line-height: 600px;
float: left;
width: 20%;
background-color: red
}
.center{
width: 60%;
border-left: 10px solid #FFF;
border-right: 10px solid #FFF;
box-sizing: border-box;
}
@media only screen and (max-width: 1200px) {
#head, #foot, #main{
width: ;
}
}
@media only screen and (max-width: 980px) {
.right{
display: none;
}
.left{
width: 30%;
}
.center{
width: 70%;
border-right: hidden;
}
}
@media only screen and (max-width: 640px) {
.left, .center, .right{
width: ;
display: block;
height: 200px;
line-height: 200px;
}
.center{
border: hidden;
border-top: 10px solid #FFFFFF;
border-bottom: 10px solid #FFFFFF;
height: 600px;
line-height: 600px;
}
#head ul{
display: none;
}
#head div{
display: block;
}
}
</style>
</head>
<body>
<div>
<header id="head">
<ul>
<li>header1</li>
<li>header2</li>
<li>header2</li>
<li>header2</li>
<li>header2</li>
</ul>
<div>icon</div>
</header>
<section id="main">
<div class="left">
left
</div>
<div class="center">
center
</div>
<div class="right">
right
</div>
</section>
<footer id="foot">
footer
</footer>
</div>
</body>
</html>

当浏览器窗口大于 640 像素小于 980 像素时,页面的样式如下图所示:

当浏览器窗口小于 640 像素时,页面的样式如下图所示:

- 随机文章
- 马尔代夫立场(马尔代夫加强与印度关系,标志着新时代合作(41))
- 深圳 马尔代夫 特价(深圳出发,马尔代夫五星度假村特价优惠!)
- 合肥马尔代夫图片(合肥一处神奇之地,仿若身处马尔代夫)
- 北京直飞马尔代夫(北京直飞马尔代夫,轻松获享度假天堂)
- 马尔代夫高级图片(仙境般的马尔代夫——高清图片欣赏)
- 壁纸手机马尔代夫(马尔代夫海岛风景壁纸,专为手机打造)
- 广西马尔代夫国家(广西打造自然的马尔代夫风情旅游胜地)
- 滑道 马尔代夫(探秘马尔代夫深度旅游)
- 孟津马尔代夫地址(孟津旅游者的天堂:马尔代夫度假胜地)
- 淮安 马尔代夫(淮安市民游马尔代夫 畅游蓝天碧海)
- 打卡马尔代夫视频(用短视频带你畅游马尔代夫:攻略分享)
- 惠州马尔代夫天气(惠州今天气象状况类似马尔代夫的天气)
- 德宏 马尔代夫(德宏旅行者可在马尔代夫畅游 )
- 唐嫣 马尔代夫(唐嫣海边退役,马尔代夫浪漫逐梦)
- 惠州 马尔代夫(惠州新度假胜地-马尔代夫级别度假村)
- 汝州马尔代夫简介(探索中国版马尔代夫——汝州旅游指南)
- 江门马尔代夫温泉(江门独家代表处推出马尔代夫温泉产品)
- 李连杰到马尔代夫(李连杰访问马尔代夫:为旅游推广发声)
- 沙堆心中马尔代夫(沙堆的珊瑚海之旅:马尔代夫岛国探秘)
- 愿景 马尔代夫(探索天堂:马尔代夫的绝美风光)
- 环球美景马尔代夫(探寻印度洋珍宝:美轮美奂的马尔代夫)
- 杭州马尔代夫民宿(杭州有家超级浪漫的马尔代夫风情民宿)
- 爱在马尔代夫小说(爱情在马尔代夫:一段感人至深的旅程)
- 栾川 马尔代夫(栾川旅行社推出马尔代夫度假新产品)
- 咸阳马尔代夫烟花(咸阳市民游马尔代夫欣赏盛大烟花表演)
- 海航 马尔代夫(海航恢复马尔代夫航线,逐步恢复海外运营)
- 野外求生马尔代夫(马尔代夫野外求生:生存技能大揭秘!)
- 矿产 马尔代夫(马尔代夫发现新矿产资源)
- 马尔代夫什么好玩(探索马尔代夫:游玩必去的景点推荐!)
- 马尔代夫专辑视频(探寻马尔代夫之美:一段梦幻般的旅程)
