常见布局原理及实现

负边距在让元素产生偏移时和position: relative有什么区别?

  • 负边距产生位移时,页面内的元素会根据位移后的位置进行渲染,并不占据原来的空间
  • position:relative是相对于元素本身做偏移,但是元素并不脱离文档流,原来所占据的空间依然会被保留。

使用负 margin 形成三栏布局有什么条件?

  • 侧边栏及中间元素均浮动浮动
  • 父元素清除浮动
  • 当相邻两个元素均浮动,第二个元素的负margin大于自身宽度,第二个元素会跑到第一个元素的上方产生覆盖。
  • 左边margin-left为-100%,也就是为负的父元素的宽度,跑到父容器的左边形成左侧边栏。右边栏为margin-left的负自身宽度,跑到父容器的右边形成右侧边栏
  • 对位置进行细调节,形成三栏布局

圣杯布局的原理是怎样的? 简述实现圣杯布局的步骤

  • 利用相邻元素均为浮动时,第二个元素使用负margin会跑到第一个元素上方覆盖,然后通过父元素添加padding属性进行调节
    • 中间、两侧元素文档流布局,均设为左浮动
    • 给父元素添加clearfix样式清除浮动(添加一个空的包含块并清除浮动)
    • 左侧边栏的margin-left为-100%,也就是为负的父元素的宽度,跑到父容器的左边。右侧边栏为margin-left的负自身宽度,跑到父容器的右边。
    • 父元素添加左右padding样式,留出两个侧边栏的空间
    • 利用position:relative属性调节两侧的元素至侧边栏位置。
    • 形成圣杯布局。

双飞翼布局的原理? 实现步骤?

  • 利用相邻元素均为浮动时,第二个元素使用负margin会跑到第一个元素上方覆盖,然后父元素的中间添加一个元素进行调节
    • 中间、两侧元素文档流布局,均设为左浮动
    • 给父元素添加clearfix样式清除浮动(添加一个空的包含块并清除浮动)
    • 左侧边栏的margin-left为-100%,也就是为负的父元素的宽度,跑到父容器的左边。右侧边栏为margin-left的负自身宽度,跑到父容器的右边。
    • 在父元素中间添加一个元素,使左右margin等于两侧元素的宽度,是其内容位于中间,留出两个侧边栏的空间
    • 形成双飞翼布局。

代码:

1、github链接
Paste_Image.png
2、github链接
Paste_Image.png
3、github链接
Paste_Image.png
4、github链接
Paste_Image.png

文章目录
  1. 1. 负边距在让元素产生偏移时和position: relative有什么区别?
  2. 2. 使用负 margin 形成三栏布局有什么条件?
  3. 3. 圣杯布局的原理是怎样的? 简述实现圣杯布局的步骤
  4. 4. 双飞翼布局的原理? 实现步骤?
  5. 5. 代码:
,