zoukankan      html  css  js  c++  java
  • CSS学习(11)常规流

    盒模型:规定单个盒子的规则

    视觉格式化模型(布局规则):页面中多个盒子的排列规则

    三种方式:

    1.常规流

    2.浮动

    3.定位

    常规流布局

    常规流   也可以叫做   文档流、普通文档流、常规文档流

    所有元素,默认情况下,都属于常规流布局

    总体规则:块盒独占一行,行盒水平依次排列

    包含块(containing block):每个盒子都有它的包含块,包含块决定了盒子的排列区域。

    绝大情况下,一个盒子的包含块,就是其父元素的内容盒(子元素跟着父元素移动)

    块盒

    1.每个块盒的总宽度,必须刚好等于包含块的宽度

    宽度的默认值是auto,意思是将剩余空间吸收掉(如父元素内容盒宽度100px 子元素border宽度1px padding宽度10px width设为auto,则子元素内容盒宽度为78px)

    居中方案:子元素设定宽度,margin设置为auto

    2.每个块盒垂直方向上的auto值

    height:auto,适应内容的高度

    margin:auto,表示0

    3.百分比取值

    padding、宽、margin可以取值百分比

    以上是相对于包含块的宽度。

    高度的百分比:

    ①父元素未设置高度,子元素设置百分比无效

    ②父元素设置高度,子元素按照父元素高度*百分比计算(如果内容过多,则会溢出)

    4.外边距合并(height)

    两个块盒相邻,外边距会重叠。(两个外边距取最大值)

    父子元素,若父元素没有border和padding,父子元素的margin也会合并(只要是相邻就会合并)

    浮动

    1.文字环绕

    2.横向排列

    浮动的基本特点:

    修改float属性值为:

    left:左浮动,元素靠上靠左

    right:右浮动,元素靠上靠右

    默认值为none

    1.被设置浮动的元素,会变成块盒(display属性变成block)

    2.浮动元素的包含块,为父元素的内容块。

    3.宽度、高度为auto时,适应内容宽度

    4.margin为auto时,为0

    5.浮动盒子在排列时会避开常规流块盒,而常规流块盒无视浮动盒子

    6.行盒在排列时会避开浮动元素(如果文字没有在行盒中,浏览器会自动生成一个包裹文字的行盒,叫做匿名行盒)

    高度坍塌

    原因:常规流盒子的自动高度,在计算时,不会考虑浮动盒子

    解决办法:清除浮动

    css属性:clear

    默认值:none

    left:清除左浮动,该元素必须出现在前面所有左浮动盒子的下方

    right:清除右浮动,该元素必须出现在前面所有右浮动盒子的下方

    both:清除所有浮动,该元素必须出现在前面所有浮动盒子的下方

  • 相关阅读:
    Java基础之:构造方法(构造器)与this关键字
    Java基础之:属性与局部变量作用域
    Java基础之:方法重载与可变参数
    Java基础之:成员方法与传参机制
    Java基础之:类与对象
    Java基础之:数组练习题
    Java基础之:二维数组
    Promise对象的简单用法
    如何用vue-cli初始化一个vue项目
    get和post请求的区别
  • 原文地址:https://www.cnblogs.com/1016391912pm/p/11570138.html
Copyright © 2011-2022 走看看