首先,无论是圣杯布局还是双飞翼布局,负边距都起着非常重要的作用,我写在这里是为了提醒自己。
1.负边距在让元素产生偏移时和position: relative有什么区别?
对相邻元素的影响
<li>负边距移动时,它自身整个文档位置也会跟着偏移,以至于后面的元素也会做出相应调整。
<li>使用position:relative
进行偏移时,它还会占着原来的位置,后面元素的位置不会受影响。
定位方式
<li>首先边距的定位是从规定元素的border到父元素或者相邻元素的距离,所以负边距的偏移是以父元素/相邻元素的边框为参考线。
<li>position:relative
则以自身原来位置做参考线。
2.使用负 margin 形成三栏布局有什么条件?
1.左侧边栏,中间内容区域,右侧边都要添加左浮动。
2.中间main自适应父元素宽度。
3.父元素添加padding为左右侧边栏预留空位。(圣杯布局)
4.在中间元素添加一个子元素,并且子元素左右设置边距。(双飞翼布局)
3.圣杯布局的原理是怎样的? 简述实现圣杯布局的步骤
原理:
圣杯布局其特性是,左右侧边宽度固定,中间main自适应父元素宽度,而父元素设置左右padding为左右侧边栏预留位置的一种布局。
实现步骤:
1:
html写出父元素container,子元素main,aside,extra。
css设置aside,extra固定宽度,main宽度自适应。
2:
main,aside,extra设置左浮动,然后在父容器使用伪元素after清除浮动。
3:
aside设置margin-left:-100%;
,extra设置margin-left:-200px;
父元素设置左右padding:200px;
4
aside设置position:relative;
right:200px
extra设置position:relative;
left:200px
4.双飞翼布局的原理? 实现步骤?
双飞翼布局原理
双飞翼布局原理是在main外层添加wrap父容器,然后通过设置wrap的左右margin,从而达到布局效果。
步骤:
1.设置container父容器,子元素main,aside,extra,然后在main再设置一个子元素warp。
2.同样main自适应父元素宽度,aside,extra有固定宽度,然后都左浮动。
3.使用伪元素after清除浮动,然后左侧栏负边距设置为-100%,右侧栏负边距为其宽度的相反数。
4.设置warp左右边距大于或者等于asider和extra即可。
代码题
<a href="http://js.jirengu.com/kadidegela/1/edit?css,output" >代码1</a>
<a href="http://js.jirengu.com/xugusozuma/1/edit?css,output">代码2</a>
<a href="http://js.jirengu.com/degaluhomu/1/edit?css,output">代码3</a>
<a href="http://js.jirengu.com/mixozufivi/1/edit?css,output">代码4</a>
<a href="http://js.jirengu.com/fokutujufa/1/edit?html,css,output">代码5</a>
本教程版权归饥人谷peter和饥人谷所有,转载须说明来源!
感谢吃瓜子观众: