美文网首页
CSS盒模型、浮动布局和定位技术

CSS盒模型、浮动布局和定位技术

作者: Awey | 来源:发表于2016-12-08 18:19 被阅读182次

这部分总结来自我很早的时候看过的一本叫做《CSS 高效开发实战》的书。最近无意中从以前的一堆onenote笔记中翻到一点读那本书的时候的笔记。书写的并不好建议不要看,但是这部分知识讲的比较详细,就把它们挂到博客来咯。

1. CSS盒子模型

一个盒子模型由内至外包括:
内容(Content):默认情况下元素的宽高指的是内容的宽高(可通过box-sizing:border-box来修改元素宽高属性包含的范围)
内边距(Padding):内容与边框之间的距离
边框(Border):包裹元素和内边距的线框,
外边距(Margin):元素与其他元素之间的距离

2. 浮动布局

使用float属性,为元素设置浮动,有如下需要注意的事项:

  • (1) 为块级元素设置浮动后,其默认的100%宽度被修改为随内容自动调整
  • (2) 设置了浮动的元素会脱离正常的文档流,其自身的行为可通过该元素的前一个元素来确定:
    • 如果该元素的前一个元素是正常流内的元素,则该元素元素会紧贴在其下方;
    • 如果该元素的前一个元素也是浮动的元素,则该元素会紧跟在其右侧,如果该行没有足够空间则换至下一行;
  • (3) 浮动元素的后一个元素的行为则需要根据自身来判断:
    • 如果该元素也是浮动的元素,则按照2)中的规则进行判断;
    • 如果该元素是正常流的元素,则其自动补位到其前方最近的正常流的元素下方,但其中的内容会尽可能不被遮挡在它上方的浮动元素遮挡,甚至会因此溢出到元素的外面;
  • (4) 使用clear属性为元素设置清除浮动,清除浮动可以让某个元素的左右两侧不允许出现浮动的元素,该元素会为了避开浮动的元素而调整自己的位置。一个典型的用法是:当一个父元素中所有的元素都被设置为浮动时,父元素的高度无法被撑开,这时可以通过:
    • 在最后一个浮动的子元素后面添加带有clear:both属性的空元素
    • 使用:after伪类,在父元素的末尾生成带有display:block;clear:both属性的空字符串
    • 使用BFC块级格式化上下文概念,为父元素添加overflow:hidden属性,创建一个BFC

3. 定位技术

使用position属性对元素进行定位,有如下几种定位方式(属性值):

  • (1) static:正常流定位(无定位),默认的定位方式,带有该属性的元素left/top/bottom/right/z-index五个属性都不生效,无法设置偏移量
  • (2) relative:相对定位,相对于正常流定位,与正常流定位的区别是可通过left/top/bottom/right/z-index五个属性为元素设置偏移量
  • (3)absolute:绝对定位,相对于最近的有定位的祖先元素进行定位,如果没有则相对于整个HTML文档进行定位
  • (4) fixed:固定定位,相对于浏览器窗口进行定位,不随网页滚动

其中,absolute和fixed两种定位方式下元素会有如下变化:

  • (1) 如果被定位的元素是块级元素,则该元素的默认宽度不再是100%,而是根据内容自动调整
  • (2) 不定义z-index的情况下,absolutefixed的元素会覆盖在正常元素上
  • (3) 完全脱离文档流,不再占据文档空间

补充:可以使用z-index属性来设置浮动元素的z轴分层关系,值大的在上层,需要注意的是:

  • (1) z-index仅对已定位元素有效;
  • (2)z-index只可比较同级元素,只能对同级元素进行分层;
  • (3) z-index定位过的元素,他们的子元素也只能在其内部进行分层,原理同上一条
  • (4) z-index不会作用于窗口控件,如select对象。

相关文章

  • CSS盒模型、浮动布局和定位技术

    这部分总结来自我很早的时候看过的一本叫做《CSS 高效开发实战》的书。最近无意中从以前的一堆onenote笔记中翻...

  • CSS选择器

    这部分的主要内容是我从w3school网站的css参考中总结出来的。同另一篇博客CSS盒模型、浮动布局和定位技术一...

  • 前端面试试题

    HTML 和 CSS 页面布局 css盒模型 BFC 页面布局 有5中可以解决: ​ 第一种:浮动 ....

  • 工地施工狗的转行之路Day12

    CSS布局模型 flow(流动模型) layer(浮动模型) float(层模型) : 绝对定位(position...

  • CSS可视化格式模型学习

    CSS最重要的三个概念是浮动、定位和盒模型 盒模型 css中每个元素都是一个盒模型,盒模型有两种模式,第一种是标准...

  • CSS盒模型(重点)

    CSS三个大核心模块:盒模型 、浮动和定位,其余的都是细节。 网页布局就是把网页元素(文字,图片等)资源放入盒子里...

  • Css布局模型

    布局模型是建立在盒模型基础之上。 CSS包含三种基本布局模型 1. 流动模型(Flow) 2. 浮动模型(Floa...

  • HTML+CSS \02

    页面布局 css盒模型 BFC第一种:浮动 第二种:定位 第三种:flex布局 第四种:表格布局 第五种:网格布局...

  • Css核心

    盒模型 浮动 定位

  • CSS核心之盒模型

    盒模型概述 CSS中最重要的3个概念是浮动、定位和盒模型。这些概念决定了HTML文档中各个元素在页面哪里、如何显示...

网友评论

      本文标题:CSS盒模型、浮动布局和定位技术

      本文链接:https://www.haomeiwen.com/subject/vkmsmttx.html