问题一:如何让三个div盒子放在同一行显示?
虽然转换为行内块元素可以实现在一行显示,但是他们之间会有大的空白缝隙。不知道缝隙大小,影响布局,这个问题又该如何拒绝。
问题二:如何让两个盒子实现一个左对齐,一个右对齐
总结: 有很多的布局效果标准流没有办法完成,此时就需要利用浮动
完成布局。因为浮动可以改变元素标签默认的排列方式
.
浮动最典型的应用: 可以让多个块级元素一行内排列显示。
float
属性用于创建浮动框,将其移动到一边,直到左边缘或右边缘触及包含块或另一个浮动框的边缘。
语法:
选择器{ float : 属性值; }
属性值 | 描述 |
---|---|
none | 元素不浮动(默认值) |
left | 元素向左浮动 |
right | 元素向右浮动 |
案例:
<style>
.first {
float: left;
width: 100px;
height: 100px;
background-color: pink;
}
.second {
float: right;
width: 100px;
height: 100px;
background-color: blue;
}
</style>
<body>
<div class="first"></div>
<div class="second"></div>
</body>
如果两个盒子都是添加左浮动float: left;
,则两个盒子会一起移到左边,第二个盒子紧贴着第一个盒子
如果第一个盒子左浮动float: left;
,第二个盒子右浮动float: left;
。则会各自贴着浮动框的左边缘和右边缘
1. 浮动元素会脱离标准流
(俗称脱标)
2. 浮动的元素会一行内显示并且元素顶部对齐
注意: 浮动的元素是互相贴靠在一起的(不会有缝隙) , 如果父级宽度装不下这些浮动的盒子,多出的盒子会另起一行对齐
3. 浮动的元素会具有行内块元素的特性.
span{
float: left;/*span 添加浮动之后可以设置宽和高*/
width: 50px;
height: 50px;
}
浮动和标准流的父盒子搭配。
先用标准流的父元素排列上下位置,之后内部子元素采取浮动排列左右位置。
一个元素浮动了,理论上其余的兄弟元素也要浮动
一个盒子里面有多个子盒子,如果其中一个盒子浮动了, 那么其他兄弟元素也应该浮动,以防引起脱标问题。
注意: 浮动的盒子只会影响浮动盒子后面的标准流不会影响前面的标准流
前面讲的浮动元素有一个标准流的父元素,都是有高度的。但是,所有的父盒子都必须有高度吗?
语法:选择器{ clear: 属性值; }
属性值 | 描述 |
---|---|
left | 清除左侧浮动的影响 |
right | 清除右侧浮动的影响 |
both | 同时清除左右两侧浮动的影响 |
清除浮动的策略是: 闭合浮动
额外标签法也称为隔墙法,是W3C推荐的做法。
额外标签法会在浮动元素末尾添加一个空的标签
。
例如<div style=" clear.both" > </div>
,或者其他标签(如<br/>等)
注意: 要求这个新的空标签必须是块级元素
父级添加overflow
属性
可以给父级添加overflow
属性,将其属性值设置为hidden、auto
或scroll
。注意是给父元素添加代码!
父级添加after伪元素
. clearfix:after {
content : "";
display: block;
height: 0;
clear: both;
visibility: hidden;
}
. clearfix { /* IE6、7专有*/
*zoom: 1;
}
after伪元素是在我们父盒子后面添加了一个新盒子,这个新盒子可以清除我们的浮动。在实际使用时,可以直接把以代码复制过去,然后哪个父盒子需要清除浮动,就给那个父盒子添加个类名clearfix,如<div class="clearfix"></div>
。
双伪元素
.clearfix:before,.clearfix:after {
content:"";
display: table;
}
.clearfix:after {
clear:both;
}
. clearfix {
*zoom:1;
.clearfix:before, .clearfix:after
是给父盒子前后各添加一个新盒子来清除浮动。实际使用时,可以直接把以代码复制过去,然后哪个父盒子需要清除浮动,就给那个父盒子添加个类名clearfix。
本文地址:https://blog.csdn.net/wutong_jun/article/details/107130115
如对本文有疑问, 点击进行留言回复!!
荐 css的3中水平居中方式和4中水平垂直居中方式及应用情形速记
网友评论