关于 CSS 布局——传统的布局解决方案

传统的布局解决方案

display 属性 + position 属性 + float 属性 + z-index 属性

关于 display

在配置页面布局中 display 是非常重要的一个属性,它的值表示了元素在页面中的表现形式;在HTML中默认的display属性取决于HTML规范所描述的行为或浏览器/用户的默认样式表,大部分元素的display属性,预设值通常是 blockinline其中一个。
关于 display 的值,这里有详细的列表。

  • div 是一个标准的 block 元素;
  • span 是一个标准的 inline 元素;
  • none 可以隐藏元素时期不显示;

关于 position

CSS position属性用于指定一个元素在文档中的定位方式。toprightbottomleft 属性则决定了该元素的最终位置。

  • static
    该关键字指定元素使用正常的布局行为,即元素在文档常规流中当前的布局位置。此时top, right, bottom, leftz-index属性无效。

  • relative
    该关键字下,元素先放置在未添加定位时的位置,再在不改变页面布局的前提下调整元素位置(因此会在此元素未添加定位时所在位置留下空白)。position:relativetable-*-group,table-row, table-column, table-cell, table-caption元素无效。

  • absolute
    不为元素预留空间,通过指定元素相对于最近的非 static 定位祖先元素的偏移,来确定元素位置。绝对定位的元素可以设置margin,且不会与其他边距合并。绝对定位和 float 混用会使 float 失效。

  • fixed
    不为元素预留空间,而是通过指定元素相对于屏幕视口(viewport)的位置来指定元素位置。元素的位置在屏幕滚动时不会改变。打印时,元素会出现在的每页的固定位置。
    fixed属性会创建新的层叠上下文。当元素祖先的transform 属性非none时,容器由视口改为该祖先。这儿有一篇文章!

  • sticky
    盒位置根据正常流计算(这称为正常流动中的位置),然后相对于该元素在流中的 flow root(BFC)和 containing block(最近的块级祖先元素)定位。在所有情况下(即便被定位元素为 table 时),该元素定位均不对后续元素造成影响。当元素 B 被粘性定位时,后续元素的位置仍按照 B 未定位时的位置来确定。position: sticky 对 table 元素的效果与 position: relative 相同。

    红色盒子 position: sticky 效果图

关于 float

float CSS属性指定一个元素应沿其容器的左侧或右侧放置,允许文本和内联元素环绕它。

  • float 元素的定位
    当一个元素浮动之后,它会被移出正常的文档流,然后向左或者向右平移,一直平移直到碰到了所处的容器的边框,或者碰到另外一个浮动的元素。
  • clear 清除浮动
    元素向下移动清除之前的浮动,常见的值有left,right,both,none
    详见此页。
  • clearfix 密技
    在浮动的父元素上添加clearfix选择器。
    详见此页。
.clearfix::after{
  content: '';
  display: block;
  clear: both;
}

关于 z-index

当元素之间重叠的时候,z-order 决定哪一个元素覆盖在其余元素的上方显示。 通常来说 z-index 较大的元素会覆盖较小的一个。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,796评论 1 92
  • 1. 前言 前端圈有个“梗”:在面试时,问个css的position属性能刷掉一半人,其中不乏工作四五年的同学。在...
    YjWorld阅读 4,528评论 5 15
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 27,642评论 1 45
  • 学会使用CSS选择器熟记CSS样式和外观属性熟练掌握CSS各种选择器熟练掌握CSS各种选择器熟练掌握CSS三种显示...
    七彩小鹿阅读 6,332评论 2 66
  • 昨天晚班十点才下班 今天又是早班 下班回家后就爬楼听课 做笔记 每学一天都有新的收获 昨天老师讲了三位一体和客户...
    卢其莲阅读 276评论 0 0