CSS 定位与浮动

CSS 定位  

Static:元素框正常生成。块级元素生成一个矩形框,作为文档流的一部分,行内元素则会创建一个或多个行框,置于其父元素中。

 

  相对定位(relative):与最近的一个元素进行定位。相对于原始的位置进行移动

注意,在使用相对定位时,无论是否进行移动,元素仍然占据原来的空间。因此,移动元素会导致它覆盖其它框。

 

  绝对定位(absolute):设置为绝对定位的元素框从文档流完全删除,并相对于其包含块定位,包含块可能是文档中的另一个元素或者是初始包含块。元素原先在正常文档流中所占的空间会关闭,就好像该元素原来不存在一样。元素定位后生成一个块级框,而不论原来它在正常流中生成何种类型的框。(是以html的边框为参照的)

注意:因为绝对定位的框与文档流无关,所以它们可以覆盖页面上的其它元素。可以通过设置 z-index 属性来控制这些框的堆放次序。

在下面这个例子中,与上面一个元素出现了层叠:

设置top:20px;导致了间距不够,就进行覆盖。

 

 

 1 <html>
 2 <head>
 3 <style type="text/css">
 4 h2.pos_abs
 5 {
 6 position:absolute;
 7 left:100px;
 8 top:20px
 9 }
10 </style>
11 </head>
12 
13 <body>
14 <h2 class="pos_abs">这是带有绝对定位的标题</h2>
15 <p>通过绝对定位,元素可以放置到页面上的任何位置。下面的标题距离页面左侧 100px,距离页面顶部 150px。</p>
16 </body>
17 
18 </html>

 

  固定定位(fixed):在页面滚动时,具有固定定位的位置不会改变。固定定位只在特定的情况下才会使用,一般不会使用。

浮动

  浮动(float):浮动的框可以向左或向右移动,直到它的外边缘碰到包含框或另一个浮动框的边框为止。有(left,right,none,inherit)四个属性。

浮动是自动脱离了文档流

 

 清除浮动: 

在使用浮动之后,会导致一些问题,浮动的内容不能很好的进行定位,在定位时由于脱离了文档流,宽度和高度会受到影响,不能设置成理想的效果,所以有时可以通过清除浮动解决。

 

 

  清除浮动可以使用:

  一个对象里面有两个子对象都设置为了浮动,前面的浮动就要清除

       

Overflow:hidden;可以清除浮动,同时也可以,将元素溢出的部分隐藏起来,在写轮播时也会使用到。

overflow:auto;

 

Clear:both(left,right,none,inherit)

同时也带来了一些多余的元素。

 

 使用伪after元素:

    一、该方法中必须为需要清除浮动元素的伪对象中设置height:0,否则该元素会比实际高出若干像素;

    二、content属性是必须的,但其值可以为空,蓝色理想讨论该方法的时候content属性的值设为”.”,

 

 

在写html+css时,我习惯使用无序列表,然后使用float来将li进行排列,也出现了很多的问题,使用浮动导致不能达到想要的定位效果,同时在将屏幕大小进行调整时,定位也会受到影响,导致结构被破坏。(所以要清除浮动,或者避免使用浮动的方法),尽可能的少使用float属性。

display:inline-block;将对象呈递为内联对象,但是对象的内容作为块对象呈递。旁边的内联对象会被呈递在同一行内.可以解决浮动的脱离文档流,对高度和宽度都可以进行定义.

可以解决浮动在进行定位时的问题。

 

 

 

 

posted @ 2017-09-29 20:54  zzzjh  阅读(189)  评论(1编辑  收藏  举报