前端学习笔记浮动布局
有这样一个问题,怎么让两个块并排显示,块用div表示。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | #div1{ background: black; width:100px; height:200px; } #div2 { background: red; width:100px; height:200px; } </ style > < div id ="div1"></ div > < div id="div2"></ div > |
效果是这样的:
由于div是block元素,不管你设置div是多宽都独占一行。所以按照上面的代码来写的话,div1和div2是并列显示的。我们得想想办法,后来查找资料,发现可以用float来实现,我们可以先让div1向左浮动,带入如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | <! DOCTYPE html> < html > < head > < title >test </ title > < meta charset="utf-8"> </ head > < body > < style > #div1{ background: black; width:100px; height:200px; float:left; } #div2 { background: red; width:100px; height:200px; } </ style > < div id ="div1"></ div > < div id="div2"></ div > </ body > </ html > |
效果如下:
咦?红色的块哪里去了呢?是因为给黑色的块设置了float属性,那么这个黑色的div就漂浮了起来,原来文档中所有的元素都处于同一个平面的,黑色的div设置了float属性之后就漂浮到上面的那个平面上去了,所以下面平面就留出了一块空地方,下面平面中的红色的块就填充了原来黑色块的位置了,所以黑块就把红块覆盖了。
那怎么让红色的块也显示出来呢?很简单让红色的块也向左浮动,float:left
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | <! DOCTYPE html> < html > < head > < title >test </ title > < meta charset="utf-8"> </ head > < body > < style > #div1{ background: black; width:100px; height:200px; float:left; } #div2 { background: red; width:100px; height:200px; float:left; } </ style > < div id ="div1"></ div > < div id="div2"></ div > </ body > </ html > |
效果如下:
怎么解释这个过程?还是一样的道理,黑色的块已经是上面那个平面的元素了,而红色的块原本是处于下面那个平面的,float之后就跑到上面这个平面了,那为什么这两个块就非要挨着呢?前面不是说div是块状元素吗?难道块状元素float之后就不是块状元素,不需要独占一行了吗?这是个疑问。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步