目录
1:浮动 float 浮 漏 特
2: 清除浮动6种方法
3:溢出属性、溢出省约号
4:元素转换
正文
一:浮动
1:CSS的定位机制有3种:
普通流(标准流)
浮动
定位
2:(float) 脱标、高度塌陷、转行内块
代码:
/* 浮动的主要作用
1:让竖着的元素横着
2:定义网页中其他的元素围绕该元素显示
会导致父元素高度塌陷,高度为0。
*/
.box1,
.box2,
.box3 {
float: left;
}
.box1 {
width: 300px;
height: 300px;
background-color: red;
}
.box2 {
width: 200px;
height: 150px;
background-color: #0f0;
}
.box3 {
width: 200px;
height: 200px;
background-color: #00f;
}
.box4 {
width: 10000px;
height: 500px;
background-color: olivedrab;
/* 清除浮动方法2: 给浮动之后的其他元素清除浮动*/
/* clear: both; */
}
/* 清除浮动方法1: 给父元素写固定高度*/
.box {
/* height: 350px; */
/* 清除浮动方法4: overflow: hidden; 让浮动元素计算高度*/
/* overflow: hidden; */
}
/* 清除浮动方法5:after伪元素清除浮动 */
/* .clearfix:after { */
/*正常浏览器 清除浮动*/
/* content: "";
display: block;
height: 0;
clear: both;
visibility: hidden;
} */
/* 清除浮动方法6:使用before和after双伪元素清除浮动 */
.clearfix:before,
.clearfix:after {
content: "";
display: table;
}
.clearfix:after {
clear: both;
}
详解
1:什么是浮动?浮动是为了div在一行展示!!!!!!
2: 浮动
浮动的目的就是为了让多个块级元素同一行上显示。 最核心的关键点就是 怎么排列的, 是否占有位置
float 浮 漏 特
浮: 加了浮动的元素盒子是浮起来的,漂浮在其他的标准流盒子上面。
漏: 加了浮动的盒子,不占位置的,它浮起来了,它原来的位置漏 给了标准流的盒子。 高度塌陷。
特: 特别注意,首先浮动的盒子需要和标准流的父级搭配使用, 其次 特别的注意浮动可以使元素显示模式体现为行内块特性。
3:清除浮动
为什么要清除浮动
浮动本质是用来做一些文字混排效果的,但是被我们拿来做布局用,则会有很多的问题出现, 但是,你不能说浮动不好。
由于浮动元素不再占用原文档流的位置,所以它会对后面的元素排版产生影响,为了解决这些问题,此时就需要在该元素中清除浮动。
准确地说,并不是清除浮动,而是**清除浮动后造成的影响**
如果浮动一开始就是一个美丽的错误,那么请用正确的方法挽救它。
清除浮动本质
清除浮动主要为了解决父级元素因为子级浮动引起内部高度为0 的问题。高度塌陷
父盒子自动检测子盒子的高度。
4:常见的浮动表现
二:清除浮动的方法
其实本质叫做闭合浮动更好一些, 记住,清除浮动就是把浮动的盒子圈到里面,让父盒子闭合出口和入口不让他们出来影响其他元素。
1: 给父元素固定高度
2:给浮动标签的下个标签清除浮动
3:额外标签法
4:给父元素 overflow:hidden,让父元素计算高度
5:after伪元素清除浮动
**:after 方式为空元素的升级版,好处是不用单独加标签了**
使用方法:
.clearfix:after { content: ""; display: block; height: 0; clear: both; visibility: hidden; }
.clearfix {*zoom: 1;} /* IE6、7 专有 */
优点: 符合闭合浮动思想 结构语义化正确
缺点: 由于IE6-7不支持:after,使用 zoom:1触发 hasLayout。
代表网站: 百度、淘宝网、网易等
.clearfix:after { /*正常浏览器 清除浮动*/
content:"";
display: block;
height: 0;
clear: both;
visibility: hidden;
}
.clearfix {
*zoom: 1; /*zoom 1 就是ie6 清除浮动方式 * ie7一下的版本所识别*/
}
.father {
border: 1px solid red;
width: 300px;
}
.big {
width: 100px;
height: 100px;
background-color: purple;
float: left;
}
.small {
width: 80px;
height: 80px;
background-color: blue;
float: left;
}
.footer {
width: 400px;
height: 100px;
background-color: pink;
}
6:使用before和after双伪元素清除浮动
代表网站:小米 腾讯
.clearfix:before, .clearfix:after {
content: "";
display: table;
}
.clearfix:after {
clear: both;
}
.father {
border: 1px solid red;
width: 300px;
}
.big {
width: 100px;
height: 100px;
background-color: purple;
float: left;
}
.small {
width: 80px;
height: 80px;
background-color: blue;
float: left;
}
.footer {
width: 400px;
height: 100px;
background-color: pink;
}
三:溢出属性
综述
2个重要的功能:清除浮动、文案显示在一行
代码
.box {
width: 150px;
height: 200px;
background: red;
/* 隐藏 */
overflow: hidden;
/* 显示 */
overflow: visible;
/* 滚动 */
overflow: scroll;
/* 高度够了的时候不现实滚动条,高度不够的时候显示滚动条 */
overflow: auto;
overflow: inherit;
/* x轴显示滚动条 */
overflow-x: auto;
/* y轴显示滚动条 */
overflow-y: auto;
}
ipsa
voluptatibus molestiae inventore, nam eos, ex optio, quibusdam ea odit molestias dicta debitis distinctio
beatae. Esse.
详解
2:溢出省约号
div {
background: yellow;
width: 200px;
height: 200px;
/* white-space
nowrap :不换行
pre: 显示空格,回车,不换行
pre-wrap: 显示空格,回车,换行
pre-line: 显示回车,不显示空格,换行 */
/* 溢出省约号 */
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
Lorem ipsum dolor, sit amet consectetur adipisicing elit. Molestias itaque saepe est in animi, reprehenderit aut
magni, omnis hic, adipisci ipsum odio ipsa excepturi! Doloremque qui veritatis voluptatum nesciunt eveniet!
详解
四:元素类型转换
div {
width: 100px;
height: 100px;
background-color: red;
}
span {
/* 展示在一行 行内元素不支持上下边距,支持左右边距*/
margin: 10px;
padding: 10px;
}
input {
/* 行内块:有宽高,展示在一行 */
width: 100px;
height: 100px;
background-color: red;
}
div {
/* inline: 行内
block 块
inline-block 行内块
*/
display: inline-block;
display: inline;
display: block;
}
2:行内元素
详解: