HTML布局

浏览器是怎么布局HTML的元素的?

浏览器获取HTML文档后,先安置块级元素。从HTML的第一个块级元素开始,从上到下的的顺序显示所有的块级元素。一个块级元素,换行,再一个块级元素。这就是flow。

块级元素内的内联元素一个挨一个的排列。一行排不完,排到第二行去。

每个元素都是一个box。

两个相互靠近的内联元素的margin为两个内联元素的margin之和。

当一个块级元素出现在另一个块级元素上面时,第一个元素的下外边距与第二个元素的上外边距会发生合并。当一个元素包含在另一个元素中时(假设没有内边距或边框把外边距分隔开),它们的上和/或下外边距也会发生合并合并之后的外边距为两个块级元素最大的那个margin值。

float属性

当一个元素设置了float属性,它就不是正常的元素,不遵从flow原则

floated元素必须要设置一个width属性。浏览器按照从上到下的顺序安排块级元素,安排好了h1,h2,碰到有float:right的元素p,把它浮动到最右边。继续安排后面的h2,p,等元素。

因为floated不是正常的元素。其后面的块级元素会当作它不存在,占据了它的位置。但是块级内的内联元素很绅士,还是尊重了floated元素的边界,没有越界。

在正常的元素设置clear:right 表示不要在该元素右边放置floated元素。

有position:absolute的元素跟floated元素类似,不仅其后面的块级元素会当作它不存在,连内联元素也会忽视它,占据了它的位置。最终的结果是absolute元素会覆盖一部分块级元素的内容。正常元素不能通过使用clear属性避免absolute元素

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1.在什么场景下会出现外边距合并?如何合并?如何不让相邻元素外边距合并?给个父子外边距合并的范例 概念:在CSS当...
    饥人谷_任磊阅读 4,077评论 0 3
  • •前端面试题汇总 一、HTML和CSS 21 你做的页面在哪些流览器测试过?这些浏览器的内核分别是什么? ...
    Simon_s阅读 6,646评论 0 8
  • 前面学习了使用HTML为网页添加内容,要对所添加的内容进行布局,就需要使用到CSS,JS等,这里就记录一下自己关于...
    wxyzcctn阅读 3,627评论 0 3
  • 2019-04-10 div 块元素,所有块元素都独占一行进行格式渲染 div的float属性具有传导性,如果多个...
    Mr_J316阅读 4,068评论 0 0
  • 1:html中常见的有3种布局方式: 1:文档流布局(电脑默认的布局方式) 2:浮动布局 3:定位 文档流布...
    回忆丶阑珊阅读 3,590评论 0 4

友情链接更多精彩内容