CSS浮动
1.浮动
2.常见网页布局
3.清除浮动
4.案例-学成在线网页局部
1.浮动
float属性用于创建浮动框,将其移动到一遍,知道左边缘或者右边缘触及包含块或另一个浮动框的边缘。
float:none/left/right
-浮动元素会脱离标准流移动到指定的位置,原先的位置不在了,简称脱标
-只上沿对齐
-会根据窗口的大小自动调整位置
-具有行内块的特性
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>第一个网站</title>
<style>
div {
height: 200px;
width: 200px;
background-color: burlywood;
margin: 100px auto;
}
.r {
float: left;
}
.l {
float: right;
}
</style>
</head>
<body>
<div class="r"></div>
<div class="l"></div>
</body>
</html>
例二:
善于利用外边距进行盒子的间距调整。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>第一个网站</title>
<style>
* {
margin: 0;
padding: 0;
}
.bigbox {
width: 1226px;
height: 615px;
background-color: burlywood;
margin: 100px auto;
}
.bigbox .left {
float: left;
width: 234px;
height: 615px;
background-color: cadetblue;
}
.bigbox .right {
float: left;
width: 992px;
height: 615px;
background-color: crimson;
}
li {
list-style: none;
}
.bigbox .right ul li {
float: left;
width: 234px;
height: 300px;
background-color: rgb(212, 201, 201);
margin-left: 14px;
margin-bottom: 14px;
}
</style>
</head>
<body>
<div class="bigbox">
<div class="left"></div>
<div class="right">
<ul>
<li>盒子</li>
<li>盒子</li>
<li>盒子</li>
<li>盒子</li>
<li>盒子</li>
<li>盒子</li>
<li>盒子</li>
<li>盒子</li>
</ul>
</div>
</div>
</body>
</html>
效果:
2.常见网页布局
①标准流
②浮动加标准流
③浮动盒子
3.清除浮动
由于加了浮动之后会导致原来的元素脱标,造成很多不必要的影响,所以有必要清除浮动。
①清楚浮动的本质是清除浮动元素造成的影响
②如果父盒子本身有高度,则不需要清楚浮动
③清除浮动之后,父级就会根据盒子的子盒子自动检测高度,就不会影响下面的标准流了。
选择器 {
clear:left/right/both;
}
left 清楚左侧浮动的影响
right 清除右侧浮动的影响
both 清除左右两侧浮动的元素
清除浮动的方法
①.父级添加overflow属性
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>第一个网站</title>
<style>
* {
margin: 0;
padding: 0;
}
.bigbox {
/* !!!!!!!!!!!这里 */
overflow: hidden;
width: 1000px;
background-color: burlywood;
border: 2px solid black;
margin: 100px auto;
}
.bigbox .left {
float: left;
width: 200px;
height: 100px;
background-color: cadetblue;
}
.bigbox .right {
float: left;
width: 200px;
height: 100px;
background-color: crimson;
}
</style>
</head>
<body>
<div class="bigbox">
<div class="left"></div>
<div class="right"> </div>
</div>
</body>
</html>
②,父级添加after伪元素
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>第一个网站</title>
<style>
* {
margin: 0;
padding: 0;
}
.clearfix:after {
content: "";
display: block;
height: 0;
clear: both;
visibility: hidden;
}
.clearfix {
*zoom: 1;
}
.bigbox {
width: 1000px;
background-color: burlywood;
border: 2px solid black;
margin: 100px auto;
}
.bigbox .left {
float: left;
width: 200px;
height: 100px;
background-color: cadetblue;
}
.bigbox .right {
float: left;
width: 200px;
height: 100px;
background-color: crimson;
}
</style>
</head>
<body>
<div class="bigbox clearfix">
<div class="left"></div>
<div class="right"> </div>
</div>
</body>
</html>
③父级添加双伪元素
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>第一个网站</title>
<style>
* {
margin: 0;
padding: 0;
}
.clearfix:before,
.clearfix:after {
content: "";
display: table;
}
.clearfix:after {
clear: both;
}
.clearfix {
*zoom: 1;
}
.bigbox {
width: 1000px;
background-color: burlywood;
border: 2px solid black;
margin: 100px auto;
}
.bigbox .left {
float: left;
width: 200px;
height: 100px;
background-color: cadetblue;
}
.bigbox .right {
float: left;
width: 200px;
height: 100px;
background-color: crimson;
}
</style>
</head>
<body>
<div class="bigbox clearfix">
<div class="left"></div>
<div class="right"> </div>
</div>
</body>
</html>
④隔墙法(额外标签法),w3c推荐使用,新加的元素必须是块级元素
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>第一个网站</title>
<style>
* {
margin: 0;
padding: 0;
}
.bigbox {
width: 1000px;
background-color: burlywood;
border: 2px solid black;
margin: 100px auto;
}
.bigbox .left {
float: left;
width: 200px;
height: 100px;
background-color: cadetblue;
}
.bigbox .right {
float: left;
width: 200px;
height: 100px;
background-color: crimson;
}
.geqiang {
clear: both;
}
</style>
</head>
<body>
<div class="bigbox">
<div class="left"></div>
<div class="right"> </div>
<div class="geqiang"></div>
</div>
四种方法都能使得父级的盒子随着(浮动的)子盒子的数量伸缩。
4.案例-学成在线网页局部
网页局部.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>网页局部</title>
<link rel="stylesheet" href="网页局部.css">
</head>
<body>
<!-- 导航栏 -->
<div class="header w">
<div class="logo">
<img src="imgs/logo_03.png">
</div>
<div class="nav">
<ul>
<li><a href="#">首页</a></li>
<li><a href="#">课程</a></li>
<li><a href="#">职业规划</a></li>
</ul>
</div>
<div class="search">
<input type="text" value="输入关键词语">
<button></button>
</div>
<div class="user">
<img src="imgs/user.png"> qq-lilei
</div>
</div>
<!-- 广告栏 -->
<div class="banner">
<div class="w">
<div class="left">
<ul>
<li><a href="#">前端开发 <span>></span></a></li>
<li><a href="#">后端开发 <span>></span></a></li>
<li><a href="#">移动开发 <span>></span></a></li>
<li><a href="#">人工智能 <span>></span></a></li>
<li><a href="#">商业预测 <span>></span></a></li>
<li><a href="#">云计算&大数据 <span>></span></a></li>
<li><a href="#">从测试 <span>></span></a></li>
<li><a href="#">UI设计 <span>></span></a></li>
<li><a href="#">产品 <span>></span></a></li>
</ul>
</div>
<div class="right">
<h2>我的课程</h2>
<div class="bd">
<ul>
<li>
<h4>继续学习 程序语言设计</h4>
<p>正在学习-对象</p>
</li>
<li>
<h4>继续学习 程序语言设计</h4>
<p>正在学习-对象</p>
</li>
<li>
<h4>继续学习 程序语言设计</h4>
<p>正在学习-对象</p>
</li>
</ul>
<a href="#">全部课程</a>
</div>
</div>
</div>
</div>
<!-- 精品推荐栏 -->
<div class="goods w">
<h3>精品推荐</h3>
<ul>
<li><a href="#">css3</a></li>
<li><a href="#">html</a></li>
<li><a href="#">jave</a></li>
<li><a href="#">C#</a></li>
<li><a href="#">jQuery</a></li>
</ul>
<a href="#">修改兴趣</a>
</div>
<!-- 精品推荐盒子 -->
<div class="box w">
<div class="header">
<h3>精品推荐</h3>
<a href="#">查看全部</a>
</div>
<div class="body">
<ul class="clearfix">
<li>
<img src="imgs/pic.png">
<h4>Think PHP 5.0 博客系统实战项目演练</h4>
<p><span>高级</span> · 1225人学习</p>
</li>
<li>
<img src="imgs/pic.png">
<h4>Think PHP 5.0 博客系统实战项目演练</h4>
<p><span>高级</span> · 1225人学习</p>
</li>
<li>
<img src="imgs/pic.png">
<h4>Think PHP 5.0 博客系统实战项目演练</h4>
<p><span>高级</span> · 1225人学习</p>
</li>
<li>
<img src="imgs/pic.png">
<h4>Think PHP 5.0 博客系统实战项目演练</h4>
<p><span>高级</span> · 1225人学习</p>
</li>
<li>
<img src="imgs/pic.png">
<h4>Think PHP 5.0 博客系统实战项目演练</h4>
<p><span>高级</span> · 1225人学习</p>
</li>
<li>
<img src="imgs/pic.png">
<h4>Think PHP 5.0 博客系统实战项目演练</h4>
<p><span>高级</span> · 1225人学习</p>
</li>
<li>
<img src="imgs/pic.png">
<h4>Think PHP 5.0 博客系统实战项目演练</h4>
<p><span>高级</span> · 1225人学习</p>
</li>
<li>
<img src="imgs/pic.png">
<h4>Think PHP 5.0 博客系统实战项目演练</h4>
<p><span>高级</span> · 1225人学习</p>
</li>
<li>
<img src="imgs/pic.png">
<h4>Think PHP 5.0 博客系统实战项目演练</h4>
<p><span>高级</span> · 1225人学习</p>
</li>
<li>
<img src="imgs/pic.png">
<h4>Think PHP 5.0 博客系统实战项目演练</h4>
<p><span>高级</span> · 1225人学习</p>
</li>
</ul>
</div>
</div>
<!-- 底部 -->
<div class="footer">
<div class="w">
<div class="left">
<img src="imgs/logo_03.png">
<p>这是学成在线的官方网站,我觉得很好看,就用来跟着做练习,希望能够得到官方大大的原谅。
<br>谢谢大大!
<br> 当然如果大大不允许可以联系及时删掉,再次感谢。
</p>
<a href="#">点击下载</a>
</div>
<div class="right">
<dl>
<dt>关于学成网</dt>
<dd><a href="#">关于</a></dd>
<dd><a href="#">管理团队</a></dd>
<dd><a href="#">工作机会</a></dd>
<dd><a href="#">客户服务</a></dd>
<dd><a href="#">帮助</a></dd>
</dl>
<dl>
<dt>关于学成网</dt>
<dd><a href="#">关于</a></dd>
<dd><a href="#">管理团队</a></dd>
<dd><a href="#">工作机会</a></dd>
<dd><a href="#">客户服务</a></dd>
<dd><a href="#">帮助</a></dd>
</dl>
<dl>
<dt>关于学成网</dt>
<dd><a href="#">关于</a></dd>
<dd><a href="#">管理团队</a></dd>
<dd><a href="#">工作机会</a></dd>
<dd><a href="#">客户服务</a></dd>
<dd><a href="#">帮助</a></dd>
</dl>
</div>
</div>
</div>
</body>
</html>
网页局部.css
- {
padding: 0;
margin: 0;
}
li {
list-style: none;
}
.w {
width: 1200px;
margin: auto;
}
a {
text-decoration: none;
}
body {
background-color: #f3f5f7;
}
/* 清除浮动 是给浮动的父盒子加清楚浮动代码*/
.clearfix:before,
.clearfix:after {
content: “”;
display: table;
}
.clearfix:after {
clear: both;
}
.clearfix {
zoom: 1;
}
/ 导航栏 */
.header {
height: 42px;
margin: 30px auto;
}
.logo {
float: left;
height: 42px;
width: 198px;
}
.nav {
float: left;
margin-left: 60px;
}
.nav li {
float: left;
margin: 0 15px;
}
.nav li a {
line-height: 42px;
padding: 0 10px;
font-size: 18px;
color: #050505;
}
.nav li a:hover {
border-bottom: 2px solid #00a4ff;
}
.search {
float: left;
width: 412px;
height: 42px;
background-color: blueviolet;
margin-left: 80px;
}
.search input {
float: left;
width: 345px;
height: 40px;
border: 1px solid #00a4ff;
/* border-right: 0; */
color: #bfbfbf;
font-size: 14px;
padding-left: 15px;
}
.search button {
float: left;
height: 42px;
width: 50px;
border: 0;
background-image: url(imgs/btn.png);
}
.user {
float: right;
line-height: 42px;
margin-right: 30px;
font-size: 14px;
color: #666666;
}
/* 广告栏 */
.banner {
height: 421px;
background-color: #1c036c;
}
.banner .w {
height: 421px;
background-image: url(imgs/b.png);
}
.banner .w .left {
float: left;
width: 190px;
height: 421px;
background: rgba(0, 0, 0, 0.3);
}
.banner .w .left ul li {
line-height: 46px;
margin: 0 20px;
}
.banner .w .left ul li a {
color: #ffffff;
font-size: 14px;
}
.banner .w .left ul li span {
float: right;
}
.banner .w .left ul li a:hover {
color: #00a4ff;
}
.banner .w .right {
float: right;
height: 300px;
width: 230px;
background-color: #ffffff;
margin: 50px;
}
.banner .w .right h2 {
height: 50px;
background-color: #00a4ff;
font-size: 18px;
color: #ffffff;
text-align: center;
line-height: 50px;
}
.banner .w .right .bd {
margin: 0 20px;
}
.banner .w .right li {
padding: 12px 0;
border-bottom: 1px solid #ccc;
}
.banner .w .right li h4 {
font-size: 16px;
color: #4e4e4e;
}
.banner .w .right li p {
font: 12px;
color: #a5a5a5;
}
.banner .w .right .bd>a {
display: block;
height: 38px;
margin-top: 4px;
text-align: center;
border: 1px solid #00a4ff;
line-height: 38px;
color: #00a4ff;
font-size: 16px;
font-weight: 700;
}
/* 精品推荐栏 */
.goods {
height: 60px;
background-color: #ffffff;
margin-top: 10px;
line-height: 60px;
box-shadow: 0 1px 3px 3px rgba(0, 0, 0, 0.1);
}
.goods h3 {
float: left;
margin: 0 30px;
font-size: 16px;
color: #00a4ff;
}
.goods ul li {
float: left;
}
.goods ul li a {
padding: 0 30px;
border-left: 1px solid #ccc;
color: #050505;
font-size: 15px;
}
.goods ul li a:hover {
color: #00a4ff;
}
.goods>a {
float: right;
margin: 0 30px;
font-size: 14px;
color: #00a4ff;
}
/* 精品推荐盒子 */
.box {
margin-top: 30px;
}
.box .header {
height: 25px;
line-height: 25px;
}
.box h3 {
float: left;
font-size: 20px;
color: #494949;
}
.box a {
float: right;
font-size: 12px;
color: #a5a5a5;
margin-right: 20px;
}
.box .body ul {
width: 1225px;
}
.box .body ul li {
float: left;
width: 228px;
height: 270px;
background-color: #ffffff;
margin-right: 15px;
margin-bottom: 15px;
}
.box .body ul li img {
width: 100%;
}
.box .body ul li h4 {
margin: 20px 20px 20px 25px;
font-size: 14px;
font-weight: 400;
color: #050505;
}
.box .body ul li p {
margin: 0 20px 0 25px;
font-size: 12px;
color: #999999;
}
.box .body ul li p span {
color: #ff7c2d;
}
.box .body ul li:hover {
box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.1);
}
/* 底部 */
.footer {
height: 415px;
background-color: #ffffff;
}
.footer .w {
padding-top: 35px;
}
.footer .left {
margin-left: 15px;
float: left;
}
.footer .left p {
font-size: 12px;
color: #666666;
margin-top: 20px;
}
.footer .left a {
display: block;
width: 118px;
height: 33px;
margin-top: 15px;
text-align: center;
color: #00a4ff;
border: 1px solid #00a4ff;
font-size: 16px;
line-height: 33px;
}
.footer .right {
float: right;
}
.footer .right dl {
float: right;
margin-left: 100px;
}
.footer .right dl dt {
font-size: 16px;
color: #333333;
margin-bottom: 5px;
}
.footer .right dl dd a {
font-size: 12px;
color: #333333;
}
.footer .right dl dd a:hover {
color: #00a4ff;
}
最终效果图: