css盒子模型及盒子模型的类型

html-css012

css盒子模型及盒子模型的类型,第1张

转自 菜鸟教程

所有HTML元素可以看作盒子,在CSS中,"box model"这一术语是用来设计和布局时使用。

CSS盒模型本质上是一个盒子,封装周围的HTML元素,它包括: 边距(外边距) 边框 填充(内边距) ,和 实际内容

盒模型允许我们在其它元素和周围元素边框之间的空间放置元素。

下面的图片说明了盒子模型(Box Model):

转自 链接

盒子模型有两种,分别是W3C盒子模型(标准盒模型)和IE盒子模型(怪异盒模型)

1.标准盒模型中width指的是内容区域content的宽度;height指的是内容区域content的高度。

2.标准盒模型下盒子的大小 = content + border + padding + margin

1.怪异盒模型中的width指的是内容、边框、内边距总的宽度(content + border + padding);height指的是内容、边框、内边距总的高度

2.怪异盒模型下盒子的大小=width(content + border + padding) + margin

建议不要给元素添加具有指定宽度的内边距,而是尝试将内边距或外边距添加到元素的父元素和子元素。

即box-sizing属性可以指定盒子模型种类,content-box指定盒子模型为W3C(标准盒模型),border-box为IE盒子模型(怪异盒模型)。

--定义样式 border-style:

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<title>菜鸟教程(runoob.com)</title>

<style type="text/css">

    .block {

      width: 200px

  height:200px

      padding: 30px

  background-color: red

  border-style:solid

  border-width:10px

  border-color:green

  //border:10px solid yellow

  //border-radius: 20px

  //margin:auto

    }

</style>

</head>

<body>

    <div class="block">border</div>

</body>

</html>

--兄弟元素margin合并

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <title>Title</title>

    <style type="text/css">

        body {

            background: pink

        }

        .div {

            //overflow: hidden

            //margin: 0 auto

            width: 300px

            height: 600px

            background: #aaa

        }

        .div1 {

            width: 200px

            height: 200px

            background: red

            //margin: 50px 0px

            //float: left

        }

        .div2 {

            width: 200px

            background: green

            //margin: 50px 0px

            height: 200px

            //float: left

        }

    </style>

</head>

<body>

    <div class="div">

        <div class="div1"></div>

        <div class="div2"></div>

    </div>

</body>

</html>

----父子元素margin合并

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<title>菜鸟教程(runoob.com)</title>

<style type="text/css">

        body {

            background: pink

        }

        .div1 {

            //margin-top: 20px

            width: 450px

            height: 450px

            background: #aaa

//overflow:hidden

//border:1px solid red

        }

        .div2 {

            width: 200px

            height: 200px

            background: red

            //margin-top: 50px

        }

    </style>

</head>

<body>

    <div class="div1">

        <div class="div2"></div>

    </div>

</body>

</html>

--box-sizing

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<title>菜鸟教程(runoob.com)</title>

<style type="text/css">

.group {

      /* background-color: blue*/

      overflow: hidden

  }

    .block {

      width: 33.33%

      padding: 20px

      float: left

      //box-sizing: border-box

    }

    .red {

      background-color: red

//box-sizing: conten-box

//overflow: hidden

//outline:#00FF00 dotted thick

    }

    .green {

      background-color: green

    }

    .gray {

      background-color: gray

//box-sizing: border-box 

    }

</style>

</head>

<body>

<div class="group">

    <div class="block red">1</div>

    <div class="block green">2</div>

    <div class="block gray">3</div>

</div>

</body>

</html>

--盒子显示(display)类型

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<title>菜鸟教程(runoob.com)</title>

<style>

.background{

background-color:#F60

margin-bottom:5px

margin-left:5px

height:50Px

}

.display1{

display:block

}

.display2{

display:inline

//display:inline-block

}

</style>

<div class="background ">Div默认为 block</div>

<div class="background ">Div默认为 block</div>

<div class="background ">Div默认为 block</div>

<div class="background display2">修改为 inline</div>

<div class="background display2">修改为 inline</div>

<div class="background display2">修改为 inline</div>

<span class="background display1">加了block属性</span>

<span class="background display1">加了block属性</span>

<span class="background display1">加了block属性</span>

<span class="background">没加block属性</span>

<span class="background">没加block属性</span>

<span class="background">没加block属性</span>

</body>

</html>