任务12-负边距、三栏布局

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

答:position:relative:只有元素本身会发生偏移,它还占据着原来的位置,后面的元素不会受到影响。
负margin:
当把元素的margin设为负数的时候,不仅元素本身会移动,覆盖其他元素,也会影响到后面的元素发生位置偏移。

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

答:首先三栏都得浮动,父元素清除浮动。
左侧边栏设置margin-left:-100%;
右侧边栏设置margin-left为本身宽度的负值。
左右两边栏需要相对定位position:relative
写html布局时,中间内容区块在需要放在三栏的第一位。

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

答:
原理:利用负margin实现。
左右两个侧边栏宽度固定,中间主内容区块宽度自适应的布局方式。左右侧边栏区块和中间主内容区块都设置浮动,然后三栏的父元素设置padding,使两边留出空白。左侧边栏区块设置margin-left:-100%,右侧边栏区块设置margin-left值为区块本身的宽度再配合相对定位即可。

方式:

  1. 写出html,三栏的中间内容区在最上面,左右侧边栏在后面。
  • 设置好宽高,内容区设置宽度为100%。并且都设置左浮动。
  • 给父元素设置左右padding,padding值为左右侧边栏宽度,并且清除浮动。
  • 左侧边栏设置margin-left:-100%;设置相对定位(relative)left自身宽度值。
  • 右侧边栏设置margin-left:-100px;设置相对定位(relative)right自身宽度的负值。
圣杯布局

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

答:
和圣杯远离几乎相同,双飞翼布局时候中间主体内容内加了一个DIV的包裹层。

  1. 形成三栏的三个块级元素必须浮动。
  • 父容器利用伪类清除浮动;
  • 主体main放前面,有利渲染和SEO;
  • 主体容器内添加一个div容器,并且设置左右外边距;
  • 左边栏margin-left:-100%, 右边栏 margin-left:-本身宽度;设置两个侧栏的宽度。
  • 最终形成双飞翼布局.
双飞翼布局

与圣杯布局的区别:

  1. 主题main加了一个div容器,设置了左右marigin。
  • 左右侧边栏不需要相对定位。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容