Float浮动(慕课网学习笔记)

float浮动

属性:值意义
float:left左浮动
float:right右浮动
float:none不浮动
float:inherit继承父元素浮动属性,若父元素没有浮动属性则失效

文字环绕图片实例

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>文字环绕图片</title>
	<style>
		.per{
			width: 500px;
			height: 500px;
			border: 1px solid #683232;
		}
		/*img{
			float: left;
		}*/
		img{
			float: right;
		}
	</style>
</head>
<body>
	<div class="per">
		<img src="https://www.imooc.com/static/img/index/logo.png" alt="网络不给力啊">
真正的才智是刚毅的志向。 —— 拿破仑
感情有着极大的鼓舞力量,因此,它是一切道德行为的重要前提,谁要是没有强烈的志向,也就不能够热烈地把这个志向体现于事业中。 —— 凯洛夫
勇敢坚毅真正之才智乃刚毅之志向。 —— 拿破仑
生活赋予我们一种巨大的和无限高贵的礼品,这就是青春:充满着力量,充满着期待志愿,充满着求知和斗争的志向,充满着希望信心和青春。 —— 奥斯特洛夫斯基
志向不过是记忆的奴隶,生气勃勃地降生,但却很难成长。 —— 莎士比亚
人所缺乏的不是才干而是志向,不是成功的能力而是勤劳的意志。 —— 部尔卫
当教师把每一个学生都理解为他是一个具有个人特点的、具有自己的志向、自己的智慧和性格结构的人的时候,这样的理解才能有助于教师去热爱儿童和尊重儿童。 —— 赞科夫
人的理想志向往往和他的能力成正比。 —— 约翰逊
	</div>
</body>
</html>

使用float属性的元素默认会变为块状元素
一旦给元素添加了浮动属性,该元素就会脱离标准流进行排布(设置另一个兄弟元素块会产生重叠) 例如下面绿色被盖住

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>脱离标准流进行排布</title>
	<style>
		#pre{
			width: 100px;
			height: 100px;
			background-color: #570000;
			float: left;
		}
		#pro{
			width: 200px;
			height: 200px;
			background-color: #1AFF00;
		}
	</style>
</head>
<body>
	<div id="pre"></div>
	<div id="pro"></div>
</body>
</html>

在这里插入图片描述
但是浮动元素依然占用文档流的文本空间,例如下面例子文字是完整的未被遮盖

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>脱离标准流进行排布</title>
	<style>
		#pre{
			width: 100px;
			height: 100px;
			background-color: #570000;
			float: left;
		}
		#pro{
			width: 200px;
			height: 200px;
			background-color: #1AFF00;
		}
	</style>
</head>
<body>
	<div id="pre"></div>
	<div id="pro">真正的才智是刚毅的志向。 —— 拿破仑 感情有着极大的鼓舞力量,因此,它是一切道德行为的重要前提,谁要是没有强烈的志向,也就不能够热烈地把这个志向体现于事业中。 —— 凯洛夫 </div>
</body>
</html>

在这里插入图片描述

清除浮动的四种解决方法

000出现的问题 例子 父元素是空的没有高度
在这里插入图片描述

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>float</title>
    <style>
        .per{
            width: 500px;
            /*height: 32px;*/
            border: 1px solid #000;
            
        }
        
        .test{
            width: 100px;
            height: 30px;
            background: red;
            border: 1px solid #FFF;
            float: left;
        }
    </style>
</head>
<body>
    <div class="per">
        <div class="test"></div>
        <div class="test"></div>
        <div class="test"></div>
        <div class="test"></div>          
    </div>
</body>
</html>

111手动给父元素添加高度

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>float</title>
    <style>
        .per{
            width: 500px;
            height: 32px;
            border: 1px solid #000;
            
        }
        
        .test{
            width: 100px;
            height: 30px;
            background: red;
            border: 1px solid #FFF;
            float: left;
        }
    </style>
</head>
<body>
    <div class="per">
        <div class="test"></div>
        <div class="test"></div>
        <div class="test"></div>
        <div class="test"></div>         
    </div>
</body>
</html>

在这里插入图片描述
通过clear清除内部和外部浮动

属性:值意义
clear:none
clear:left不允许元素左边有浮动对象
clear:right不允许右元素边有浮动对象
clear:both不允许有浮动对象
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>float</title>
    <style>
        .per{
            width: 500px;
            height: auto;
            border: 1px solid #000;
        }
        
        .test{
            width: 100px;
            height: 30px;
            float: left;
            background: red;
            border: 1px solid #FFF;
        }
        /*清除最后一个方块的左右浮动使之不受其他浮动影响撑开父元素*/
        .clear{
            clear: both;
        }
    </style>
</head>
<body>
    <div class="per">
        <div class="test"></div>
        <div class="test"></div>
        <div class="test"></div>
       <div class="test"></div>
        <div class="test"></div>
        <div class="test"></div>
       <div class="test"></div>
        <div class="test"></div>
        <div class="test"></div>           
        <div class="clear"></div>

    </div>
</body>
</html>

在这里插入图片描述
给父元素添加overflow属性并结合zoon:1使用
overflow修剪溢出的元素、、、zoom通过子元素的高度缩小放大父元素的高度

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>float</title>
    <style>
        .per{
            width: 500px;
            height: auto;
            border: 1px solid #000;
            /*overflow修剪溢出的元素*/
            overflow: hidden;
            /*zoom通过子元素的高度缩小放大父元素的高度*/
            zoom:1;
        }
        
        .test{
            width: 100px;
            height: 30px;
            background: red;
            border: 1px solid #FFF;
            float: left;
        }
    </style>
</head>
<body>
    <div class="per">
        <div class="test"></div>
        <div class="test"></div>
        <div class="test"></div>
    </div>
</body>
</html>

在这里插入图片描述

给父元素添加浮动

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>float</title>
    <style>
        /*父元素添加浮动自动把高度撑开,出现问题就是父元素的兄弟元素会被覆盖,,解决办法下方*/
        .per{
            width: 500px;
            height: auto;
            border: 1px solid #000;
            float: left;
        }
        .test{
            width: 100px;
            height: 30px;
            background: red;
            border: 1px solid #FFF;
            float: left;
        }
        /*给父元素的兄弟元素添加clear属性,清除浮动带来的影响*/
        .bro{
            width: 100px;
            height: 100px;
            background: blue;
            clear: both;
        }
    </style>
</head>
<body>
    <div class="per">
        <div class="test"></div>
        <div class="test"></div>
        <div class="test"></div>
    </div>
    <div class="bro"></div>
</body>
</html>

实例、利用浮动属性实现CSDN官网的导航效果

在这里插入图片描述
自己书写很多不足多多包涵,建议是看了这么多基础了自己写一个

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>实现CSDN官网的导航效果</title>
	<style>
		*{
			padding: 0px;
			margin: 0px;
		}
		.headder{
			background-color: #F5F5F5;
			border: 1px #C3C3C3 solid;
			height: 35px;
			width: 1100px;
			margin: auto;
			text-align: center;
		}
		.logo{
			margin-top: -12px;
			height: 47px;
			overflow: hidden;
			float: left;
		}
		.mid-li{
			margin: 5px;
			float: left;
		}
		.right-logo{
			background-size: 35px;
			background-image: url("https://avatar.csdn.net/A/8/5/2_qq_38723677.jpg");
			width: 35px;
			height: 35px;
			float: right;
		}
		.right-li{
			margin: 5px;
			float: right;
		}
	</style>
</head>
<body>
	<div class="headder">
		<div class="logo">
			<img src="https://avatar.csdn.net/A/C/B/3_guleileo.jpg">
		</div>
		<div class="mid">
			<div class="mid-li">博客</div>
			<div class="mid-li">学院</div>
			<div class="mid-li">下载</div>
			<div class="mid-li">图文课</div>
			<div class="mid-li">论坛</div>
			<div class="mid-li">APP</div>
			<div class="mid-li">问答</div>
			<div class="mid-li">商城</div>
			<div class="mid-li">活动</div>
			<div class="mid-li">招聘</div>
		</div>
		<div class="right">
			<div class="right-li">写博客</div>
			<div class="right-logo"></div>
			<div class="right-li">传资源</div>
			<div class="right-logo"></div>
		</div>
	</div>
</body>
</html>

在这里插入图片描述

posted @ 2018-10-22 21:26  莫逸风  阅读(61)  评论(0编辑  收藏  举报