chapter07——CSS样式基础(3)

136 阅读2分钟

盒模型

块:

独占一行,可以设置宽高

行内:

没有宽高
有行高
有外边距
box-sizing 没有用

行内块:

img
input
可以设置宽高
不会独占一行
有行高
有内外边距
有边框

修改元素排列方式:

方法一:display:
        inline 行内
        block 块级元素,默认宽度100%
        table 块级元素,以表格的形式呈现,默认被撑开,可以处理外边距重叠问题
        inline-block 行内块
        flex 弹性布局
        none 隐藏元素,在页面上不占空间

设置元素的可见性:

方法二:visibility: 
        visible 默认值,可见的
        hidden  隐藏元素,空间仍然占着
方法三:高度设置为0,内容还在,可以设置 溢出隐藏
方法四:设置元素透明:opacity:0-1; 空间仍然占着
    

布局

行内+行内块+块布局:

块:
    水平居中布局:margin:0 auto;不能处理行内和行内块
行内块+行内:
    父容器字体居中:text-align:center;
    行内块并列时会有3px的间隙,间隙是换行造成的,间隙大小跟随父容器字体大小变化

文档流:

文档最底层的排列
文档流上边的层次元素,叫脱离文档流
文档流上边的元素会分为行内、块、行内块排列

float 浮动布局:

left 左浮动
right 右浮动

问题:

1、脱离文档流
2、宽度丢失
3、产生父元素高度塌陷问题
4、会对后边的元素造成影响

解决:

1、在父容器最下边添加一个块元素,块元素没有高度,清除浮动影响;
缺点:文档中添加了没有用的元素
2、用伪元素在父元素末尾添加一个块元素,无高度,清除浮动影响

清除浮动影响:

clear:
    left 清除左浮动
    right 清除右浮动
    both 清除影响最大的那侧浮动

既想解决高度塌陷问题,又要解决外边距重叠问题:

    #app::after,#app::before{
        content: "";
        display: table;
        clear: both;
    }

开发规范:

1、给需要解决塌陷和重叠问题的容器添加固定类名:clearfix
2、给clearfix添加::before::after解决高度塌陷和重叠问题
3、添加的内容要求为空内容,设display:table