CSS浮动
目标
- 能够说出为什么需要浮动
- 能够说出浮动的排列特性
- 能够说出3种最常见的布局方式
- 能够说出为什么需要清除浮动
- 能够写出至少2种清除浮动的方法
- 能够完成学成在线的页面布局
浮动(float)
标准流(普通流/文档流)
所谓的标准流:就是标签按照规定好默认方式排列.
- 块级元素会独占一行,从上向下顺序排列。
常用元素:div、hr、p、h1~h6、ul、ol、dl、form、table
- 行内元素会按照顺序,从左到右顺序排列,碰到父元素边缘则自动换行。
常用元素: span、a、i、em等
标准流是基本的网页布局模式
注意∶实际开发中,一个页面基本都包含了这三种布局方式(标准、浮动、定位)。后面移动端学习新的布局方式)
为什么需要浮动
浮动最典型的应用:可以让多个块级元素一行内排列显示。
网页布局第一准则:多个块级元素纵向排列找标准流,多个块级元素横向排列找浮动。
什么是浮动
float
属性用于创建浮动框,将其移动到一边,直到左边缘或右边缘触及包含块或另一个浮动框的边缘。
选择器 {
float:属性值;
}
值 | 属性 |
---|---|
none | 不设置浮动 |
left | 向左移动,直到边缘触及包含块或另一个浮动框的边缘。 |
right | 向右移动,直到边缘触及包含块或另一个浮动框的边缘。 |
浮动特性
- 浮动元素会脱离标准流(脱标)
- 脱离标准流的控制,移动到指定位置,俗称
脱标
- 浮动的盒子原来的位置不会保留
- 脱离标准流的控制,移动到指定位置,俗称
- 浮动的元素会一行内显示并且元素顶部对齐
- 如果多个盒子都设置了浮动,则它们会按照属性值一行内显示并且顶端对齐排列。
注意∶浮动的元素是互相贴靠在一起的(不会有缝隙),如果父级宽度装不下这些浮动的盒子,多出的盒子会另起一行对齐。
- 浮动的元素会具有行内块元素的特性
- 任何元素都可以浮动。不管原先是什么模式的元素,添加浮动之后具有行内块元素相似的特性.
- 如果块级盒子没有设置宽度,默认宽度和父级一样宽,但是添加浮动后,它的大小根据内容来决定
浮动元素经常和标准流父级搭配使用
为了约束浮动元素位置,我们网页布局一般采取的策略是:
先用标准流的父元素排列上下位置,之后内部子元素采取浮动排列左右位置。符合网页布局第一准侧
常见网页布局
浮动布局注意点
- 浮动和标准流的父盒子搭配。
先用标准流的父元素排列上下位置,之后内部子元素采取浮动排列左右位置 - 一个元素浮动了,理论上其余的兄弟元素也要浮动。
理想状态,父盒子自动被子盒子撑开
清除浮动
为什么清除浮动
由于父级盒子很多情况下,不方便给高度,但是子盒子浮动又不占有位置,最后父级盒子高度为0时,就会影响下面的标准流盒子。
语法
选择器{ clear:属性值;}
选择器{
clear:both;
}
清除浮动的方法
- 额外标签法也称为隔墙法,是W3C推荐的做法。
浮动标签的末尾,添加一个新标签 - 父级添加overflow属性
父元素添加overflow:hidden;
- 父级添加after伪元素
.clearfix:after { content : ""; display: block; height: 0; clear: both; visibility: hidden; } .clearfix { /* IE6、7专有 */ zoom: 1; }
- 父级添加双伪元素
.clearfix:before,.clearfix:after { content : ""; display:table; } .clearfix:after { clear :both; } .clearfix { *zoom: 1; }
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。