CSS盒子模型

一,盒子模型的定义

 css的盒子模型,英文名为box model。这个叫法十分贴切,因为html页面中的各种元素标签就像一个个盒子一样堆在一起,类似于生活中快递店铺里面堆在一起的快递。

        所以,盒子模型是指:html中的各个元素都类似一个一个的盒子里面的物品,但是却叫做css盒模型,是因为css盒模型像一个盒子,把各种html元素包起来,将html元素进行封装,以便于网页布局与排版。下图就是一个盒子模型的示意图:

        <1>,图中蓝色方框指的是html元素,就是内容context部分,可以是一张图片、一个表格、一个表单等。其大小是可以修改的。属性width和height用于修改内容部分的宽和高,也就是其大小。

        <2>,图中绿色方框指的是padding部分,指的是内边距。padding部分是元素内容(context部分)与其最近一层束缚框的距离,类似于在一个方格里写字我们写在方格的中间,而与边框保持一定同一个道理。

         <3>,图中浅橘色方框指的是border部分,指的是这个边框的宽度,我们常见的就是宽度为1,也就是一条线。

         <4>,图中深橘色方框指的是margin部分,也叫边缘部分,他的作用是保证html元素之间的距离,比如网页上的两种图片需要保持一定的间距才显得井井有条。

        <5>,padding,border,margin实际上是每个html元素都存在的css属性。他们可以对元素的上下左右四个方向进行调整和限制。

        <6>,当存在盒子里嵌套盒子时,也就是html的标签嵌套时,里面的元素默认位置为左上角。

        <7>,由style=""引出要设置的padding,margin,border性质。

   如以下代码:

<body>
    <h3 style="padding: 10px;border: 5px solid blue; width: 10%;margin: 50px;background-color: aqua;">测试文字1</h3>
    <h3 style="padding: 10px;border: 5px solid blue; width: 10%;margin: 50px;background-color: aqua;">测试文字2</h3>
</body>

网页显示如下:

二,设置普通盒子模型的一些性质

1.关于盒子模型内容context部分如何设置

        <1>,content区域包括width和height两个属性。

        min-width:最小宽度        max-width:最大宽度

        min-height:最小高度        max-height:最大高度

        <2>, 在块级元素和行内元素内:

        宽度:块级元素的默认宽度为100%

                   行内元素的默认宽度为内容的宽度

         高度:块级元素和行内元素的默认高度都由其内容决定。

        注意:块级元素可以设置宽高属性,行内元素设置宽高属性无效

     

2.关于盒子模型内边距padding部分如何设置

        <1>,padding包括padding-top padding-bottom padding-left 和padding-right


padding-top:10px;
padding-right:10px;
padding-bottom:10px;
padding-left:10px;

        <2>,有以下简写方式

            (1)padding 边距1 

         只有一个数值时,指padding-top,padding-bottom,padding-left,padding-right四值均为边距1

             (2)padding 边距1 边距2

        表示padding-top和padding-bottom为边距1,padding-left和padding-right为边距2。

              (3)padding 边距1 边距2 边距3

        表示padding-top为边距1,padding-left和padding-right为边距2,padding-bottom为边距3。

               (4)padding 边距1 边距2 边距3 边距4

        表示padding-top为边距1,padding-right为边距2,padding-bottom为边距3,padding-left为边距4。

        <3>,padding的单位可为px和%(占比)

3.关于盒子模型边框border部分如何设置

        <1>,设置border由三部分组成:边框宽度(粗细) 边框样式 边框颜色(都由空格隔开)

                border-width:定义边框粗细,单位是px

                border-style:边框样式

有以下几个样式

  •    none:无边框,即忽略所有边框的宽度(默认值)
  •    solid :  边框为单实线(最常用)   
  •    dashed :边框为虚线
  •    dotted :边框为点线                                    

                border-color: 边框颜色

        <2>,简写方式

如以下代码:

border: 1px solid lightgrey;

4.关于盒子模型外边距margin部分如何设置

        <1>,margin用于设置盒子和盒子之间的距离 包括margin-top margin-left margin-bottom margin-right

        <2>,其简写方式和padding的相同

margin:10px;
/*表示上下左右都相距10px*/
margin:10px 15px;
/*表示上下外边距为10px,左右外边距为15px*/
margin:10px 15px 20px;
/*表示上面的外边距为10px,左右外边距为15px,下外边距为20px*/
margin:10px 15px 20px 20px;
/*表示上面的外边距为10px,右边的外边距为15px,下面的外边距为20px,左边的外边距为20px*/

三,弹性盒子模型

1.弹性盒子的定义

        弹性盒子(Flexbox/flex-container)是一种强大而灵活的布局模型,能够简化我们对网页布局的控制,并使页面在不同设备上的适应性更强。

2.与一般盒子模型的区别

        利用一般盒子模型能完成大部分的页面布局,但是对于一些特殊的页面布局,这种传统的盒子模型实现起来非常的不方便,比如垂直居中等等。     

        FlexBox弹性盒子模型布局,可以简便、完整、响应式地实现各种页面布局,可以比较灵活的使用 。

        注意:设为Flex布局以后,子元素的float、clear和vertical-align属性将失效。    

3.如何开启弹性盒子模型

        

<style>.flex-container{
            /* 基础样式 */
            border: 3px solid red;
            max-width: 800px;
            height: 600px;
            width: 800px;
            margin: auto;
            background-color: aqua;

            /* *1.!!!使用弹性盒子布局 默认主轴为x */
            display: flex;

            /* 2.定义弹性盒子主轴 row :x column:y */
            flex-direction: row-reverse;

            /* 3.定义弹性盒子是否换行 */
            flex-wrap: wrap; 

            /* 4.复合写法 */
            flex-flow: row wrap;
</style>

<1>.默认弹性布局(主轴为x):

display=flex;

<2>.定义弹性盒子主轴:

flex-direction: row-reverse;

(row:  x轴        column:y轴)

<3>,定义弹性盒子是否换行

flex-wrap:wrap(换行)

<4>,复合写法:

flex-flow:row wrap;

(以x轴为主轴且弹性盒子换行)

<style>
    .flex-container{
            /* 基础样式 */
            border: 3px solid red;
            max-width: 800px;
            height: 600px;
            width: 800px;
            margin: auto;
            background-color: aqua;

            /* 5.定义子项目! 在主轴!上的对齐方式 stretch使用它时,需要取消子项的高度 */
            justify-content: center;

            /* 6.在!交叉轴!上的对齐方式 */
            align-items: center;

            /* 7.!多行或者多列!对齐方式 */
            align-content: center;

        }

</style>

<5>.定义子项目在主轴(水平)上的对齐方式

justify-content:center;

<6>.在交叉轴(垂直)上的对齐方式 

 align-items: center;

<7>.多行或者多列对齐方式 

 align-content: center;

4.弹性子项目----flex-items

<1>.格式:

<style>
.flex-item{
            /* width: 100px;
            height: 100px; */
            background-color: bisque;
            margin: 10px;
        }
</style>

<2>.设置子元素 

<style>
.flex-item:nth-child(1){
            /* 1.设置子元素的索引 */
            order:3;
            /* 2.设置子元素的放大比例---不要使用自动换行 */
            flex-grow: 2; 

            /* 3.设置当前的缩小比例 */
             flex-shrink: 10; 

            /* 4.设置其基本宽度,默认是自适应的 */
            flex-basis: 200px; 

            /* 5.复合写法 */
            flex: auto 2 10;

            /* 6.子元素在交叉轴上的对齐方式 */
            align-self: stretch;
         }
         .flex-item:nth-child(2){
            /* flex-grow: 1; */
            flex-shrink: 3;
            flex-basis: 200px;
         }
         .flex-item:nth-child(3){

            /* flex-grow: 1; */
            flex-shrink: 3;
            flex-basis: 200px;
         }
     </style>

掌握弹性盒子的使用是我们布局必不可少的一种方法。 

  • 8
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值