CSS float与clear & 替换元素与非替换元素

  css3盒模型(box)中的一个概念,在css这种,每个元素生成了包含内容的框,有内联元素和块级元素之分。也可以区分为替换元素与非替换元素。

替换元素:浏览器根据标签的元素与属性来判断显示具体的内容。如 input标签,根据type显示内容。img标签,根据src显示内容。textarea、select、object都是替换元素。

非替换元素:内容直接告诉浏览器,浏览器将其显示出来。内容为标签包裹的内容。

  块级元素与内联元素,在设置float之后,元素会变成块级元素。

  float是令本身元素脱离网页布局流,但是之前布局好的不会改变,而脱离流之后float元素的位置也是从当前位置开始的。如果是同一个位置的多个float元素,不管是left还是right,都会在同一行开始排列,直到下一个位置不够放入下一个元素时,才会换到下一行。

  clear则是用来规定左边还是右边不允许出现float元素的,任何元素都可以设置clear,用来规定自己的左边或者右边或者两边都没有浮动元素。

  注意,clear属性的意思是,禁止自己左边或者右边出现浮动元素,但是这并不会影响其他元素的布局。比如说,一个元素禁止自己右边有浮动元素,而他后面紧跟一个float:left的元素,这样该元素照样会float到自己右边,因为他的clear属性,并不会影响其他的布局,只会影响自己的布局。比如说上面那种情况,可以设置后面元素的clear为left,这样后面的元素左边禁止出现float元素,因为左边是一个float,所以他没办法,只能显示到下一行了。(clear:right是用在float:right的几个元素中的第二个的。)

  由此可知,多个float元素中,设置clear会生效的只有第一个元素之后的元素。

clear : none | left | right | both

取值:

none  :  默认值。允许两边都可以有浮动对象

left   :  不允许左边有浮动对象

right  :  不允许右边有浮动对象

both  :  不允许有浮动对象

说了这么多,float的常用法还是用来一行排布多个div,这样就有问题了,怎么令float元素后的非float元素排在float元素之后呢,这就需要使用清除了,在最后一个float元素后放任意一个标签,设置该标签的clear为both。由于clear禁止自己左右有float元素,于是没办法,自己只有排列到下一行了。这就是我们经常看到的网页代码中的::after伪类的作用了。

对于CSS的清除浮动(clear),一定要牢记:这个规则只能影响使用清除的元素本身,不能影响其他元素。

float浮动的元素,脱离标准流,但是又和标准流中的其他元素一样,可以设置各种属性,其实就是开辟了在标准布局之上的一个布局,用于放这些float元素。

无论多么复杂的布局,其基本出发点均是:“如何在一行显示多个div元素”。

详细内容参考:http://www.cnblogs.com/iyangyuan/archive/2013/03/27/2983813.html

时间: 2024-08-09 19:52:55

CSS float与clear & 替换元素与非替换元素的相关文章

CSS 替换元素和非替换元素 行内非替换元素

html元素也可以分为替换元素和非替换元素 1.替换元素 替换元素是由浏览器根据表示的元素和属性决定显示的内容. 例如:<img src="./image.jpg" />他由标签元素img和属性src来决定显示的内容. <input type="text" />如果text换成其他的属性值,input会显示不同的样子,这也是有input和type属性值决定显示内容的. 像<img>.<input>.<textar

Ognl中根元素与非根元素的关系

Ognl中根元素与非根元素的关系 根元素:可以理解为全局变量 非根元素:局部变量 从两者获取其属性的方式看: Object obj = Ognl.parseExpression(“[1]”); [1]根元素:不用写#号,填写属性 非根元素:用写#号,填写对象名字 注:从填写内容能看出全局和局部了 返回得到的obj就是在全文中从上到下搜索到的[1],比如说全局和局部名称一致了,你填写属性那肯定就是全局,都没到局部那个地方就搜索到了. OgnlContext 这就是上下文.上下文干啥的,可以理解下英

HTML5 新增结构元素分为主体结构元素和非主体结构元素

做移动端有一段时间,今天有同事问了我 article 和 section 标签的使用,模模糊糊的解释了下,他似懂非懂,有点小尴尬.忽然间觉得自己有必要再翻翻书籍,重温下 html5 的新元素.今天先介绍下 html5 新增的结构元素,有的经常使用到,有的用不上,虽然说它们的出现是更促进页面更有语义,更好的 seo,但其实当页面禁用样式后,它们的展现跟 div 是没撒差别,有同学可能会说,既然一样,又不影响页面的最终展现,不管是 article 还是 section 能用就好了.如果考虑实际项目的

python将list连续元素和非连续元素分开转换为指定字符串

python将list连续元素和非连续元素分开转换为指定字符串贴吧网友提问http://tieba.baidu.com/p/3730249293已知一个由纯数字(顺序由小按大排序)元素组成的列表,比如li=[1,2,3,4,5,7,8,15,20,21,22,23,24,28]写一个函数,让它返回如下的字符串str='1~5,7~8,15,20~24,28'若数字连续,中间部分用 ~ 省略. """黄哥python远程视频培训班https://github.com/pytho

css 文档流中块级非替换元素水平区域的计算规则(1)

最近在读<Basic Visual Formatting in CSS>,结合以前看的<css权威指南>和css标准.今天就做个笔记. 以前在遇到一些宽度不明确指明的一些布局的时候,虽然凭感觉能猜出个大概,但是总是有点不是很靠谱.直到最近看到这一本书,觉得总觉得挺好的. 首先要知道,元素除了通过display来指定block.inline.inline-block这一些属性之外,还有一种能在的特性--替换还是非替换. 替换元素:像img.video.canvas等稳定种指定的内容只

替换元素和非替换元素

替换元素:指浏览器是根据元素的属性来判断具体要显示的内容的元素.比如 img 标签,浏览器是根据其 src 的属性值来读取这个元素所包含的内容的,常见的替换元素还有 input .textarea. select. object. iframe 和 video 等等,这些元素都有一个共同的特点,就是浏览器并不直接显示其内容,而是通过其某个属性的值来显示具体的内容, 比如浏览器会根据 input 中的 type 的属性值来判断到底应该显示单选按钮还是多选按钮亦或是文本输入框. 非替换元素:比如 p

非替换元素与替换元素

元素是文档结构的基础,在css里面,每个元素生成了包含内容的框(box),大家都叫"盒子".但是不同的元素显示方式是不同的,有占据一整行的,有水平一个挨着一个的.比如:div 与span的方式不一样. 什么是替换元素与非替换元素 替换元素: 替换元素是浏览器根据其标签的元素与属性来判断显示具体的内容. 比如:<input /> type="text" 的是,这是一个文本输入框,换一个其他的时候,浏览器显示就不一样 (X)HTML中的<img>

非替换元素和替换元素

非替换元素和替换元素元素是文档结构的基础,在css里面,每个元素生成了包含内容的框(box),大家都叫"盒子".但是不同的元素显示方式是不同的,有占据一整行的,有水平一个挨着一个的.比如:div 与span的方式不一样. 什么是替换元素与非替换元素 替换元素: 替换元素是浏览器根据其标签的元素与属性来判断显示具体的内容. 比如:<input /> type="text" 的是,这是一个文本输入框,换一个其他的时候,浏览器显示就不一样 (X)HTML中的&

(转)详细分析css float 属性

float 属性定义元素在哪个方向浮动.以往这个属性总应用于图像,使文本围绕在图像周围,不过在 CSS 中,任何元素都可以浮动.浮动元素会生成一个块级框,而不论它本身是何种元素.div一个典型的块级元素,会单独占据一行. 先看看最基本的块级元素如何排列的.html代码,以下样式都是基于此. 代码如下: <div class="boxBg"> <div class="box1"> 框框1 </div> <div class=&