CSS基础之浮动
网页布局的本质——用CSS来摆放盒子,把盒子摆放到相应的位置。CSS提供了三种传统的布局方式:普通流(标准流)、浮动、定位。
此处对浮动进行一个小小的总结,至于定位在学习完定位的时候在进行总结。所谓的标准流就是标签按照规定好的默认方式进行排序。
1、块级元素会独占一行,从上向下顺序排列
常用元素:div、hr、p、h1~h6、ul、ol、dl、form、table
2、行内元素会按照顺序进行排序,从左到右顺序排列,碰到父元素的边缘会自动换行
常用元素:span、a、i、em等
标准流是基本的布局方式,在实际开发中,一个页面的设计基本上包含了三种布局方式。
补充:块元素、行内元素和行内块元素
块元素的特点:
- 独占一行
- 高度、宽度、外边距以及内边距局可以控制
- 高度默认是容器(父级宽度)的100%
- 是一个容器及盒子,里面可以放行内或其他块级元素
注意:
- 文字类的元素内不能使用块级元素
- <p>标签用于存放文字,不能放块级元素,特别是div 标签
- h1~h6同理,不能放块级元素
行内元素的特点:
- 相邻行内元素一行上可以显示多个
- 高度和快读直接设置是无效的
- 默认宽度是本身内容的宽度
- 行内元素只能容纳文本或其他行内元素
注意
- 链接里面不能再放链接
- 特殊情况链接里面可以放块级元素,但是给<a>转换一个块级模式最安全。
行内块元素的特点:【<img/、< cinput/、<td>,它们同时具有块元素和行内元素的特点】
- 和相邻行内元素(行内块)在行上,但是他们之间会有空白缝。一行可以显示多个(行内元素特点)
- 默认宽度就是它本身内容的病度(行内元素特点)
- 高度,行高、外边距以及内边距都可以控制(块级元素特点).
显示模式转换
- 转换为块元素; display block
- 转换为行内元素: display. inline;
- 转换为行内块: display; inline-bock
浮动(float)
float属性用于创建浮动窗,将其移至一边,直到左边缘或右边缘触及包含快或另一个浮动框的边缘。浮动最典型的应用:可以让多个块级元素一行内显示(行内块元素)。
浮动三特性:
1、脱标
设置浮动的元素会脱离标准流,设置了浮动的元素会漂浮在普通流的上面,不占位置。
2、浮动的元素一行内显示,并且顶部对齐。
注意:浮动的元素是互相贴在一起的(不会有缝隙),如果父级宽度装不下这些浮动的盒子,多出的盒子会另起一行对齐。
3、浮动的元素会具有行内块元素的特性。
- 任何元素都可以逻动。不筐原先是什么模式的元素,添加动之后具有行内块元素相似的特性
- 如果块级盒子没有设置度,默认宽度和父级一样宽,但是添加浮动后,它的大小根据内容来决
- 浮动的盒子中间是没有的,是紧挨着起的
- 行内元素同理
浮动的注意点
1、浮动和标准流的父盒子搭配使用。
先用标准流的父元素排列上下位置,之后内部子元素采取浮动排列左右位置
2、一个元素浮动了,理论上其他兄弟元素也要浮动。
一个盒子里面有多个子盒子,如果其中一个盒子浮动了, 那么其他兄弟也应该浮动,以防止引起问题。
浮动的盒子只会影响浮动只会影响浮动盒子后面的标准流,不会影响前面的标准流。
清除浮动
1、为什么需要清除浮动呢?
- 清除浮动的本质是清除浮动元素造成的影响
- 如果父盒子本身有高度,则不需要清除浮动
- 清除浮动之后,父级就会根据浮动的子盒子自动检则高度,父级有了高度,就不会影响向下面的标准流了
2、语法
选择器{clear:属性值;}
实际工作中,几乎只用clear:both;【清除浮动的策略是:闭合浮动】
3、清除浮动的方法
(1)额外标签发也称为隔墙法。
此方法会在浮动元素末尾加一个空的标签。例如:<div style= clear. both ></div>
优点:通俗易懂,书写方便
缺点:添加许多没有意义的标签,结构化比较差
(2)添加overflow属性,将其属性设置为hidden、auto或scroll【注意是给父元素添加代码】
优点:代码简洁
缺点:无法显示溢出的部分
(3):after伪元素【注意是给父元素添加】
语法:
优点:没有增加标签,结构更简单
缺点:照顾低版本浏览器
(4)父级双伪元素【注意给父元素添加】
元素:
优点:代码更简洁
缺点:照顾低版本浏览器