第十四章盒子的浮动与定位
1.盒子的浮动(float)
1.1 左浮动
设置三个盒子,分别给它们的float加上left
1 |
|
其效果如下:
1.2 右浮动
当把第三个盒子的float设置为right时
1.3 盒子在推挤中被卡住
给第一个盒子增加一段”Box-1”,然后缩小浏览器,可以看见第三个盒子在被推挤到左边的时候卡住了,此时与第二个盒子竖直对齐。
1.4 clear清除环绕效果
如果不希望文字环绕着盒子,可以利用clear取消浮动
1 |
|
效果如下:
另外clear除了left和right,还有both,用来清除两边的文字围绕。
1.5 浮动与标准流的关系
如果删除文字段,可以看到:
父盒子的高度已经不随着子盒子的高度来确定了,因为当设置浮动之后,三个盒子都脱离了标准流。
那么如何让父盒子的宽度伸展到囊括子盒子呢?
其中一种不够优雅地方法是增加一个盒子
1 |
|
然后再css中设置clear属性,注意要声明是父盒子的子盒子,即.father .clear
1 |
|
2.盒子的定位(position)
2.1 静态定位static
默认值,没什么效果
2.2 相对定位relative
给第一个盒子设置CSS
1 |
|
可以看到盒子向右下各偏移了30px
略微修改一下,就是向左上偏移
1 |
|
由上可以得出两个结论:
1)设置relative只是从原来位置进行一定的偏移。
2)其他盒子的位置没有改动,说明Box-1没有脱离标准流
2.3 绝对定位absolute
absolute会让盒子脱离标准流,根据父边框来确定位置,而剩下的盒子会补上这个盒子的空缺。
1 |
|
效果如下:
紧贴父盒子边框
如果给父盒子设置relative属性
就会与父边框有一定距离
2.4 固定定位fixed
盒子位置跟随滚动条移动。
3.z-index 的空间位置
z-index可以用来设置图片显示的前后顺序。
4.盒子的display属性
4.1 display有什么用?
用于设置盒子的类型,有块级block、行内inline和取消none
4.2 display如何用?
写八个盒子,三个div标记,三个span标记和一个span一个div标记
然后设置如下:
1 |
|
可以看到:
原本div变成行内元素,而span变成块级元素,设置none的两个标记直接不显示。
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!