CSS 布局的三种机制

一、标准流

块级元素

  • 独占一行,从上到下排列
  • 默认宽度同父元素
    div、hr、p、h、ul、ol、dl、form、table

行内元素

  • 一行内显示,超出自动换行
    span、a、i、em

二、浮动

  • 任何元素都可以添加,变为块级元素(相当于行内块)
  • 脱离标准流,到指定位置
  • 漂浮在普通流的上面
  • 添加浮动属性,元素不占位置

多个盒子处于一行处理

  • 行内块属性
    默认有缝隙,难以处理
  • 浮动完美解决

属性

  • none
  • left
  • right

注:一般为了避免和标准流影响,浮动元素必须有一个标准流的父亲规范

与父盒子

  • 贴着盒子的内边框
  • 不会超过盒子的内边距

与兄弟盒子

  • 浮动的元素只会影响当前的或者后面的标准流盒子,不影响前面的标准流
  • 建议兄弟盒子都浮动,方便处理

清除浮动

  • 很多情况下父元素不方便给高度,子元素浮动后不占位置,导致父盒子无高度,影响整个页面布局
  • 清除浮动,父盒子自动获取子元素最大的高度
  • clear
    属性leftrightboth(常用)
    a> 额外标签法
    浮动元素末尾添加空标签,并为该标签添加属性clear: both;
    注:W3C推荐,通俗易懂,但无意义
    b> 父级添加overflow
    overflow属性设为hidden|auto|scroll
    注:内容增多时不会自动换行导致内容被隐藏,无法显示需要溢出的元素
    c> 使用after伪元素
    .clearfix:after { content:""; display:block; height:0; clear:both; visibility:hidden;}
    .clearfix {*zoom:1;} /IE6、7专有/
    d> 双伪元素
.clearfix:before,
.clearfix:after {
  content:"";
  display: table;
}
.clearfix:after {
  clear:both;
}
.clearfix {
  *zoom:1;
}

三、定位

  • 定位 = 定位模式 + 边偏移
  • 边偏移
    top、bottom、left、right
  • 定位模式 position
    static、relative、absolute、fixed,默认静态定位

静态定位

  • 默认定位方式
  • 按照标准流特性摆放,无偏移

相对定位

  • 相对于原来自身在标准流中的位置偏移
  • 保留原来标准流中的位置

绝对定位

  • 以带有定位的父级元素来移动位置(父元素无定位时,以浏览器为基准)
  • 完全脱离标准流,不占位置
  • 子绝父相 (子级绝对定位,父级相对定位)

固定定位

  • 绝对定位的特殊形式,以浏览器可视窗口为基准

定位拓展

  • margin auto在绝对定位|固定定位中无效,水平居中写法
    左移父级的一半,再返回自身的一半
.abs {
          position: relative;
}
 .abs .son {
            width: 200px;
            height: 200px;
            position: absolute;
            left: 50%;
            margin-left: -100px;
        }
  • 在相对、绝对、固定定位中,z-index 调整堆叠顺序,默认0,赋值正整数或负整数,在其他流中无效
  • float、固定定位和绝对定位,造成inline-block效果
  • 浮动、绝对定位不会造成外边距合并
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、CSS入门 1、css选择器 选择器的作用是“用于确定(选定)要进行样式设定的标签(元素)”。 有若干种形式的...
    宠辱不惊丶岁月静好阅读 1,653评论 0 6
  • 1.CSS基本概念 1.1 CSS的定义 CSS(Cascading Style Sheets)层叠样式表,主要用...
    寥寥十一阅读 1,905评论 0 6
  • 目录 内容 一. 我对标签、元素、盒子的理解 相信很多人和我之前一样,对于web的许多概念也都知道是什么意思,大家...
    科研者阅读 735评论 2 2
  • 一、标准流(普通流/文档流) 所谓的标准流: 就是标签按照规定好默认方式排列. 块级元素会独占一行,从上向下顺序排...
    testleaf阅读 2,421评论 1 7
  • 概述 在网易云课堂学习李南江老师的《从零玩转HTML5前端+跨平台开发》时,所整理的笔记。笔记内容为根据个人需求所...
    墨荀阅读 2,396评论 0 7