清除浮动&&定位(详细)

Posted xiaoan0705

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了清除浮动&&定位(详细)相关的知识,希望对你有一定的参考价值。

1.1  如果两个盒子是包含关系,如果让子盒子在父盒子之内向下平移100px:(margin塌陷现象)

如果要实现:

1.给父盒子设置padding(麻烦,给父盒子设置了padding之后将来如果要父盒子的大小保持不变,还必须把padding值减掉。)

2.给子盒子设置margin-top(这里有一个bug,如果父盒子没有边框,那么将来给子盒子设置以后父盒子也会随着子盒子一起向下掉)

a)  给父盒子设置边框

b)  给父盒子设置属性:overflow(溢出)hidden(隐藏)

 

清除浮动:

 

a)使用额外标签法:

 

在需要清除浮动的地方加入一个额外的标签,然后使用clear:both来清除。(不推荐使用,因为会用到大量的额外标签)

 

 b)使用overflowhidden

 

 在需要清除浮动的标签中加入一个overflowhidden;(不推荐使用,如果浮动与定位结合起来使用的话将来会发现冲突)

 

 c)使用当前最主流的清除方式:使用伪元素来清除浮动

 

.clearfix:after {
            content:””;

 

height: 0;

 

line-height: 0;

 

display: block;

 

   visibility:hidden;

 

clear:both;

 

}

 

.clearfix {

 

      zoom: 1;/*用来兼容ie浏览器*/

 

}

定位:

 

1.1  静态定位:

 

position:static.

 

所有标准流都是这个定位,这个属性一般情况下是不会单独使用,一般情况下是通过js来动态给元素清除定位。

 

1.2  绝对定位:

 

作用:可以将一个盒子移动到页面的任意位置。

 

步骤:

 

1)将需要移动的元素的postion属性设置为absolute.

 

2)将需要移动的元素的位置的坐标记录下来,并通过关键字来设置。

 

a)  关键字:  top:设置元素与浏览器顶部的距离

 

        left:设置元素与浏览器左边的距离

 

        right:设置元素与浏览器右边的距离

 

                          bottom:设置元素与浏览器底边的距离。

 

注意点:

 

a)如果盒子没有父元素,那么将来在定位的时候,我们trbl是相对于body元素的。

 

b)如果定位的盒子有父元素,但是父元素没有定位,那么这个子元素定位的trbl还是相对于body.

 

c)如果定位的盒子有父元素,并且父元素有定位,那么这个元素的定位是相对于它的父元素(子元素定位的trbl是相对于父元素。)。

 

d)绝对定位的盒子不占页面上的位置(脱离标准流)

 

e)如果没有设置topleft那么这个元素就算设置了有position属性位置也不会改变。

1.3  相对定位:

代码:position:relative.

注意:

a)如果设置了相对定位但没有设置值,我们的盒子的位置不会改变。

技术分享图片                               效果: 技术分享图片

b)相对定位是占据标准流的位置。(相对于正常位置的left和top)

技术分享图片                     效果:技术分享图片

总结:想当年型。

总结:如果将来在页面上使用定位,绝对要遵守这个规律:子绝父相的规律(子元素使用绝对定位,父元素使用相对定位。)

 


以上是关于清除浮动&&定位(详细)的主要内容,如果未能解决你的问题,请参考以下文章

个人总结清除样式(间距浮动定位)

css清除浮动的原理

清楚float

浮动与清除浮动的六种方法

浮动float浮动影响和清除浮动

html5和css篇有关浮动以及如何清除浮动