<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> *{ margin: 0; padding: 0; } .box{ width: 100px; height: 100px; float: left; background-color: red; } .box1{ width: 300px; height: 100px; background-color: deeppink; } .box1:before{ content: '嗯哼'; } .box1:after{/* 在容器的后面添加内容 */ content: '菜鸟联盟';/* 激活伪元素的必要条件 */ color: lawngreen; font-weight: bold; } </style> </head> <body> <a href="#" class="box">aaa</a> <div class="box1">菜鸟联盟</div> <!-- 普通文档流 普通文档流指的是元素在网页排版的过程中遵循的规则 块级元素从上到下 行内/行内块元素从左到右 float 设置元素浮动 left 元素向父级元素左端浮动 right 元素向父级元素右端浮动 none 默认不浮动 float的注意事项 如果很多浮动元素的宽度之和大于父级盒子那后面的浮动元素会在下一行重新排列 特殊情况 如果浮动元素的高度不一样,那后面的浮动元素会漂浮到能够放下这个元素的位置(图里有东西顶住它它就从那往后) float对元素的影响 对父级元素的影响 造成父级元素高度坍塌 对浮动元素自身 1可以支持width/height/margin/padding 不支持margin:auto 查看computed面板的display是block 但是实际上是inline-block但不完全是 2生成BFC环境(块级格式化上下文)BFC是一种布局环境 3脱离普通文档流 BFC游戏规则 在同一个BFC内部 相邻盒子在竖直方向上不会出现margin合并(所以float元素不会出现外边距和并) 在计算BFC的高度时 会计算浮动元素的高度(用来清除浮动) 什么属性可以生成BFC环境 display:inline-block float:left或者float:right position:absolute或者position:fixed overflow:hidden 根标签html标签 解决父级元素高度坍塌的几种方法 设置父级的height 生成BFC 清除浮动元素的浮动属性(两种方法其实一个意思,在后边添加一个盒子) 在浮动元素最后面添加一个有clear属性的元素(不常用) .clearfix{ clear:both; } <div class="clearfix"></div> 使用after伪元素模拟元素来清除浮动(企业常规用法) .box:after{/* after伪元素 */ content:''; display:block; clear:both; } 伪元素默认为display:inline; --> </body> </html>