传统布局方式
1、标准流/文档流
标准流:即标签按照规定好的默认方式排列,是最基本的网页布局方式。
- 块级元素会独占一行,从上向下顺序排列。
- 行内元素会按照顺序,从左到右顺序排列,碰到父元素边缘则自动换行。
2、浮动
浮动可以让多个块级元素在一行内排列显示。
浮动最典型的应用:可以让多个块级元素一行内排列显示。
网页布局第一准则:多个块级元素纵向排列找标准流,多个块级元素横向排列找浮动!
选择器 { float: 属性值;}
属性 | 描述 |
---|---|
none | 元素不浮动(默认值) |
left | 元素向左浮动 |
right | 元素向右浮动 |
1)浮动元素会脱离标准流(脱标)
2)浮动的元素会一行内显示并且元素顶部对齐
- 如果多个盒子都设置了浮动,则它们会按照属性值一行内显示并且顶端对齐排列。
- 浮动的元素是互相贴靠在一起的(不会有缝隙),如果父级宽度装不下这些浮动的盒子,多出的盒子会另起一行对齐。
3)浮动的元素会具有行内块元素的特性
- 块级盒子:没有设置宽度时默认宽度和父级一样宽,但是添加浮动后,它的大小根据内容来决定
- 行内盒子:宽度默认和内容一样宽,直接设置高宽无效,但是添加浮动后,它的大小可以直接设置
- 浮动的盒子中间是没有缝隙的,是紧挨着一起的
- 即:默认宽度由内容决定,同时支持指定高宽,盒子之间无空隙
清除浮动:
选择器 {
clear:属性值;
}
属性 | 描述 |
---|---|
left | 不允许左侧有浮动元素 |
right | 不允许右侧有浮动元素 |
both | 同时清除左右两侧浮动的影响 |
在实际开发中,基本上只会使用 clear:both。
3、定位
规则为:定位 = 定位模式 + 边偏移 。
定位模式:
属性值 | 描述 |
---|---|
static | 静态定位 |
relative | 相对定位 |
absolute | 绝对定位 |
fixed | 固定定位 |
- 相对定位,是元素在移动位置时,是相对于自身原来位置进行偏移。
- 绝对定位是元素在移动位置时,是相对于它祖先元素来说的。
- 固定定位,是元素固定于浏览器可视区的位置。 在浏览器页面滚动时元素的位置不会改变。
绝对定位特点:
①绝对定位不会保留原来的位置(脱标),那后面盒子就会往上占了它的位置;
②如果没有祖先元素或者祖先元素没有定位,则以浏览器为基准定位;
③如果祖先元素有定位(可以是相对、绝对或者固定定位),则以最近的已经定位的祖先元素为基准移动位置。
④虽然父元素的定位可以是相对、绝对或者固定定位,但是绝对定位和固定定位都会脱离标准流,所以我们实际开发中,一般都使用相对定位,这就是常说的子绝父相。
固定定位特点:
①固定定位是相对浏览器窗口来定位的 ,与父元素没有关系;
②偏移量不会随滚动条的移动而移动;
③脱离文档流,不再占有原来位置,是浮起来的。
边偏移:
属性 | 描述 |
---|---|
top | 表示元素相对其父元素上边线的距离 |
bottom | 表示元素相对其父元素下边线的距离 |
left | 表示元素相对其父元素左边线的距离 |
right | 表示元素相对其父元素右边线的距离 |