元素的浮动

1、浮动元素会脱离网页文档,与其他元素发生重叠但是,不会与文字内容发生重叠,如下面案例:

1) 通过元素的浮动,可以生成文字浮动的效果

 代码:

<style type="text/css">
	.d1{
		height: 200px;
		width: 200px;
		background-color: red;
		float: left;
	}
	.d2{
		height: 300px;
		width: 500px;
		background-color: skyblue;
	}
</style>
<p>文字环绕效果</p>
<div class="d1"></div>
<div class="d2">
	文字环绕文字环绕文字环绕文字环绕文字环绕文字环绕
	文字环绕文字环绕文字环绕文字环绕文字环绕文字环绕
	文字环绕文字环绕文字环绕文字环绕文字环绕文字环绕
</div>

2)横向排版布局

代码:

<style type="text/css">
	.d1{ width: 200px; background-color: red; }
	.d2{ width: 700px; background-color: skyblue; }
	.d3{ width: 200px; background-color: yellow; }
	.d1,.d2,.d3{ height: 200px; float: left; }
</style>

<p>横向排版</p>
<div class="d1"></div>
<div class="d2">
	文字环绕文字环绕文字环绕文字环绕文字环绕文字环绕
	文字环绕文字环绕文字环绕文字环绕文字环绕文字环绕
	文字环绕文字环绕文字环绕文字环绕文字环绕文字环绕
</div>
<div class="d3"></div>

2、当元素浮动时,解决重叠的方式,有以下几种:

1). clear:both,left,right;clear属性,清除浮动,左浮动,右浮动

例如:黑色区域的高度设置了300px,由于红黄蓝区域都设置了左浮动,遮盖了黑色区域

 代码:

<style type="text/css">
    .a{ width: 20%; background: red; }
	.b{ width: 60%; background: yellow; }
	.c{ width: 20%; background: blue; }
	.a,.b,.c{ float: left; height: 200px;}
	.d{ height: 300px; background: #000000;}
</style>

<div class="a"></div>
<div class="b"></div>
<div class="c"></div>
<div class="d"></div>

给d添加样式clear: left或者both clear表示清除浮动

.d { clear: left;}

效果: 2).给红黄蓝外侧加一个div,设置该div的高度

<style type="text/css">
    .out { height: 200px;}
</style>
<div class="out">
	<div class="a"></div>
	<div class="b"></div>
	<div class="c"></div>
</div>
<div class="d"></div>

 3).设置out盒子的overflow属性为auto,overflow:auto的含义是对于超出边界的元素,父元素可以自动调整高度

.out { overflow: auto;}

3、聊天小案例

效果:

 代码:

<style type="text/css">
	ul {
		width: 500px;
		margin: auto;
		background-color: #87CEEB;
		overflow: auto;
		padding: 0px;
	}
	li{
		margin: 5px 15px;
		height: 50px;
		line-height: 50px;
	}
	img {
		height: 50px;
		width: 50px;
		margin: 0px 10px;
	}
	.dog {
		float: left;
		clear: both;
	}
	.cat {
		float: right;
		clear: both;
	}
</style>
<!-- 聊天小案例 -->
<ul type="none">
	<li class="dog"><img src="img/dog.png" />你好!</li>
	<li class="cat">你好!吃饭了没?<img src="img/cat.png" /></li>
	<li class="dog"><img src="img/dog.png" />吃了,你呢?</li>
	<li class="cat">还没,好饿!<img src="img/cat.png" /></li>
	<li class="dog"><img src="img/dog.png" />狗粮你要不要?</li>
	<li class="cat">拿来吧你!<img src="img/cat.png" /></li>
	<li class="dog"><img src="img/dog.png" />哎嗨,不给!</li>
	<li class="cat">呸,你是真的狗<img src="img/cat.png" /></li>
	<li class="dog"><img src="img/dog.png" />我本来就是狗</li>
</ul>

4、浮动元素在排列时,只参考前一个元素的位置即可

总结:

1、浮动元素的重叠问题:

a.不会覆盖文字内容

b.不会覆盖图片内容

c.不会覆盖表单元素(输入框,单选按钮,复选框,按钮,下拉选择框)

2、解决覆盖问题

a.清除浮动clear: both/left/right

b.给浮动元素添加父元素,并设置父元素的高度

c.设置浮动元素的父元素的overflow为auto,让其父元素高度自动撑开

3、浮动元素排列问题

参考前一个浮动元素的位置

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值