盒子模型.

本文深入介绍了CSS中的盒子模型,包括文档流、边框、内边距和外边距等概念。详细阐述了各部分的设置方式和相互影响,例如内容区的宽高、边框的宽度、颜色和样式,以及内边距和外边距对元素布局的影响。此外,还讨论了水平布局中过度约束的情况及浏览器如何调整元素位置。
摘要由CSDN通过智能技术生成

今天学习了盒子模型

1.文档流    2.   盒子模型   3.盒子模型之边框   4.盒子模型之内边距  5.外边距.  6.水平布局

1.

 <!--

      文档流(normal flow)

        网页是一个多层的结构,css可以给每一层设置样式,

          最终我们看到是最上面的一层。

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

        元素分为两种状态:在文档流中,脱离文档流

             

      之前将元素分为三类,块元素、行内元素、行内块元素

       分别具有一些特点,这些特点都是元素在文档流中的特点

        块元素:

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

        行内元素

          不会独占一行,宽高是被内容撑开,不可以自定义宽高

        行内块

          兼具块元素,行内元素的特点

      注意:

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

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

   

    -->

    <div>

      <p>厅衣灰样,得落没的。</p>

    </div>

2.

/* 布局相关样式

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

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

      /*

      网页中也有很多的元素,将各种元素摆放在合适的位置,

        盒模型将页面所有元素的形状都统一了,你在布局时,

        只需要考虑到元素的大小即可

      */

      /*  盒模型                   快递

          内容区 content           冰箱

          内边距 padding           泡沫

          边框   border           快递盒子      

          外边距 margin           快递离你的距离

         

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

      */

      .box1{

        width: 100px;

        height: 100px;

        background-color: red;

      }

      /*

      1、内容区 content:

         width:; 内容区的宽

         height:;  内容区的高

      */



 

    </style>

  </head>

3.

 .box {

        width: 200px;

        height: 200px;

        background-color: red;

        /* border-width: 10px; */

        /* border-color: transparent  transparent orange transparent ; */

        /* border-color: green; */

        /* border-style: solid; */

        border: green 10px solid;

        /* border-top: 10px solid green;

        border-right:10px solid green ;

        border-bottom:10px solid green ;

        border-left: 10px solid green; */

        border-bottom: none;

      }

    </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、right、bottom、left

          3、小箭头的写法

          border-color: transparent  transparent orange transparent ;

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

        边框的样式  border-style

           1、边框样式的种类

              solid   实线

              dotted  点状的虚线

              dashed  虚线

              double  双线

          2、可以写多个样式  

          规则跟border-width一样

          3、单独设置某一边样式

            border-XXX-style:;

                XXX:top、right、bottom、left

          4、border-style 默认值是none

     -->

    <!--

      边框 border

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

        三要素顺序是无所谓

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

        border-top

        border-right

        border-bottom

        border-left

      3、 border-bottom: none;  不要某边边框  

    -->

  </head>

  <body>

    <div class="box"></div>

  </body>

4.

<style type="text/css">

      /* 内边距  padding  是边框和内容区之间的距离

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

        padding-top:;

        padding-right: ;

        padding-bottom:;

        padding-left:;

      2、内边距padding简写

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

    */

      .box1 {

        width: 200px;

        height: 200px;

        background-color: #bfa;

        border: 10px green solid;

        /* padding-top: 30px;

        padding-right: 30px;

        padding-bottom: 30px;

        padding-left: 30px; */

        padding: 10px 40px;

      }

      /* 创建一个子元素box2占满box1,box2把box1内容区撑满了*/

      .box2 {

        width: 100%;

        height: 100%;

        background-color: red;

      }

      *{

        padding: 0;

        margin: 0;

      }

    </style>

  </head>

  <body>

    <!-- <div class="box1">

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

    </div> -->

    <ul>

      <li>11</li>

      <li>11</li>

      <li>11</li>

    </ul>

  </body>

5.

<!--

       外边距  margin

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

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

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

         margin-botoom 设置元素下外边距,正值,元素自己不懂,会挤下面的元素向下移动,负值,下面的元素向上移动

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

       

         margin简写

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

    -->

    <style type="text/css">

      *{

        margin: 0;

        padding: 0;

      }

      .box1 {

        width: 200px;

        height: 200px;

        background-color: #bfa;

        /* margin-top:-50px ; */

        /* margin-left: -50px; */

        /* margin-bottom: 50px; */

        /* margin-right: -5000px; */

        margin: 40px;

      }

      .box2 {

        width: 200px;

        height: 200px;

        background-color: yellow;

      }

    </style>

  </head>

  <body>

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

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

  </body>

6.

<style>

    .outer {

      width: 600px;

      height: 200px;

      border: 10px red solid;

    }

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

    /*    

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

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

   过度约束:

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

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

margin-left+border-left+padding-left + width + padding-right +

border-right+ margin-right=父元素内容区的宽度

40+20+0+100+0+20+0=600

  180 != 600

  浏览器如何调整

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

    40+20+0+100+0+20+ 420 =600

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

     (1) 设置1个auto   谁是auto,浏览器就调整谁

        margin-left  

          auto+20+0+100+0+20+0=600  auto=460

        width

          40+20+0+auto+0+20+0=600  auto=520

        margin-right

    (2)设置2个auto

        margin-left width    调整width

        width margin-right    调整width

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

      设置3个auto

        margin-left width margin-right  调整的就是width

      总结:

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

         width > margin-left margin-right

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

     */

    .inner {

      width: 100px;

      height: 100px;

      background-color: #bfa;

      border: 20px solid green;

      /* margin-left:auto ;

        margin-right:auto; */

      margin: 0 auto;

      padding: 0;

    }

  </style>

</head>

<body>

  <div class="outer">

    <div class="inner"></div>

  </div>

</body>

这就是盒子模型中基本属性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值