浮动
应用场景
1.文字环绕
2.横向排列
浮动的基本特点
修改float属性值
·left:左浮动,元素从左上排序
·right:右浮动,元素从右上排序
需要注意:
1.设置了float属性后元素就为块盒
2.浮动元素的包含块也是父元素的内容盒
盒子尺寸
1.宽度为auto时,表示适应内容宽度
2.高度为auto时,表示适应内容高度
3.margin为auto时,表示0
4.除高度外其它设置可以按百分比
盒子排列
1.左浮动的盒子靠左依次排列
2.右浮动的盒子靠右依次排列
3.浮动盒子在包含块中排列时会避开常规流盒子
4.常规流块盒在排列时无视浮动盒子
5.行盒在排列时会避开浮动盒子
·如果文字没有在行盒中,浏览器会自动生成一个行盒来包裹文字,该行盒叫做匿名行盒
高度坍塌
-浮动盒子跑到包含块外面
-形成原因:常规流盒子无视浮动盒子
-解决方式:
清除浮动、涉及CSS属性:class
·默认值:none
·left:清除左浮动,该元素出现在左浮动元素的下方
·both:清除浮动,该元素出现在浮动元素的下方
<style>
.in{
width: 300px;
background-color: yellow;
}
.in .haha{
height: 70px;
float: left;
background-color: royalblue;
border-style: 100px dashed #000;
color: white;
margin: 20px;
}
.after{
clear: both;
}
</style>
</head>
<body>
<div class="in">
<div class="haha">5</div>
<div class="haha">4</div>
<div class="haha">2</div>
<div class="haha">5</div>
<div class="haha">8</div>
<div class="haha">9</div>
<div class="after"></div>
</div>
</body>
<style>
.in{
width: 300px;
background-color: yellow;
}
.in .haha{
height: 70px;
float: left;
background-color: royalblue;
border-style: 100px dashed #000;
color: white;
margin: 20px;
}
.in::after{
content:"";
display:block;
clear: both;
}
</style>
</head>
<body>
<div class="in">
<div class="haha">5</div>
<div class="haha">4</div>
<div class="haha">2</div>
<div class="haha">5</div>
<div class="haha">8</div>
<div class="haha">9</div>
<div class="after"></div>
</div>
</body>
伪类元素选择器:
nth-child(x),表示这个元素的第x个子元素
nth-child(xn),表示这个元素的第x的倍数个子元素
元素选择器
first-letter,首字母选择器
定位
手动控制元素在包含块中的精准位置
position属性
·默认值:static,静态定位(不定位)
·relative:相对定位
·absolute:绝对定位
·fixed:固定定位
定位元素:一个元素只要postition取值不是static,就是一个定位元素
定位元素会脱离常规流(相对定位除外)
一个脱离了文档流(常规流)的元素:
1.文档流中的元素摆放时,会忽略脱离了文档流的元素
比如浮动就是脱离了文档流
2.文档流中元素计算自动高度时,会忽略脱离了文档流的元素
比如浮动的高度坍塌
相对定位
不会导致元素脱离文档流,只是让元素在原来的位置上进行偏移,盒子的偏移不会对其他盒子产生任何影响
可以通过四个CSS属性对其进行设置:
·left
·right
·top
·bottom
如果出现矛盾以左上为准
绝对定位
1.宽高为auto,适应内容
2.包含块(盒子的活动范围)变化:找祖先元素中第一个定位元素,该元素填充盒(padding)为其包含块。若果找不到,则它的包含块为整个网页(初始化包含块)
关键点:找到包含块
固定定位(牛皮藓小广告的万恶之源)
除了包含块外和绝对定位完全一样
包含块不同:固定为视口(浏览器的可视窗口)
定位下的居中
某个方向居中
1.定宽(高)
2.将上下(左右)设置为0
3.将上下(左右)margin设置为auto
绝对定位和固定定位中,margin为auto时,会自动吸收剩余空间
多个定位重叠时
-堆叠上下文
-设置z-index,通常情况下这个值越大就越靠近用户,如果不设置那么源次序越靠后越靠近用户。
-只有定位元素设置z-index有效,z-index还可以小于0,常规流、浮动元素会覆盖在z-index小于0的元素上
补充
·绝对定位、固定定位元素一定是块盒
·绝对定位、固定定位元素一定不是浮动
·没有外边距合并
制作一网页
方法总结
·在制作页面时要根据设计图来制作
·制作时要边写边检查
·一个样式可以通过多种方法来实现
要注意的点
·注意浮动元素父元素的高度坍塌
添加clearfix进行浮动清除
·注意块盒中的行盒可以使用text-aline:center设置
·注意某些元素的位置需要通过特殊的选择器来实现。比如,nth-child(x),表示这个元素的第x个子元素;nth-child(xn),表示这个元素的第x的倍数个子元素等。