百良西瓜

导航

定位元素

盒模型,就是浏览器为每一个 HTML 元素生成的矩形盒子,这些盒子按照可见版式模型在页面上排布。

可见的页面版式由三个属性控制:position、display、float。

  position,控制页面上元素间的关系。

  display,控制元素是堆叠、并排显示呢?还是隐藏不可见?

  float,提供控制的方式,以便把元素组成多拦布局。

元素的盒子由 外边距 + 边框 + 内边距 + 内容 组成。 

1、相邻盒子的垂直外边距会进行叠加,始终使用最大的外边距值。

2、如果不设置块级元素的 width 属性,那么这个属性的默认值是 auto,结果会让元素的盒子宽度扩展到与父元素同宽。

   如果增大水平边框、内边距、外边距,就会导致内容宽度减少。

3、为块级元素 width 属性设置了固定宽度后,盒子的宽度就不会再扩展到与父元素同宽了。

  为设定宽度的盒子增加边框、内边距、外边距,会导致盒子的宽度增大。如果盒子宽度超过窗口宽度,就会出现滚动条。

  实际上,此时的 width 指的是内容宽度。

 

浮动 float 与 清除 clear

  float,把元素从文档流中拿出来,浮动元素脱离了文档流后,原来紧跟其后的元素就会在空间允许的情况下,

  尽量往上提升到与浮动元素平起平坐。

  如果不想让浮动元素后面的元素提升到与浮动元素平起平坐,那么必须给后面的元素使用clear。

  [如何让父元素围住浮动的子元素],有三种方法,

  <section>

    <img src="xx.png">

    <p>I love U, ALINA</P>

  </section>

  1)为父元素添加 overflow:hidden

    section { ...; overflow: hidden; }

    img { float: left; }

 

    此方法比较简单,但是不太直观。设置后,强制父元素包围浮动子元素。

    实际上,overflow:hidden 的真正用途是切掉太大子元素的多余部分,保持父元素的宽度不变。

  2)同时浮动父元素    

    section { ...; float: left;  width: 100%; }

    img { float: left; }

    浮动父元素以后,不管其子元素是否浮动,它都会紧紧地包围住子元素。因此,需要用 width:100% 再次让父元素与

    浏览器窗口同宽。

  3)添加非浮动的清除元素

    给父元的最后添加一个非浮动的子元素,然后清除该子元素。由于父元素一定会包围非浮动的子元素,而且清除

    会让这个子元素位于浮动元素的下方,因此,父元素也一定会包围住浮动子元素。

    此种方法有两种实现思路,

    第一种,在父元素内部最后添加一个纯表现的 div 元素,      

      <section>

        <img src="xx.png">

        <p>I love U, ALINA</P>

        <div style="clear:left"></div>

      </section>

    第二种,给父元素添加一个 class 类,

      section.clearfix:after {

        content: ".";

        display: block;

        height: 0;

        visibility: hidden;

        clear: both;

      }

static 静态定位

  文档流中的元素默认都是 static 静态定位。

relative 相对定位

  相对于文档流中的原始位置进行相对定位,除了元素自己相对于原始位置挪动了一下之外,页面没有发生任何变化。

  也就是说,“相对元素” 原来占据的空间还被保留着,后面的元素也在自己的位置上,不会前移去占据“相对元素”的位置。

absolute 绝对定位

  绝对定位与相对定位不一样,绝对定位会把元素彻底从文档流中拿出来,也就是说,“绝对元素” 原来占据的空间不再保留,

  后面的元素会占据“绝对元素” 原来的位置。

  由于“绝对元素” 脱离了文档流,因此,绝对定位一定要有上下文来定位。

  一般情况下,如果父元素的定位方式是 relative 、absolute、fixed 时,则上下文就是父元素。

  如果父元素没有设置(默认为 static )时,则上下文就是 body 元素。

fixed 固定定位

  固定定位与绝对定位非常类似,都是彻底脱离文档流。不同之处在于,固定定位的上下文始终是浏览器窗口。

  不会随页面的滚动而滚动。

 

posted on 2015-12-21 01:56  百良西瓜  阅读(171)  评论(0编辑  收藏  举报