从前端小白到大佬 盒子浮动

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>&gt;</span></a></li>
                    <li><a href="#">后端开发 <span>&gt;</span></a></li>
                    <li><a href="#">移动开发 <span>&gt;</span></a></li>
                    <li><a href="#">人工智能 <span>&gt;</span></a></li>
                    <li><a href="#">商业预测 <span>&gt;</span></a></li>
                    <li><a href="#">云计算&大数据 <span>&gt;</span></a></li>
                    <li><a href="#">从测试 <span>&gt;</span></a></li>
                    <li><a href="#">UI设计 <span>&gt;</span></a></li>
                    <li><a href="#">产品 <span>&gt;</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;
}
最终效果图:
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值