`
chenp1111
  • 浏览: 241889 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

彻底弄懂CSS盒子模式三(浮动的表演和清除的自述)

阅读更多
我的淘货之家http://taohuojia.taoke.bz/

一、下面请看float的精彩表演,有请。
大家好,我是float,欢迎访问CSS家族,在CSS家族中,在当今CSS排版流行的年代,我可扮演着重要的角色哦。因为我的工作对网页设计人员很有用,就像之前align帮助你们定位网页元素一样重要,但是我的功能似乎比 align强多了。接下来我将现场给你演示我的绝活,看细心点哦。当然也许我一下子不能把我所有的技巧给大家演示,因为有些技巧本人也许一下子记不起来了,那就请那些对我比较了解的人来帮我补充补充啰,比如版主等等啊。

先讲一下我主要的工作,我主要是帮助对像在网页中对齐的,一旦我发出float:left或float:right命令,被我浮动的对像就会向左或向右移动直到遇到边框( border) 、填充( padding) 、边界( margin )或者另一个块对象的边缘为止,当然也有一些看起来较特殊的情况,比如被我浮动的元素设置了一个负边界(margin)的时候。我还可以让文字流环绕在被我浮动的对像周围,这也是我的特色。另外要注意的一点是,最好给浮动对象设置一下宽度,不然会出现一些意想不到的麻烦。我主要浮动类型有两种,它们是 float:left和float:right,当然我还有一个功能是float:none,不过float:none比较少用,这也是我的默认值,有时也是很有用的,我等一下会讲的。下面我开始表演了,我的舞台可以是IE(Internet Explorer),或者FF(Firefox),但是有些技巧我一定要在标准的舞台中,如FF中才能表出来做的,请注意看我的说明,不然你用IE是看不到效果的。

1.我不动声色(我的属性不设置的时候),即:float:none,或者样式中不写这一项时,网页中的元素将按照它们自身的出现方式排列,一般是靠边对齐,先出现的排在前边,下面运行框是DIV先出现,P后出现,所以P排在DIV后面,注意看DIV的右边还有很多空间,但是P的文字不会跟在它的右边去。看:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.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:14px;} #box {background-color: #66CCFF; height: 100px; width: 300px; border: 1px solid #66CCCC; text-align: center; line-height:100px; float:none;/*此对象不浮动,此时对象不允许有文本流环绕*/} --> </style> </head> <body> <div id="box">我现在没有浮动</div> <p>什么是CSS的盒子模式呢?为什么叫它是盒子?先说说我们在网页设计中常听的属性名:内容(content)、填充 (padding)、边框(border)、边界(margin), CSS盒子模式都具备这些属性。这些属性我们可以把它转移到我们日常生活中的盒子(箱子)上来理解,日常生活中所见的盒子也具有这些属性,所以叫它盒子模式。那么内容就是盒子里装的东西;而填充就是怕盒子里装的东西(贵重的)损坏而添加的泡沫或者其它抗震的辅料;边框就是盒子本身了;至于边界则说明盒子摆放的时候的不能全部堆在一起,要留一定空隙保持通风,同时也为了方便取出嘛。在网页设计上,内容常指文字、图片等元素,但是也可以是小盒子(DIV嵌套),与现实生活中盒子不同的是,现实生活中的东西一般不能大于盒子,否则盒子会被撑坏的,而CSS盒子具有弹性,里面的东西大过盒子本身最多把它撑大,但它不会损坏的。填充只有宽度属性,可以理解为生活中盒子里的抗震辅料厚度,而边框有大小和颜色之分,我们又可以理解为生活中所见盒子的厚度以及这个盒子是用什么颜色材料做成的,边界就是该盒子与其它东西要保留多大距离。在现实生活中,假设我们在一个广场上,把不同大小和颜色的盒子,以一定的间隙和顺序摆放好,最后从广场上空往下看,看到的图形和结构就类似我们要做的网页版面设计了,如下图。</p> </body> </html>
[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]

2.我向盒子发出float:left命令,此时盒子浮动到左边,虽然看起来我的位置与上面例子没有什么变化,但此时跟在我后面的文本可以环绕到浮动盒子的右边了,看下面:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.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:14px;} #box {background-color: #66CCFF; height: 100px; width: 300px; border: 1px solid #66CCCC; text-align: center; line-height:100px; float:left;/*此对象左浮动,此时对象右边允许有文本流环绕*/} --> </style> </head> <body> <div id="box">我现在左浮动(float:left)</div> <p>什么是CSS的盒子模式呢?为什么叫它是盒子?先说说我们在网页设计中常听的属性名:内容(content)、填充 (padding)、边框(border)、边界(margin), CSS盒子模式都具备这些属性。这些属性我们可以把它转移到我们日常生活中的盒子(箱子)上来理解,日常生活中所见的盒子也具有这些属性,所以叫它盒子模式。那么内容就是盒子里装的东西;而填充就是怕盒子里装的东西(贵重的)损坏而添加的泡沫或者其它抗震的辅料;边框就是盒子本身了;至于边界则说明盒子摆放的时候的不能全部堆在一起,要留一定空隙保持通风,同时也为了方便取出嘛。在网页设计上,内容常指文字、图片等元素,但是也可以是小盒子(DIV嵌套),与现实生活中盒子不同的是,现实生活中的东西一般不能大于盒子,否则盒子会被撑坏的,而CSS盒子具有弹性,里面的东西大过盒子本身最多把它撑大,但它不会损坏的。填充只有宽度属性,可以理解为生活中盒子里的抗震辅料厚度,而边框有大小和颜色之分,我们又可以理解为生活中所见盒子的厚度以及这个盒子是用什么颜色材料做成的,边界就是该盒子与其它东西要保留多大距离。在现实生活中,假设我们在一个广场上,把不同大小和颜色的盒子,以一定的间隙和顺序摆放好,最后从广场上空往下看,看到的图形和结构就类似我们要做的网页版面设计了,如下图。</p> </body> </html>
[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]

3.我向盒子发出float:right命令,不难想象此时盒子浮动到右边,此时文本将会环绕到此盒子的左边,看下面:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.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:14px;} #box {background-color: #66CCFF; height: 100px; width: 300px; border: 1px solid #66CCCC; text-align: center; line-height:100px; float:right;/*此对象右浮动,此时对象左边允许有文本流环绕*/} --> </style> </head> <body> <div id="box">我现在右浮动(float:right)</div> <p>什么是CSS的盒子模式呢?为什么叫它是盒子?先说说我们在网页设计中常听的属性名:内容(content)、填充 (padding)、边框(border)、边界(margin), CSS盒子模式都具备这些属性。这些属性我们可以把它转移到我们日常生活中的盒子(箱子)上来理解,日常生活中所见的盒子也具有这些属性,所以叫它盒子模式。那么内容就是盒子里装的东西;而填充就是怕盒子里装的东西(贵重的)损坏而添加的泡沫或者其它抗震的辅料;边框就是盒子本身了;至于边界则说明盒子摆放的时候的不能全部堆在一起,要留一定空隙保持通风,同时也为了方便取出嘛。在网页设计上,内容常指文字、图片等元素,但是也可以是小盒子(DIV嵌套),与现实生活中盒子不同的是,现实生活中的东西一般不能大于盒子,否则盒子会被撑坏的,而CSS盒子具有弹性,里面的东西大过盒子本身最多把它撑大,但它不会损坏的。填充只有宽度属性,可以理解为生活中盒子里的抗震辅料厚度,而边框有大小和颜色之分,我们又可以理解为生活中所见盒子的厚度以及这个盒子是用什么颜色材料做成的,边界就是该盒子与其它东西要保留多大距离。在现实生活中,假设我们在一个广场上,把不同大小和颜色的盒子,以一定的间隙和顺序摆放好,最后从广场上空往下看,看到的图形和结构就类似我们要做的网页版面设计了,如下图。</p> </body> </html>
[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]

哈哈,看我表演了几项是不是开始觉得有点烦了,那么简单无聊的,那下面就给你表演几项特别的,但愿你不是IE的崇拜者,因为下面效果你用IE是看不到效果的,请用像FF那样的标准浏览器来运行代码框或测试吧。

4.浮动对象有负边界的情况,这时浮动对象可能会漂浮到其所在父对象外边去,这有点像绝对定位的效果,但又与绝对定位不同,它还能影响它所在地方的文本流,请用标准浏览器FF看下面代码效果:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.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:50px; font-size:12px;} #box {background-color: #66CCFF; height: 100px; width: 300px; border: 1px solid #66CCCC; } #box2 {background-color: #33CC99;margin:-10px 10px 0px 0px; height:20px; width: 100px; border: 1px solid #336666;float:right;} --> </style> </head> <body> <div id="box"> <div id="box2">margin-top:-15px</div> 右上方小盒子边界是margin:-10px 10px 0px 0px;,folat:right,这个效果还可以吧,这可不是用相对、或者绝对定位做出来的哦,部分文字还是有环绕效果。如果在上面小盒子输标题,在这大盒子内部输内容,这种类型的网页版面效果还可以的,大家可以举一反三,多做出另外类似的效果来。</div> </body> </html>
[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]

5.如果一个较宽的子盒子在一个较窄的父盒子中拥有浮属性,子盒子漂浮后不会影响到父盒子的宽度,子盒子超出父盒子的部分会越到父盒子外面,但越出父盒子外的部分不会引起外边文本流的移动,而会直接覆盖在外边文字上面的,请用标准浏览器FF看下面代码效果:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.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;} #box {background-color: #66CCFF; margin-left:200px; height: 100px; width: 300px; border: 1px solid #66CCCC; float:left;} #box2 {background-color: #33CC99; height: 30px; width: 500px; border: 1px solid #336666;float:right;} --> </style> </head> <body> <div id="box">我现在左浮动(float:left),我的宽小于子盒子,但它不会把我撑开,同时我设置了一定的左边界,目的是方便看到子盒子越出去的情况 <div id="box2">我是子盒子,我的宽比父级要大,同时我的浮动是folat:right,所以右边靠在父级盒子的右边,而宽于父盒子的部分在大盒子左边越出。</div> </div> <p>什么是CSS的盒子模式呢?为什么叫它是盒子?先说说我们在网页设计中常听的属性名:内容(content)、填充 (padding)、边框(border)、边界(margin), CSS盒子模式都具备这些属性。这些属性我们可以把它转移到我们日常生活中的盒子(箱子)上来理解,日常生活中所见的盒子也具有这些属性,所以叫它盒子模式。那么内容就是盒子里装的东西;而填充就是怕盒子里装的东西(贵重的)损坏而添加的泡沫或者其它抗震的辅料;边框就是盒子本身了;至于边界则说明盒子摆放的时候的不能全部堆在一起,要留一定空隙保持通风,同时也为了方便取出嘛。在网页设计上,内容常指文字、图片等元素,但是也可以是小盒子(DIV嵌套),与现实生活中盒子不同的是,现实生活中的东西一般不能大于盒子,否则盒子会被撑坏的,而CSS盒子具有弹性,里面的东西大过盒子本身最多把它撑大,但它不会损坏的。填充只有宽度属性,可以理解为生活中盒子里的抗震辅料厚度,而边框有大小和颜色之分,我们又可以理解为生活中所见盒子的厚度以及这个盒子是用什么颜色材料做成的,边界就是该盒子与其它东西要保留多大距离。在现实生活中,假设我们在一个广场上,把不同大小和颜色的盒子,以一定的间隙和顺序摆放好,最后从广场上空往下看,看到的图形和结构就类似我们要做的网页版面设计了,如下图。</p> </body> </html>
[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]

6.如果父盒子不设定高度或者高度为自动,而其子盒子设定了浮动,并且高度超过了父盒子,在标准浏览器中,父盒子高度是不能自适高度,但是这种高度自适应常是我们需要的,如何做到让高度自适应呢,常见的办法是在父级内,浮动子盒子后边加入以下代码:<div style="clear:both"></div>清除掉那个小盒子的浮动。请自行把代码中我注释部分消除注释再看效果,现在是没有自适应的情况,请用标准浏览器FF预览和测试代码效果:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.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:5px; font-size:12px;} .box {background-color: #66CCFF;width: 200px;border: 1px solid #66CCCC;} .box2 {background-color: #33CC99;margin-right:20px; width: 100px; border: 1px solid #336666;float:left;/*删掉这浮动也可以让父级高度自适应*/} --> </style> </head> <body> <div class="box">我是父盒子,我的高没有设定,但是我的子盒子高过我时,在标准浏览器中我的高不能自适应。 <div class="box2"> 这个盒子是小盒子,它没有设定高度属性,其高度是随里面的文字的加多而自动升高的,但是当它的高度超过父级盒子时,在标准浏览器中并没有把父级撑高,这种情况与上面讲的子级宽度超过父级元素是一样的,但是这种高度自适度常是我们需要的,如何做到让高度自适应呢,常见的办法是在父级内加入以下样式:&lt;div style="clear:both"&gt;&lt;/div&gt;清除掉与其同级小盒子的浮动。 </div> <!--<div style="clear:both"></div>去除这里的注释再看看,这样父级盒子的高级就可以自适应了--> </div> </body> </html>
[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]

经典论坛讨论:
http://bbs.blueidea.com/thread-2732609-1-1.html




看详细演示点击http://www.blueidea.com/tech/web/2007/4579.asp
分享到:
评论

相关推荐

    彻底弄懂CSS盒模型

    【彻底弄懂CSS盒模型】 CSS盒模型是前端开发中至关重要的概念,它定义了网页元素如何占据空间和相互布局。CSS盒模型由四个部分组成:内容(content)、内边距(padding)、边框(border)和外边距(margin)。理解盒模型...

    推荐彻底弄懂CSS盒子模式(DIV布局快速入门)第1/3页

    其中,CSS盒子模型作为CSS布局的基础,对于理解和掌握CSS布局至关重要。 #### 二、CSS盒子模型概述 **CSS盒子模型**是用于描述网页元素如何被渲染的一种模型。每个网页元素都可以被视为一个矩形盒子,这些盒子相互...

    弄懂CSS盒子模式 DIV布局详解(不容错过)(带源码)

    本篇文章将深入解析CSS盒子模型,并通过实例探讨如何使用div布局,帮助你彻底掌握这一核心技术。 首先,我们需要理解CSS盒子模型的基本构成。每个HTML元素在CSS中都被视为一个矩形的“盒子”,它包含四个部分:内容...

    彻底弄懂CSS盒子模式系列教程集合

    ### CSS盒子模式详解 #### 一、引言与概述 CSS盒子模型是Web前端开发中的一个核心概念,它定义了元素在网页上如何占据空间以及元素间的相互作用方式。掌握CSS盒子模型对于创建布局合理、视觉效果良好的网页至关...

    很不错的CSS学习资料,让你彻底轻松弄懂CSS

    【标题】:“很不错的CSS学习资料,让你彻底轻松弄懂CSS” 这是一份精心整理的CSS学习资源,旨在帮助学习者全面理解并掌握CSS(层叠样式表)这一重要的前端技术。CSS是网页设计和开发不可或缺的部分,它负责定义...

    CSS盒子模式(DIV布局快速入门)

    CSS盒子模式是网页布局的基础,尤其对于使用CSS(层叠样式表)进行页面设计和开发而言,至关重要。在传统表格布局中,网页内容是通过表格和嵌套表格来定位的,而CSS布局则是通过定义不同大小和嵌套的“盒子”(即...

    彻底弄懂CSS盒模型 Box Model

    【彻底弄懂CSS盒模型 Box Model】 在网页设计中,CSS盒模型是理解网页布局的基础。这个模型描述了网页元素如何占用空间并与其他元素交互。盒模型包括四个关键部分:内容(content)、内填充(padding)、边框...

    CSS盒子模式(DIV布局快速入门)[收集].pdf

    CSS 盒子模式(DIV 布局快速入门) CSS 盒子模式是CSS 中最核心的概念之一,它是 DIV 排版的基础,也是网页标准设计的关键所在。通过使用 CSS 盒子模式,可以实现网页的快速布局,提高企业竞争力,并且可以使代码...

    css浮动和定位

    浮动和定位是CSS中的两个重要概念,它们对于创建复杂的布局和实现元素精确定位至关重要。下面将详细阐述这两个概念及其应用。 **一、CSS浮动** 浮动(Float)最初是为了实现图文混排而引入的,但现在已成为构建多...

    CSS权威指南 css彻底设计研究 HTML5和CSS3实战 HTML5与CSS3设计模式

    本文将深入探讨"CSS权威指南"、"css彻底设计研究"、"HTML5和CSS3实战"以及"HTML5与CSS3设计模式"这四个主题中的关键知识点,帮助读者掌握这些领域的核心概念。 首先,"CSS权威指南"是一本经典教程,它全面地介绍了...

    jQuery和CSS3炫酷表单浮动标签特效

    **jQuery和CSS3炫酷表单浮动标签特效详解** 在网页设计中,用户交互体验是至关重要的元素之一,其中表单的设计与交互性扮演着重要角色。浮动标签特效(Floating Label)是一种现代化的表单设计模式,它在用户输入时...

    CSS盒子模型教程PPT课件.pptx

    CSS 盒子模型是指浏览器对网页中的各个元素(图片、段落、单元格等)进行排列和定位的模式。只有很好地掌握了盒子模型以及其中每个元素的用法,才能真正地控制好页面中的各个元素。本节主要介绍盒子模型的基本概念,...

    CSS中的盒子模型(图片)

    3. 盒子模型对元素布局的影响,例如元素重叠、浮动和定位等情况。 通过这三张图片,你可以更直观地掌握CSS盒子模型的工作原理,并运用到实际的网页设计中。实践中,结合代码调试和视觉效果预览,将更有利于深化理解...

    纯CSS3幽灵上下浮动动画特效.zip

    【标题】"纯CSS3幽灵上下浮动动画特效"是一个基于CSS3技术实现的网页动态效果,它将一个卡通幽灵形象设计成在蓝色背景上上下浮动,为网站增添趣味性和互动性。这个特效主要利用了CSS3的动画属性来创建动态行为,使...

    CSS清除浮动_清除float浮动 - DIVCSS5.htm

    具体详细的阐述了css浮动如何解决和浮动产生的原因。

    css彻底设计研究css.pdf+源码

    本书详细介绍了CSS核心基础、盒子模型等知识,力求把道理和方法讲清楚,采用了“探索式”的讲解方法,对于一个问题,例如标准流、浮动、定位等规律,均通过一系列动手实验,使读者自己就能够非常自然地得出结论,使...

    css+js框浮动效果

    本话题聚焦于如何结合CSS和JS来实现一个框的浮动效果,这在网页中常见于通知提示、广告横幅或动态图标等元素。 首先,我们从CSS开始。CSS动画是通过`@keyframes`规则定义的,它允许我们指定一个元素在特定时间点上...

    CSS下盒子模型定位浅析.pdf

    【CSS盒子模型定位浅析】 CSS(层叠样式表)是一种强大的样式控制工具,它使得网页设计者可以精细地控制页面元素的外观和布局。盒子模型是CSS布局的核心概念,它将HTML元素视为一个个具有内容(content)、内边距...

    CSS2中文参考手册+CSS浮动

    - **浮动与布局**: 浮动常用于创建多栏布局,例如两栏或三栏布局,通过调整元素的宽度和浮动方向可以实现灵活的布局效果。 - **浮动的影响**: 浮动元素可能导致其他非浮动元素的位置改变,因此需要谨慎使用,并结合...

Global site tag (gtag.js) - Google Analytics