7.下面这个例子很重要,可以说明浮动元素的很多特性,大家运行代码框后再手动调整浏览器窗口大小,看版面有什么变化,下面我给你解释常见的问题和技巧。 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1<a href="http://pp.xick.cn" title=".">.</a>0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>理解浮动的一些特性</title> <style type="text/css"> <!-- * {margin:0px; padding:0px;} body { margin:10px; font-size:12px; border: 1px dashed #000000; } .box {background-color: #33CC99; height:100px; width: 100px; border: 1px solid #336666;float:left;} --> </style> </head> <body> <div class="box"></div> 什么是CSS的盒子模式呢?为什么叫它是盒子?先说说我们在网页设计中常听的属性名:内容(content)、填充(padding)、边框(border)、边界(margin), <div class="box"></div> CSS盒子模式都具备这些属性。这些属性我们可以把它转移到我们日常生活中的盒子(箱子)上来理解,日常生活中所见的盒子也具有这些属性,所以叫它盒子模式。那么内容就是盒子里装的东西;而填充就是怕盒子里装的东西(贵重的)损坏而添加的泡沫或者其它抗震的辅料; <div class="box"></div> 边框就是盒子本身了;至于边界则说明盒子摆放的时候的不能全部堆在一起,要留一定空隙保持通风,同时也为了方便取出嘛。在网页设计上,内容常指文字、<a href="http://dushi.xick.cn/html/c11/" title="图">图</a>片等元素,但是也可以是小盒子(DIV嵌套),与现实生活中盒子不同的是, <div class="box"></div> 现实生活中的东西一般不能大于盒子,否则盒子会被撑坏的,而CSS盒子具有弹性,里面的东西大过盒子本身最多把它撑大,但它不会损坏的。填充只有宽度属性,可以理解为生活中盒子里的抗震辅料厚度,而边框有大小和颜色之分,我们又可以理解为生活中所见盒子的厚度以及这个盒子是用什么颜色材料做成的,边界就是该盒子与其它东西要保留多大距离。在现实生活中,假设我们在一个广场上,把不同大小和颜色的盒子,以一定的间隙和顺序摆放好,最后从广场上空往下看,看到的图形和结构就类似我们要做的网页版面设计了,如下图。 <div class="box"></div> 什么是CSS的盒子模式呢?为什么叫它是盒子?先说说我们在网页设计中常听的属性名:内容(content)、填充(padding)、边框(border)、边界(margin), <div class="box"></div> CSS盒子模式都具备这些属性。这些属性我们可以把它转移到我们日常生活中的盒子(箱子)上来理解,日常生活中所见的盒子也具有这些属性,所以叫它盒子模式。那么内容就是盒子里装的东西;而填充就是怕盒子里装的东西(贵重的)损坏而添加的泡沫或者其它抗震的辅料; <div class="box"></div> 边框就是盒子本身了;至于边界则说明盒子摆放的时候的不能全部堆在一起,要留一定空隙保持通风,同时也为了方便取出嘛。在网页设计上,内容常指文字、图片等元素,但是也可以是小盒子(DIV嵌套),与现实生活中盒子不同的是, <div class="box"></div> 现实生活中的东西一般不能大于盒子,否则盒子会被撑坏的,而CSS盒子具有弹性,里面的东西大过盒子本身最多把它撑大,但它不会损坏的。填充只有宽度属性,可以理解为生活中盒子里的抗震辅料厚度,而边框有大小和颜色之分,我们又可以理解为生活中所见盒子的厚度以及这个盒子是用什么颜色材料做成的,边界就是该盒子与其它东西要保留多大距离。在现实生活中,假设我们在一个广场上,把不同大小和颜色的盒子,以一定的间隙和顺序摆放好,最后从广场上空往下看,看到的图形和结构就类似我们要做的网页版面设计了,如下图。 <div class="box"></div> <div style="clear:both"></div> </body> </html> [Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行] (1)在一个盒子内的浮动对像左右浮动时,它的左右边界不一定就会靠在父对象的内补白上或边框上,上面9个盒子都是左浮动的,但在窗口最大化的情况下,只有第一个盒子和最后一个盒子的左边界靠在父盒子左边内侧。 (2)浮动对象之间不会重叠。上面有讲到浮动对像越出外边去的情况,那么一个浮动盒子又会不会越到另一个浮动对象上面去呢,实质上它们是不会重叠的,即使用了负边界看起来像重叠在一起。 (3)并排的同一浮动方向的对像在一行中放不下时,可以自动换行。大家在浏览下面代码时,改变一下浏览器窗口,就会看到我所说的情况。 (4)浮动盒子在本文流中出现的位置会影响它的水平浮动位置,就像下面运行框效果,那些盒子并不是紧跟着一起出现的,之间有文本存在,所以结果造成所有等高的盒子并不是同一直线排列出现,而变成有一定的梯度。如果两个盒子之间文本流区块高度大于前边浮动元素高度时,紧接着的同一浮动方向的对象将会被自动换行显示。在下面实例中,如果调整浏览器窗口尽量小时,所有盒子可能会出现全部靠在父盒子左边的情况,因为缩小浏览器同时,盒子右边的文本流高度随之增高。 可见不要小看我浮动,熟练掌握我将会给你排版带来很多意想不到效果哦。 8.再讲一则注意事项,在开始时我不是有说过要给浮动对象设定一个宽度的,不然会有意想不到结果,即没有设定宽度而又没有内容的对象浮动后宽度会趋近于0。请大家自行修改下面代码我注释前边的宽(只能删其中一个),测试看看效果就知道怎么回事了。 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1<a href="http://pp.xick.cn" title=".">.</a>0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>要给浮动元素一个宽度,不然盒子在没有内容情况下宽度将趋向0</title> <style type="text/css"> <!-- * {margin:0px; padding:0px;} body {margin:5px; font-size:12px;} .box {background-color: #66CCFF; height: 100px; width: 200px;/*试着把宽删除了再运行代码*/ border: 1px solid #66CCCC;float:left; } .box2 {background-color: #33CC99; height:100px; width: 100px;/*试着把宽删除了再运行代码*/ border: 1px solid #336666;float:left;} --> </style> </head> <body> <div class="box"></div> <div class="box2"></div> </body> </html> [Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行] 二、下面我要请我的好伙伴clear出场给你们讲讲它的故事,有请。 大家好,我是clear,能见到如此多人捧场我感到无比的荣幸,虽然在各位网页设计工作中我的作用常常被忽略,但我也有些作用是没有人能替代的,下面我将讲几项我实用作用以激发大家对我的兴趣: 1.如果你想一段文本流两边可以出现浮动对像的话,你可以用clear:none,看下面效果,蓝色背景段落两边的盒子是浮动的哦。 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1<a href="http://pp.xick.cn" title=".">.</a>0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>让对象两边都有浮动对象存在</title> <style type="text/css"> <!-- * {margin:0px; padding:0px;} body {margin:10px;font-size:15px;} .box1 {background-color: #33CC99; height:300px; width: 100px; border: 1px solid #336666;float:left;} .box2 {background-color: #33CC99; height:300px; width: 100px; border: 1px solid #336666;float:right;} #clearF { clear:none;/*试着改变清除方式left/right/both再看看运行效果*/ background-color: #66CCFF; } --> </style> </head> <body> <div class="box1"></div> <p> 如果你想尝试一下不用表格来排版网页,而是用CSS来排版你的网页,也就是常听的用DIV来编排你的网页结构,又或者说你想学习网页标准设计,再或者说你的上司要你改变传统的表格排版方式,提高企业竞争力,那么你一定要接触到的一个知识点就是CSS的盒子模式,这就是DIV排版的核心所在,传统的表格排版是通过大小不一的表格和表格嵌套来定位排版网页内容,改用CSS排版后,就是通过由CSS定义的大小不一的盒子和盒子嵌套来编排网页。因为用这种方式排版的网页代码简洁,更新方便,能兼容更多的浏览器,比如PDA设备也能正常浏览,所以放弃自己之前钟爱的表格排版也是值得的,更重要的是CSS排版网页的优势远远不只这些,本人在这里就不多说,自己可以去查找相关信息。 理解CSS盒子模型 什么是CSS的盒子模式呢?为什么叫它是盒子?先说说我们在网页设计中常听的属性名:内容(content)、填充(padding)、边框(border)、边界(margin), CSS盒子模式都具备这些属性。 CSS盒子模式 </p> <div class="box2"></div> <p id="clearF"> 这些属性我们可以把它转移到我们日常生活中的盒子(箱子)上来理解,日常生活中所见的盒子也具有这些属性,所以叫它盒子模式。那么内容就是盒子里装的东西;而填充就是怕盒子里装的东西(贵重的)损坏而添加的泡沫或者其它抗震的辅料;边框就是盒子本身了;至于边界则说明盒子摆放的时候的不能全部堆在一起,要留一定空隙保持通风,同时也为了方便取出嘛。在网页设计上,内容常指文字、<a href="http://dushi.xick.cn/html/c11/" title="图">图</a>片等元素,但是也可以是小盒子(DIV嵌套),与现实生活中盒子不同的是,现实生活中的东西一般不能大于盒子,否则盒子会被撑坏的,而CSS盒子具有弹性,里面的东西大过盒子本身最多把它撑大,但它不会损坏的。填充只有宽度属性,可以理解为生活中盒子里的抗震辅料厚度,而边框有大小和颜色之分,我们又可以理解为生活中所见盒子的厚度以及这个盒子是用什么颜色材料做成的,边界就是该盒子与其它东西要保留多大距离。在现实生活中,假设我们在一个广场上,把不同大小和颜色的盒子,以一定的间隙和顺序摆放好,最后从广场上空往下看,看到的图形和结构就类似我们要做的网页版面设计了,如下图。 </p> </body> </html> [Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行] 2.如果你要为一个网页准备一个页脚区块,比如<div id=”footer”></div>,你在设计网页的时候,你想不管你前边怎么浮动排版而又不想这个页脚跟上去,让它一直保持在前边内容后边,而且还是换行独立显示的,那么给这个页脚区块样式加个clear:both吧。 3.我还可以快速清除网页中具有浮动属性的不同对像的浮动,如果有很多的话,我的作用更能发挥出来,当然你也可以一条一条样式去删掉浮动的样式,但我肯定这样没有我来的方便,下面效果中,没有清除浮动前是横排的,但是清除后变成纵排(举此例只为说明问题,不管这实例实不实用),请自己删掉我的注释部分进行前后对比。 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1<a href="http://pp.xick.cn" title=".">.</a>0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>用clear快速清除所有对像浮动</title> <style type="text/css"> <!-- /*body div {clear:both;}*/ * {margin:0px; padding:0px;} body {margin:10px;font-size:15px;} .box1 {background-color: #66CCFF;height:30px;width: 100px;border: 1px solid #336666; float:left;} .box2 {background-color: #FF0000;height:30px;width: 100px;border: 1px solid #336666; float:left;} .box3 {background-color: #00FF00;height:30px;width: 100px;border: 1px solid #336666; float:left;} .box4 {background-color: #0000FF;height:30px;width: 100px;border: 1px solid #336666; float:left;} .box5 {background-color: #FF00FF;height:30px;width: 100px;border: 1px solid #336666; float:left;} --> </style> </head> <body> <div class="box1">我原来位置是[横排]的</div> <div class="box2">我原来位置是[横排]的</div> <div class="box3">我原来位置是[横排]的</div> <div class="box4">我原来位置是[横排]的</div> <div class="box5">我原来位置是[横排]的</div> <div class="box2">我原来位置是[横排]的</div> <div class="box3">我原来位置是[横排]的</div> <div class="box4">我原来位置是[横排]的</div> <div class="box5">我原来位置是[横排]的</div> </body> </html> [Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行] 好了,我的介绍到此完毕,各位还满意吗?有什么不满意可以提出来哦。你的意见就像一面镜子,它可以让我很清楚地发现自己的不足,然后改进它。
出处:http://pp.xick.cn/html/2007-05/280p2.html
|