自学从零开始的CSS基础教程(day6)

目录

注:本文基于VSCode

一、文档流

二、盒子模型

三、盒子模型的边框

四、内边距

五、外边距

六、水平布局


一、文档流

文档流(normal flow)

            网页是一个多层结构,CSS可以给每一层设置样式,最终我们看到的是最上面的一层

            文档流是网页最底下的那一层

            元素分为两种状态:

                1、在文档流中

                2、脱离文档流

        之前将元素分为三类,块元素、行内元素、行内块元素,分别具有一些特点,

        这些特点都是元素在文档流中的特点:

            块元素:不会独占一行,宽是父元素内容区宽度,高被内容撑开

            行内元素:不会独占一行,宽高被内容撑开,不能自定义宽高

            行内块:兼具块元素、行内元素的特点

    注意:    

        1、一旦脱离文档流,以上的分类,以上分类的特点都不复存在

        2、我们创建的元素默认是在文档流中

二、盒子模型

布局相关样式:

            文档流默认的布局,浮动,定位,弹性盒子等

       

        盒模型、盒子模型、框模型(box model)

        网页中也有很多元素,将各种元素摆放在合适的位置,盒模型将页面所有元素的形状都统一了,

        你在布局时只需要考虑元素的大小即可

        盒模型:                        快递

            内容区  content             冰箱

            内边距  padding             泡沫

            边框    border             快递盒子

            外边距  margin           快递离你的距离

        盒子的大小:内容区、内边距、边框 有关系,跟外边距没有关系

            内容区content

            width:内容区的宽

            height:内容区的高

<style type="text/css">
.box1{
            width: 100px;
            height: 100px;
            background-color: rebeccapurple;
        }

    </style>

三、盒子模型的边框

边框(border)边框用来隔开盒子内部和盒子外部

            设置边框,三个要素缺一不可,边框的宽度,边框的颜色,边框的样式

        边框的宽度  border-width

         1、可以设置多个值,空格隔开即可,

            4个值 上 右 下 左(顺时针)

            3个值 上 左右 下

            2个值 上下 左右

            1个值 上下左右

         2、单独设置某一边的宽度

         border-top-width

         border-bottom-width

         border-left-width

         border-right-width

         3、border-width有默认值,默认在1-3px

        边框的颜色  border-color

        1、可以设置多个值

            规则跟border-width一样

        2、可以单独设置某一边的颜色

            border-xxx-color

            xxx:top、bottom、left、right

            transparent:透明色

        3、小箭头的写法:

            border-color:transparent transparent transparent orange;

        4、border-color有默认值,默认为黑色

        边框的样式  border-style

            1、边框样式的种类

                solid   实线

                dotted  点状的虚线

                dashed  虚线

                double  双线

            2、可以写多个样式

                规则和border-width一样

            3、可以单独设置某一边样式

                规则和border-width一样

            4、没有默认值


 

    边框border简写:

        1、语法:border:大小 颜色 样式;

            三要素顺序无所谓

        2、单独设置某一边的边框

            border-top:大小 颜色 样式

            border-bottom

            border-left

           

        3、border:none;不要某一边框

        border-right:none

<style>
        .box{
            width: 200px;
            height: 200px;
            background-color: red;
            border-width: 10px 20px 30px 40px;
            border-top-width: 20px;
            border-color: green;
            border-style: solid dotted double dashed;
        }
    </style>
</head>

<body>
    <div class="box">

    </div>

</body>

</html>

四、内边距

内边距:    padding 边框和内容区之间的距离

        1、可以单独设置某一边的内边距

            padding-top

        2、内边距padding的简写

            可以写多个值,规则与border-width一样

style>
        .box1{
            width: 100px;
            height: 100px;
            background-color: blue;
            padding-top: 30px;
        }
        /*box2占满box1*/
        .box2{
            width: 100%;
            height: 100%;
            background-color: red;


        }

    </style>
</head>

<body>
    <div class="box1">
        <div class="box2"></div>
    </div>
    

</body>

</html>

五、外边距

外边距  margin(块元素)

            不影响盒子的大小,可以改变盒子的位置

            margin-top  设置元素上外边距,如果是正值,元素向下移动,如果是负值,元素向上移动

            margin-right  设置元素右外边距,元素没有效果  

            margin-left 设置元素左外边距,如果是正值,元素像右移动,如果是负值,元素向左移动

            margin-bottom   设置元素下外边距,如果是正值,元素自己不动,会挤下面的元素向下移动

                        负值,下面的元素向上移动

           

            margin简写

                margin  可以设置多个值,规则跟padding一样

六、水平布局

面试题:什么是过度约束,浏览器是如何调整水平方向值?

        水平布局:

        水平方向能影响到inner所占位置的因素:

            margin-left,border-left,padding-left,width,margin-right,border-right,padding-right

        过度约束:

            浏览器规定元素水平方向七个值相加必须等于其父元素内容区的宽度,

            如果不等于浏览器就会自己调整,让等式成立

        浏览器如何调整:

            1、如果水平方向7个值中没有auto,浏览器会自动调整margin-right的值

            2、7个值中有3个值可以设置auto,margin-left,width,margin-right

                设置1个auto:三种情况   谁是auto浏览器就调整谁

                设置2个auto:三种情况  

                    margin-left width   调width

                    margin-right width  调width

                    margin-left margin-right    同时调整margin-left和margin-right

                设置3个auto:一种情况

                    调整width

            总结:1、如果7个值中有auto,调整的顺序:

                    width>margin-left margin-right

                2、如果想让块元素水平方向居中,必须width为固定值,左右外边距为auto

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值