盒子模型

盒子模型

1 边框-border

  1. 边框粗细
  2. 边框样式
  3. 边框颜色

2 盒子 - div

  1. 内边距 - padding
  2. 外边距 - margin

让元素居中:

  • margin: 外层盒子需要有宽度,居中的盒子也要有宽度,设置在居中盒子属性中
  • text-align:外层盒子要有宽度,设置在外层盒子属性
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <style>
        .box1{
            border: 2px solid pink;
            width: 1000px;
            text-align: center;
        }
        .box2{
            margin: 0 auto;
            width: 100px;
        }
    </style>
    <title>Title</title>
</head>
<body>
<div class="box1">
    <div class="box2">
        <img src="image/a.jpg" alt="" style="width: 100px;margin: 0 auto">
    </div>
</div>
</body>
</html>

3 圆角边框 - border-radius

顺序: 左上 右上 右下 左下

左上右下 右上左下

4 阴影 - box-shadow

颜色 位置 虚化程度

浮动

  • 块级元素:独占一行
h标签  p  div   列表。。。
  • 行内元素:不独占一行
span  a   img   strong。。。

行内元素可以被包含在块级元素中,反之不可以

1 display

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        /*block   块元素
          inline  行内元素
          inline-block  是块元素,但是可以内联在一行
        */
        div{
            height: 200px;
            width: 200px;
            border: 2px solid yellow;
            display: inline-block;
            margin: 0;
        }
        span{
            height: 200px;
            width: 200px;
            border: 2px solid yellow;
            display: inline-block;
        }
    </style>
</head>
<body>
<div>
    块级元素div
</div>
<span>
    行内元素span
</span>
</body>
</html>

2 float

左右浮动

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>浮动</title>
    <style>
        /*float:right  浮动
          使元素浮在盒子上方
          clear:both  浮动的块元素
        */
        .box{
            border: 2px solid;
        }
        .box div{
            display: inline-block;
            float: right;
            clear: both;
        }
    </style>
</head>
<body>
<div class="box">
    <div><img src="../images/t1.jpg" alt="" width="320px" height="180px"></div>
    <div><img src="../images/t2.jpg" alt="" width="250px" height="332px"></div>
    <div><img src="../images/t3.jpg" alt="" width="120px" height="85px"></div>
</div>
</body>
</html>

3 父级元素边框塌陷的问题

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>浮动</title>
    <style>
        /*float  浮动
          使元素浮在盒子上方
          clear:both  浮动的块元素
        */
        /*父级元素塌陷的解决办法:*/
        /*1、设置父级元素的大小*/
        /*2、在父级元素中增加一个overflow : hidden属性
            overflow用来处理元素溢出
            hidden  隐藏溢出元素
            scroll  滑轨显示
        */
        .box{
            border: 2px solid;
            /*overflow: hidden;*/
        }
        .img1{
            display: inline-block;
            float: right;
        }
        .img2{
            display: inline-block;
            float: right;
            clear: right;
        }
        .img3{
            display: inline-block;
            float: right;
            clear: right;
        }
        /*3、在最下面添加一个空的块元素*/
        /*.clear{*/
            /*clear: both;*/
            /*margin: 0;*/
            /*padding: 0;*/
        /*}*/
        /*4、在父级元素最后添加一个伪类
             原理和添加块元素相同
         */
        .box:after{
            content: '';
            display: block;
            clear: both;
        }
        /*总结:
             1、浮动元素后面添加空div:简单,但是尽量避免空div
             2、设置父级元素的高度:简单,元素假设有了固定高度,就会被限制
             3、overflow:简单,下拉的一些场景避免使用
             4、父类添加一个伪类:after    写法稍微复杂但是没有副作用,推荐使用
        */
    </style>
</head>
<body>
<div class="box">
    <div class="img1"><img src="../images/t1.jpg" alt="" width="320px" height="180px"></div>
    <div class="img2"><img src="../images/t2.jpg" alt="" width="250px" height="332px"></div>
    <div class="img3"><img src="../images/t3.jpg" alt="" width="120px" height="85px"></div>
    <!--<div class="clear"></div>-->
</div>
</body>
</html>

定位

1 相对定位

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        /*相对定位 : position:relative
            相对于自己原来的位置进行偏移
            仍然在标准文档流中
            原来的位置会被保留
        */
        div{
            margin:10px;
            padding: 5px;
            font-size: 12px;
            line-height: 10px;
        }
        #father{
            border: 2px solid red;
        }
        #first{
            border: 2px solid pink;
            background-color: pink;
            position: relative;/* 相对定位:上下左右  */
            bottom: 20px;
        }
        #second{
            border: 2px solid saddlebrown;
            background-color: saddlebrown;
            position: relative;
            right: -20px;
        }
        #third{
            border: 2px solid aqua;
            background-color: aqua;
            position: relative;
            left:20px;
        }
    </style>
</head>
<body>
<div id="father">
    <div id="first">第一个盒子</div>
    <div id="second">第二个盒子</div>
    <div id="third">第三个盒子</div>
</div>
</body>
</html>

2 绝对定位

  1. 没有父级元素定位的前提下,相对于浏览器定位
  2. 父级元素存在定位,相对于父级元素定位
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        /*相对定位 : position:relative
            相对于自己原来的位置进行偏移
            仍然在标准文档流中
            原来的位置会被保留
        */
        div{
            margin:10px;
            padding: 5px;
            font-size: 12px;
            line-height: 10px;
        }
        #father{
            border: 2px solid red;
        }
        #first{
            border: 2px solid pink;
            background-color: pink;
            position: relative;/* 相对定位:上下左右  */
            bottom: 20px;
        }
        #second{
            border: 2px solid saddlebrown;
            background-color: saddlebrown;
            position: relative;
            right: -20px;
        }
        #third{
            border: 2px solid aqua;
            background-color: aqua;
            position: relative;
            left:20px;
        }
    </style>
</head>
<body>
<div id="father">
    <div id="first">第一个盒子</div>
    <div id="second">第二个盒子</div>
    <div id="third">第三个盒子</div>
</div>
</body>
</html>

3 固定定位

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>固定定位</title>
    <style>
        body{
            width: 1000px;
            height: 1000px;
            border: 2px solid black;
        }
        /*绝对定位:
            当父级元素大小确定后,相对于父级元素定位,位置不在改变,除非父级元素大小发生改变
          固定定位:
            固定位在浏览器上
        */
        .box1{
            width: 100px;
            height: 100px;
            background: red;
            position: absolute;
            right: 0;
            bottom: 0;
        }.box2{
             width: 200px;
             height: 200px;
             background: pink;
             position: fixed;
             right: 0;
             bottom: 0;
         }
    </style>
</head>
<body>
<div class="box2">固定定位</div>
<div class="box1">绝对定位</div>
</body>
</html>

4 z-index

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        #father{
            border: 2px solid red;
            overflow: hidden;
        }
        ul{
            list-style: none;
            position: relative;
        }
        .tipText,.tipBg{
            position: absolute;
            top: 130px;
            color: red;
            height: 20px;
            width: 200px;
        }
        .tipText{
            /*z-index:设置元素层级*/
            /*z-index: 3;*/
        }
        .tipBg{
            background: black;
            /*opacity 背景透明度*/
            /*opacity: 0.5;*/
            /*早期版本使用filter:alpha(opacity)*/
            filter: alpha(opacity=50);
         }
    </style>
</head>
<body>
<div id="father">
    <ul>
        <li>
            <img src="images/kl.jpg" alt="" style="width: 200px">
        </li>
        <li class="tipText">
            <span>无敌考拉</span>
        </li>
        <li class="tipBg">
        </li>
        <li>
            <span>2021/5/8</span>
        </li>
    </ul>
</div>
</body>
</html>
上一篇:CSS清除浮动问题


下一篇:2.背景缩放background-size:①图片的宽度 图片的高度;②某条边的长度等比缩放③50%④cover;⑤contain;