日期:2013-09-23  浏览次数:21173 次

  最近两个月断断续续做了好几个网站的美工,做的过程中对DIV+CSS的标准开发有了进一步的了解。有两点收获最大,一是彻底弄懂了CSS的盒子模式(Box Model),再一个就是搞定了困扰我很久的“闭合浮动元素”的问题:

  普通说来如果某个子元素使用了浮动(float),那父元素总是不能确切地知道子元素是在什么位置结束的,所以父元素的下边框总是从子元素的两头甚至是顶部穿过,看起来很不舒服。

  最早时我都是在子元素结束后单独加个<br />或<div></div>将其属性设置为“clear:all;”,但这样一来就需求生成不少没用的空标签,甚至有些网站需求修正ASP代码以自动添加这些空标签,只能算是下策。

  后来发现当父标签也设置为浮动(float)时就可以在正确的位置闭合了,所以就把父容易也浮动起来,这样一来很多ASP代码就不需求改了,遇到需求添加含Clear属性的空标签时如果不能从模板中添加,而需求从ASP代码中添加时,就不需求改ASP代码了,只需求把父容器设为浮动,如果还需求改ASP,那就再把父容器的父容器设为浮动,一层层地浮动上去,总能处理问题的。这虽然能省不少事,但很容易形成整个页面中全是浮动元素,-_-!!! 也只能算是中策而已。

  再后来,在网上搜索别的东西时偶然发现有人说只需在父容器的CSS属性中加上以下两个属性就可以搞定了:
overflow: auto;
_height: 1%;

  试了一下,果然好用,这么一来,这在目前应该算是处理这一问题的上策了:不需求对页面做任务修正,也基本上不需求对父容器--甚至是父容器的父容器做什么改动,只给父容器添加两个无所谓的属性就搞定了。

  如今我不断在用这两个属性来闭合浮动元素,实在是太方便了~