文档流

1.元素在文档流中的排列方式

block元素:

独占一行,默认block元素宽度自动填满其父元素宽度。block元素可以设置width、height、margin、padding属性。

inline元素:不会独占一行,多个相邻的行内元素会排列在同一行里,直到一行排列不下,才会              新换一行,其宽度随元素的内容而变化。inline元素设置width、height属性无效。 inline元素的margin和padding属性。水平方向的padding-left, padding-right, margin- left, margin-right都产生边距效果;但竖直方向的padding-top, padding-bottom, margin-top, margin-bottom不会产生边距效果。

常见的块级元素:div、form、table、p、pre、h1~h5、dl、ol、ul 等。

常见的内联元素:span、a、strong、em、label、input、select、textarea、img、br等。

2.基本概念

文档流,指的是元素排版布局过程中,元素会自动从左往右,从上往下的流式排列。

脱离文档流,也就是将元素从普通的布局排版中拿走,其他盒子在定位的时候,会当做脱离文档流的元素不存在而进行定位。

只有绝对定位absolute和浮动float才会脱离文档流。

3.1 float部分无视

(1)定义:浮动的框可以向左或向右移动,直到它的外边缘碰到包含框或另一个浮动框的边框为止。

(2)浮动元素后跟block元素&浮动元素后跟inline元素对布局的影响?

<body>

<div style="background-color:pink;width:100px;height:100px;" >box1</div>

<div style="background-color:green;width:100px;height:100px;float:left;">box2 向左浮动</div>

<div style="background-color:red;width:200px;height:200px;">box3</div>

/* <span style="background-color:red;width:200px;height:200px;">box3</span>*/

</body>

后跟block元素:浮动的框之后的block元素元素会认为这个框不存在,但其中的文本依然会为这个元素让出位置。(例1)

后跟inline元素:浮动的框之后的inline元素,会为这个框空出位置,然后按顺序排列(例2)

(3)元素浮动造成的两个div覆盖或相互重叠如何解决?

(3.1)左右结构div盒子重叠现象:一般是由于相邻两个DIV一个使用浮动一个没有使用浮动。如上面的例1:相邻的两个盒子box2向左浮动、box3未浮动。一个使用浮动一个没有导致DIV不是在同个“平面”上,但内容不会照成覆盖现象,只有DIV形成覆盖现象。

————解决方法:要么都不使用浮动;要么都使用float浮动;要么对没有使用float浮动的DIV设置margin样式。如上面的例1中box2宽度是100,只需要对box3设置margin-left:102px就可以实现不重叠。

(3.2)上下结构div盒子重叠现象

<body>

<div id="container" style="border:1px solid red;width:300px;">

        <div  style="background-color:green;float:left;width:100px;height:100px;">box1  向左浮动 </div>

        <div style="background-color:green;float:left;width:100px;height:100px;">box2 向右浮动 </div>

</div>

<div style="background-color:pink;height:40px;">box3</div>

</body>


.container和box3的布局是上下结构,上图发现box3跑到了上面,与.container产生了重叠,但文本内容没有发生覆盖,只有div发生覆盖现象。这个原因是因为第一个大盒子里的子元素使用了浮动,脱离了文档流,导致.container没有被撑开。box3认为.container没有高度(未被撑开),因此跑上去了。

————解决方法:1.文字内容多少已确定的情况下,给.container设置一个高度

                                 2.文字内容不确定,可以用清除浮动,具体有两种方法,如下:

2-1 使用css clear清除浮动

clear属性规定元素的哪一侧不允许出现浮动元素

clear语法:clear : none | left | right | both

取值:

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

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

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

both : 不允许有浮动对象

注意:

clear属性只会对自身起作用,而不会影响其他元素。如果一个元素的右侧有一浮动对象,而这个元素设置了不允许右边有浮动对象,即clear:right,则这个元素会自动下移一格,达到本元素右边没有浮动对象的目的。

【例子】

例3:box1向右侧浮动,box2不设置clear属性

例4:box1向右侧浮动,box2设置clear:right,表示右侧不允许出现浮动元素,则box2自动下移一行

例5:box1向左浮动,box2和box1出现重叠

例6:在box2中设置clear:left;表示左侧不允许出现浮动元素,box2同样会下移


*最佳:一般都会增加一个空div块,并使用clear:both来设定表示两侧都不允许有浮动元素。这样新的空div块会下移,达到撑开父元素的目的

<body>

<div id="container" style="border:1px solid red;width:300px;">

      <div style="background-color:green;float:left;width:100px;height:100px;">b1</div>

      <div style="background-color:green;float:left;width:100px;height:100px;">b2</div>

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

</div>

<div style="background-color:pink;height:40px;">b3</div>

</body>


2-2 给父元素设置overflow:hidden来清除浮动

overflow:hidden的含义是超出的部分要裁切隐藏,float的元素虽然不在普通流中,但是他是浮动在普通流之上的。那从侧面看,它浮动的部分已经是溢出了,所以清除了它的浮动属性后,它重新回到普通流之内,可以清除平面间的溢出部分。

参考:www.cnblogs.com/shenfangfang/p/5278528.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,542评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,596评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,021评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,682评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,792评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,985评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,107评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,845评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,299评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,612评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,747评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,441评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,072评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,828评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,069评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,545评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,658评论 2 350

推荐阅读更多精彩内容