五十、前端之CSS part2

一、盒子模型

    盒子模型
        margin:用来调节盒子与盒子之间的距离(标签与标签之间距离)
        border:盒子的包装厚度(边框)
        padding:内部物体与盒子之间距离(文本与边框之间的距离)
        content:物体大小(文本内容)

        ①margin外边距
            .c {
                 margin-top:10px;
                 margin-right:20px;
                 margin-bottom:30px;
                 margin-left:40px;
                }
            简写:
                .c {margin: 10px 20px 30px 40px;}  顺序:上右下左
                .c {margin: 10px 20px;}  10:上下,20:左右
            常见居中:
                .c {margin: 0 auto;}

        ②padding内填充
            .c {
                padding-top: 5px;
                padding-right: 10px;
                padding-bottom: 15px;
                padding-left: 20px;
                }
            简写:
                .c {padding: 5px 10px 15px 20px;}  顺序:上右下左
            补充padding的常用简写方式:
                        提供一个,用于四边;
                        提供两个,第一个用于上-下,第二个用于左-右;
                        如果提供三个,第一个用于上,第二个用于左-右,第三个用于下;
                        提供四个参数值,将按上-右-下-左的顺序作用于四边;
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        body {
            margin-top: 0;
            margin-right: 0;
            margin-bottom: 0;
            margin-left: 0;
        }
        .c1 {
            width: 100px;
            height: 100px;
            border: 3px solid black;
            margin-top: 10px;
            margin-right: 20px;
            margin-bottom: 30px;
            margin-left: 40px;
        }
        .c2 {
            width: 20px;
            height: 20px;
            border: 3px solid green;
            margin: 10px 20px 30px 40px;
        }
        .c3 {
            width: 200px;
            height: 200px;
            border: 3px solid yellow;
            padding: 10px 20px 30px 40px;
        }
    </style>

</head>
<body>

<div class="c1"></div>
<div class="c2">div</div>
<div class="c3">div</div>

</body>
</html>

二、浮动

1、浮动

    浮动:
        在 CSS 中,任何元素都可以浮动。
        只要是页面布局 都会用到浮动

    关于浮动的两个特点:
        浮动的框可以向左或向右移动,直到它的外边缘碰到包含框或另一个浮动框的边框为止。
        由于浮动框不在文档的普通流中,所以文档的普通流中的块框表现得就像浮动框不存在一样。

    三种取值
        left:向左浮动
        right:向右浮动
        none:默认值,不浮动

    下面的案例一个往左浮动,一个往右浮动
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>  
    <style>
        body {margin: 0;}
        .c1 {
            width: 50px;
            height: 50px;
            background-color: red;
            display: inline-block;
            float: left;
            }
        .c2 {
            width: 50px;
            height: 50px;
            background-color: green;
            display: inline-block;
            float: right;
            }
    </style>

</head>
<body>

<div>
    <div class="c1"></div>
    <div class="c2"></div>
</div>

</body>
</html>        

2、浮动页面布局

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        body {margin: 0;}
        .c1 {
            width: 20%;
            height: 500px;
            background-color: red;
            float: left;
        }
        .c2 {
            width: 80%;
            height: 500px;
            background-color: green;
            float: right;
        }
    </style>

</head>
<body>

    <div class="c1"></div>
    <div class="c2"></div>

</body>
</html>

3、浮动带来的影响及解决措施

①浮动带来的影响:
        脱离文档流,造成父标签塌陷

②clear:规定元素的哪一侧不允许其他浮动元素
    left    在左侧不允许浮动元素
    right    在右侧不允许浮动元素
    both    在左右两侧均不允许浮动元素
    .c4 {clear: left;}
        规定标签的左边不能有浮动的元素

③解决浮动带来的影响:伪元素清除法clearfix:after

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .c3 {border: 3px solid black;}
        .c1 {
            width: 50px;
            height: 50px;
            background-color: red;
            float: left;
        }
        .c2 {
            width: 50px;
            height: 50px;
            background-color: green;
            float: left;
        }
        /*伪元素清除法*/
        .clearfix:after {
            content: '';
            clear: both;
            display: block;
        }
    </style>

</head>
<body>

<div class="c3 clearfix">
    <div class="c1"></div>
    <div class="c2"></div>
</div>

</body>
</html>

影响:

clearfix:after清除

三、溢出

overflow溢出属性:
    hidden    内容会被修剪,并且其余内容是不可见的。
    scroll    内容会被修剪,但是浏览器会显示滚动条以便查看其余的内容。
    auto    如果内容被修剪,则浏览器会显示滚动条以便查看其余的内容。
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        div {
            width: 50px;
            height: 50px;
            border: 3px solid red;
            overflow: scroll;
        }
    </style>

</head>
<body>

<div>abcdefghijklmnopqrstuvwxyz</div>

</body>
</html>

四、圆形头像

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        body {background-color: yellow;}
        .c1 {
            width: 100px;
            height: 100px;
            border: 5px solid white;
            border-radius: 50%;  /*圆形*/
            overflow: hidden;    /*多出来的隐藏*/
        }
        img {width: 100%}        /*100%填充*/
    </style>

</head>
<body>

<div class="c1">
    <img src="1.png" alt="">
</div>

</body>
</html>

五、定位

position:定位
    static: 无定位,默认值
    relative 相对定位:相对于标签本身原来的位置
    absolute 绝对定位:相对于已经定位过的父标签(小米购物车)
    fixed    固定定位:相对于浏览器窗口固定在某一个位置(回到顶部)

是否脱离文档流:
  脱离文档流:
        浮动
        绝对定位
        固定定位
  不脱离文档流:
        相对定位

1、相对定位

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        body {margin: 0;}
        .c1 {
            width: 100px;
            height: 100px;
            background-color: red;
            top: 100px;
            left: 100px;
            position: relative;   # 相对定位
        }
        .c2 {
            width: 100px;
            height: 100px;
            background-color: green;
        }
    </style>

</head>
<body>
<div class="c1"></div>
<div class="c2"></div>
</body>
</html>

2、绝对定位

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .c1 {
            width: 100px;
            height: 50px;
            background-color: red;
            position: relative;
        }
        .c2 {
            width: 400px;
            height: 200px;
            background-color: yellow;
            position: absolute;
            top: 50px;
            left: 100px;
        }
    </style>

</head>
<body>
<div class="c1">购物车
    <div class="c2">空的</div>
</div>
</body>
</html>

3、固定定位

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .c1 {
            width: 80px;
            height: 80px;
            border: 3px solid red;
            position: fixed;
            right: 20px;
            bottom: 20px;
        }
        .c2 {height: 1000px;}
        .c3 {
            width: 80px;
            height: 80px;
            background-color: black;
        }
        .c4 {
            width: 80px;
            height: 80px;
            background-color: yellow;
        }
    </style>

</head>
<body>
<div class="c3"></div>
<div class="c1">固定不动</div>
<div class="c4"></div>
<div class="c2"></div>
</body>
</html>

六、模态框

    z-index:
        设置对象的层叠顺序
        z-index 值表示谁压着谁,数值大的压盖住数值小的,
        只有定位了的元素,才能有z-index
        不管相对定位,绝对定位,固定定位,都可以使用z-index
        浮动元素不能使用z-index
        z-index值没有单位,就是一个正整数,默认的z-index值为0
        如果大家都没有z-index值,或者z-index值一样,
        那么谁写在HTML后面,谁在上面压着别人,定位了元素,永远压住没有定位的元素。
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .c2 {
            background-color: rgba(128,128,128,0.4);
            position: fixed;
            top: 0;
            right: 0;
            bottom: 0;
            left: 0;
            z-index: 999;
        }
        .c3 {
            width: 200px;
            height: 50px;
            background-color: white;
            position: fixed;
            top: 50%;
            left: 50%;
            z-index: 1000;
            margin-top: -25px;     /*在整个框居中,为top的一半*/
            margin-left: -100px;   /*在整个框居中,为left的一半*/
        }
    </style>

</head>
<body>
<div class="c1">科技科技科技兴国</div>
<div class="c2"></div>
<div class="c3"></div>
</body>
</html>

七、透明度参数区别

    rgba(128,128,128,0.3)
        针对背景颜色的透明度

    opacity:0.3
        针对文本的透明度
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .c1 {
            width: 200px;
            height: 50px;
            background-color: rgba(128,128,128,0.3);
        }
        .c2 {opacity: 0.3;}
    </style>

</head>
<body>
<div class="c1">abcdefg</div>
<div class="c2">ABCDEFG</div>
</body>
</html>

猜你喜欢

转载自www.cnblogs.com/zhangguosheng1121/p/10951613.html