首页 > 代码库 > 第33章 项目实战-兼容式响应布局2

第33章 项目实战-兼容式响应布局2

第33 章项目实战-兼容响应式布局[2]
学习要点:
1.搜索响应式
2.底部响应式

本章主要开始如果将前两个项目再进行重构,设计成既可以在PC 端正常显示,又可以
在PAD 上浏览,还可以在移动端有良好的体验。这些都必须兼容,那只有使用响应式设计
了。
一.搜索响应式
在PC 端,我们将搜索的文本框和按钮至于大背景前,移动端我们直接放在了大图片的
下方。那么在响应式这里,我们还是遵循PC 端,只不过采用流体缩放外加响应式控制来兼
容显示。
//PC 端移植,并稍作修改
<div id="adver">
<img src="http://www.mamicode.com/img/adver.jpg" >
<div class="center"></div>
<div class="center copy">
<input type="text" class="search" placeholder="请输入旅游景点或
城市">
<button class="button">搜索</button>
</div>
</div>
//CSS 部分,基本是PC 端移植,并改为流体百分比
#adver {
max-width: 1920px;
margin: 0 auto;
padding: 70px 0 0 0;
position: relative;
}
#adver .center {
width: 40%;
height: 60px;
background-color: #000;
position: absolute;
top: 50%;
left: 50%;
margin: -10px 0 0 -20%;
opacity: 0.6;
border-radius: 10px;
}
#adver .copy {
opacity: 1;
background-color: transparent;
padding: 3px 3px 0 3px;
}
#adver .search {
width: 70%;
height: 52px;
background-color: #eee;
color: #666;
border: 1px solid #666;
border-radius: 10px;
font-size: 24px;
padding: 0 10px;
outline: none;
display: block;
float: left;
}
#adver .button {
width: 30%;
height: 54px;
background-color: #eee;
color: #666;
border: 1px solid #333;
border-left-width: 3px;
border-radius: 10px;
font-size: 24px;
outline: none;
cursor: pointer;
font-weight: bold;
display: block;
float: right;
}
//媒体查询部分
/*在992 和1199 像素之间的屏幕里,这里的样式才生效*/
@media (min-width: 992px) and (max-width: 1199px) {
#adver .center {
width: 50%;
margin: -10px 0 0 -25%;
}
}
/*在768 和991 像素之间的屏幕里,这里的样式才生效*/
@media (min-width: 768px) and (max-width: 991px) {
#adver .center {
width: 60%;
margin: -10px 0 0 -30%;
}
}
/*在480 和767 像素之间的屏幕里,这里的样式才生效*/
@media (min-width: 480px) and (max-width: 767px) {
#header, #header .center, #header .logo, #header .link {
height: 45px;
}
#header .link {
line-height: 45px;
}
#header .logo, .sm-hidden {
display: none;
}
#header .link {
width: 100%;
}
#adver {
padding: 45px 0 0 0;
}
#adver .center {
width: 70%;
margin: -10px 0 0 -35%;
}
#adver .search {
height: 45px;
font-size: 18px;
}
#adver .button {
height: 45px;
font-size: 18px;
}
#adver .center {
height: 53px;
}
.sm-visible {
display: block;
}
#footer .bottom {
height: 40px;
line-height: 40px;
}
}
/*在小于480 像素的屏幕,这里的样式才生效*/
@media (max-width: 479px) {
#header, #header .center, #header .logo, #header .link {
height: 45px;
}
#header .link {
line-height: 45px;
}
#header .logo, .xs-hidden, .sm-hidden {
display: none;
}
#header .link {
width: 100%;
}
#header .link li {
width: 25%;
}
#adver {
padding: 45px 0 0 0;
}
#adver .center {
width: 80%;
margin: -10px 0 0 -40%;
}
#adver .search {
height: 40px;
font-size: 16px;
}
#adver .button {
height: 40px;
font-size: 16px;
}
#adver .center {
height: 48px;
}
.sm-visible {
display: block;
}
#footer .bottom {
height: 40px;
line-height: 40px;
font-size: 13px;
}
}
二.底部响应式
底部的响应式很好理解,就是大屏幕采用PC 端,小屏幕采用移动端,进行响应式隐藏
即可。
//PC 端复制过来,进行部分修改
<footer id="footer">
<div class="top sm-hidden">
<div class="block left">
<h2>合作伙伴</h2>
<hr>
<ul>
<li>途牛旅游网</li>
<li>驴妈妈旅游网</li>
<li>携程旅游</li>
<li>中国青年旅行社</li>
</ul>
</div>
<div class="block center">
<h2>旅游FAQ</h2>
<hr>
<ul>
<li>旅游合同签订方式?</li>
<li>儿童价是基于什么制定的?</li>
<li>旅游的线路品质怎么界定的?</li>
<li>单房差是什么?</li>
<li>旅游保险有那些种类?</li>
</ul>
</div>
<div class="block right">
<h2>联系方式</h2>
<hr>
<ul>
<li>微博:weibo.com/ycku</li>
<li>邮件:ycku@ycku.com</li>
<li>地址:江苏盐城无名路123 号</li>
</ul>
</div>
</div>
<div class="clearfix"></div>
<div class="version sm-visible">
客户端| 触屏版| 电脑版
</div>
<div class="bottom">
Copyright © YCKU 瓢城旅行社| 苏ICP 备120110119 号<span
class="sm-hidden">| 旅行社经营许可证:L-YC-BK12345</span>
</div>
</footer>

 

代码:

<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>瓢城旅行社--响应式</title>
<link rel="stylesheet" href="http://www.mamicode.com/css/style.css">
</head>
<body>

<header id="header">
<div class="center">
<h1 class="logo">瓢城旅行社</h1>
<nav class="link">
<h2 class="none">网站导航</h2>
<ul>
<li class="active"><a href="http://www.mamicode.com/index.html">首页</a></li>
<li><a href="http://www.mamicode.com/information.html"><span class="xs-hidden">旅游</span>资讯</a></li>
<li><a href="http://www.mamicode.com/ticket.html">机票<span class="xs-hidden">订购</span></a></li>
<li class="xs-hidden"><a href="http://www.mamicode.com/scenery.html">风景欣赏</a></li>
<li><a href="http://www.mamicode.com/about.html"><span class="xs-hidden">关于</span>公司</a></li>
</ul>
</nav>
</div>
</header>

<div id="adver">
<img src="http://www.mamicode.com/img/adver.jpg" >
<div class="center"></div>
<div class="center copy">
<input type="text" class="search" placeholder="请输入旅游景点或城市">
<button class="button">搜索</button>
</div>
</div>

<footer id="footer">
<div class="top sm-hidden">
<div class="block left">
<h2>合作伙伴</h2>
<hr>
<ul>
<li>途牛旅游网</li>
<li>驴妈妈旅游网</li>
<li>携程旅游</li>
<li>中国青年旅行社</li>
</ul>
</div>
<div class="block center">
<h2>旅游FAQ</h2>
<hr>
<ul>
<li>旅游合同签订方式?</li>
<li>儿童价是基于什么制定的?</li>
<li>旅游的线路品质怎么界定的?</li>
<li>单房差是什么?</li>
<li>旅游保险有那些种类?</li>
</ul>
</div>
<div class="block right">
<h2>联系方式</h2>
<hr>
<ul>
<li>微博:weibo.com/ycku</li>
<li>邮件:ycku@ycku.com</li>
<li>地址:江苏盐城无名路123号</li>
</ul>
</div>
</div>
<div class="clearfix"></div>
<div class="version sm-visible">
客户端 | 触屏版 | 电脑版
</div>
<div class="bottom">
Copyright © YCKU 瓢城旅行社 | 苏ICP备120110119号<span class="sm-hidden"> | 旅行社经营许可证:L-YC-BK12345</span>
</div>
</footer>

</body>
</html>

 

@charset "utf-8";

body,h1,h2,h3,p,ul,ol,form,fieldset,figure {
margin: 0;
padding: 0;
}
div,figure,img,input,button {
box-sizing: border-box;
}
body {
background-color: #f5f5f5;
font-family: "Helvetica Neue", Helvetica, Arial, "Microsoft Yahei UI", "Microsoft YaHei", SimHei, "\5B8B\4F53", simsun, sans-serif;
}
img {
display: block;
max-width: 100%;
}
ul,ol {
list-style: outside none none;
}
a {
text-decoration: none;
}
.none {
display: none;
}
.sm-visible {
display: none;
}
.clearfix:after {
content:".";
height:0;
visibility:hidden;
display:block;
clear:both;
}
#header {
width: 100%;
height: 70px;
background-color: #333;
box-shadow: 0 1px 10px rgba(0, 0, 0, 0.3);
position: fixed;
top: 0;
z-index: 9999;
}
#header .center {
max-width: 1263px;
height: 70px;
margin: 0 auto;
}
#header .logo {
width: 30%;
height: 70px;
background: url(../img/logo.png) no-repeat left center;
text-indent: -9999px;
float: left;
}
#header .link {
width: 55%;
height: 70px;
line-height: 70px;
color: #eee;
float: right;
}
#header .link li {
width: 20%;
text-align: center;
float: left;
}
#header .link a {
color: #eee;
display: block;
}
#header .link a:hover,
#header .active a {
background-color: #000;
}
#adver {
max-width: 1920px;
margin: 0 auto;
padding: 70px 0 0 0;
position: relative;
}
#adver .center {
width: 40%;
height: 60px;
background-color: #000;
position: absolute;
top: 50%;
left: 50%;
margin: -10px 0 0 -20%;
opacity: 0.6;
border-radius: 10px;
}
#adver .copy {
opacity: 1;
background-color: transparent;
padding: 3px 3px 0 3px;
}
#adver .search {
width: 70%;
height: 52px;
background-color: #eee;
color: #666;
border: 1px solid #666;
border-radius: 10px;
font-size: 24px;
padding: 0 10px;
outline: none;
display: block;
float: left;
}
#adver .button {
width: 30%;
height: 54px;
background-color: #eee;
color: #666;
border: 1px solid #333;
border-left-width: 3px;
border-radius: 10px;
font-size: 24px;
outline: none;
cursor: pointer;
font-weight: bold;
display: block;
float: right;
}
#footer {
background-color: #222;
clear:both;
position: relative;
top: 20px;
}
#footer .top {
max-width: 1263px;
height: 280px;
margin: 0 auto;
text-align: center;
}
#footer .version {
color: #777;
text-align: center;
padding: 10px 0;
}
#footer .block {
width: 33.33%;
height: 320px;
display: inline-block;
color: #ccc;
text-align: left;
vertical-align: top;
display: block;
float: left;
}
#footer .bottom {
padding: 15px 0;
text-align: center;
color: #777;
background-color: #000;
border-top: 1px solid #444;
}
#footer h2 {
font-weight: normal;
padding: 20px 0 0 20px;
font-size: 24px;
}
#footer hr {
width: 90%;
border: 1px dashed #333;
}
#footer ul {
color: #666;
font-size: 18px;
text-indent: 20px;
line-height: 2;
}

 


/*媒体查询,参考部分Bootstrap 框架*/
/*当页面大于1200px 时,大屏幕,主要是PC 端*/
@media (min-width: 1200px) {

}
/*在992 和1199 像素之间的屏幕里,中等屏幕,分辨率低的PC*/
@media (min-width: 992px) and (max-width: 1199px) {
#adver .center {
width: 50%;
margin: -10px 0 0 -25%;
}
}
/*在768 和991 像素之间的屏幕里,小屏幕,主要是PAD*/
@media (min-width: 768px) and (max-width: 991px) {
#adver .center {
width: 60%;
margin: -10px 0 0 -30%;
}
#adver .search, #adver .button {
font-size: 20px;
}
}
/*在480 和767 像素之间的屏幕里,超小屏幕,主要是手机*/
@media (min-width: 480px) and (max-width: 767px) {
#header, #header .center, #header .link {
height: 45px;
}
#header .logo, .sm-hidden {
display: none;
}
#header .link {
width: 100%;
line-height: 45px;
}
#adver {
padding: 45px 0 0 0;
}
#adver .center {
width: 70%;
height: 53px;
margin: -10px 0 0 -35%;
}
#adver .search, #adver .button {
height: 45px;
font-size: 18px;
}
.sm-visible {
display: block;
}
}
/*在小于480 像素的屏幕,微小屏幕,更低分辨率的手机*/
@media (max-width: 479px) {
#header, #header .center, #header .link {
height: 45px;
}
#header .logo, .xs-hidden, .sm-hidden {
display: none;
}
#header .link {
width: 100%;
line-height: 45px;
}
#header .link li {
width: 25%;
}
#adver {
padding: 45px 0 0 0;
}
#adver .center {
width: 80%;
height: 48px;
margin: -10px 0 0 -40%;
}
#adver .search, #adver .button {
height: 40px;
font-size: 16px;
}
.sm-visible {
display: block;
}
#footer .bottom, #footer .version {
font-size: 13px;
}
}

 

第33章 项目实战-兼容式响应布局2