博客列表 >CSS盒子模型与背景设置 - PHP培训九期线上班

CSS盒子模型与背景设置 - PHP培训九期线上班

fkkf467
fkkf467原创
2019年11月01日 17:23:14747浏览

在页面中, 由块级框和行内框围起来封闭区域,在用户看来就像是一个个盒子,所以, 页面中的元素, 我们也可以用一个个不同类型的盒子来表示对应不同的框类型, 盒子也可以行为块级盒子和行内盒子,研究盒模型,主要是用来布局, 而行内盒子无法设置大小,所以只研究块级盒子。

1. 默写盒模型的全部属性,并准确说出他们的应用场景

    width(宽度):设置盒子的宽度    height(高度):设置盒子的高度    padding(内边距):设置盒子的内边距

    border(边框):设置盒子的边框    margin(外边距):设置盒子的外边距

                      盒子模型.png

2. box-sizing 解决了什么问题, 不用它应该如何处理

    box-sizing解决了边框和内边距对盒子大小的影响,不用它时,计算盒子大小的时候应当减去内边距和边框。

3. 盒子外边距的合并是怎么回事,并实例演示

    当两个盒子处于同级关系时,设置两个盒子之间的外边距时,会发生合并,这种现象,  也叫外边距的塌陷,两个盒子之间的间距, 最终由以较大值确定。

实例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>外边距的合并现象</title>
    <style>
        /*清除内边距与边框对盒子大小的影响*/
        div {
            box-sizing: border-box;
        }
        .box1 {
            width: 150px;
            height: 150px;
            background-color: green;
            margin-bottom: 20px;
        }
        .box2 {
            width: 200px;
            height: 200px;
            background-color: yellow;
            margin-top: 30px;
        }
    </style>
</head>
<body>
<div class="box1"></div>
<div class="box2"></div>
</body>
</html>

运行实例 »

点击 "运行实例" 按钮查看在线实例

11.png

1.jpg

4. 嵌套盒子之间内边距与外边距的表现有何不同, 如何处理

    a. 当不给父盒子添加边框的时候,给子盒子设置外边距时,会发生外边距由内向外的传递 

实例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>嵌套盒子内边距与外边距的表现</title>
    <style>
        div {
            box-sizing: border-box;
        }
        .box1 {
            width: 250px;
            height: 250px;
            background-color: lawngreen;
        }
        .box2 {
            width: 150px;
            height: 150px;
            background-color: lightblue;
            /*子盒子设置外边距*/
            margin-top: 30px;
        }

    </style>
</head>
<body>
<div class="box1">
    <div class="box2"></div>
</div>
</body>
</html>

运行实例 »

点击 "运行实例" 按钮查看在线实例

22.png

11.jpg

    b. 当给父盒子添加边框的时候,给子盒子设置外边距时,则不会发生外边距由内向外的传递

实例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>嵌套盒子内边距与外边距的表现</title>
    <style>
        div {
            box-sizing: border-box;
        }
        .box1 {
            width: 250px;
            height: 250px;
            background-color: lawngreen;
            /*设置边框*/
            border: 1px solid grey;
        }
        .box2 {
            width: 150px;
            height: 150px;
            background-color: lightblue;
            /*子盒子设置外边距*/
            margin-top: 30px;
        }

    </style>
</head>
<body>
<div class="box1">
    <div class="box2"></div>
</div>
</body>
</html>

运行实例 »

点击 "运行实例" 按钮查看在线实例

33.png

111.jpg

    c. 还可以通过给父盒子添加内边距,来避免传递现象 

实例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>嵌套盒子内边距与外边距的表现</title>
    <style>
        div {
            box-sizing: border-box;
        }
        .box1 {
            width: 250px;
            height: 250px;
            background-color: lawngreen;
            /*添加向上的内边距*/
            padding-top: 30px;
        }
        .box2 {
            width: 150px;
            height: 150px;
            background-color: lightblue;
        }

    </style>
</head>
<body>
<div class="box1">
    <div class="box2"></div>
</div>
</body>
</html>

运行实例 »

点击 "运行实例" 按钮查看在线实例

44.png

2.jpg

    d. 设置子盒子在父盒子中的居中显示

实例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>子盒子在父盒子中的居中显示</title>
    <style>
        div {
            box-sizing: border-box;
        }
        .box1 {
            border: 1px solid black;
        }
        .box2 {
            height: 200px;
            width: 200px;
            background-color: lightcoral;
            /*第一个参数是设置上下margin,第二个参数是设置左右margin*/
            margin: 0 auto;
        }
    </style>
</head>
<body>
<div class="box1">
    <div class="box2"></div>
</div>
</body>
</html>

运行实例 »

点击 "运行实例" 按钮查看在线实例

55.png

22.jpg

5. 实例演示: 背景颜色的线性渐变

实例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>背景颜色的线性渐变</title>
    <style>
        .box {
            width: 500px;
            height: 450px;
            box-sizing: border-box;
            border: 1px solid grey;
            /*从粉色到白色, 默认从上到下方向渐变*/
            /*background: linear-gradient(pink, white);*/
            /*向右渐变*/
            /*background: linear-gradient(to right, pink, white);*/
            /*向左渐变*/
            /*background: linear-gradient(to left, pink, white);*/
            /*向上渐变*/
            /*background: linear-gradient(to top, pink, white);*/
            /*向左下方渐变*/
            /*background: linear-gradient(to left bottom, pink, white);*/
            /*角度渐变*/
            /*background: linear-gradient(30deg, pink, white);*/
            /*连续多种颜色的渐变*/
            background: linear-gradient(red, pink, green, white);
        }
    </style>
</head>
<body>
<div class="box"></div>
</body>
</html>

运行实例 »

点击 "运行实例" 按钮查看在线实例

111.png

3.jpg

6. 实例演示: 背景图片的大小与位置的设定

实例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>背景图片设置</title>
    <style>
        .box {
            box-sizing: border-box;
            border: 1px solid grey;
            width: 600px;
            height: 500px;
            /*background-color: lightblue;*/
            /*设置背景图片*/
            /*background-image: url("static/images/iu.jpg");*/
            /*设置背景重复*/
            /*background-repeat: repeat;*/
            /*设置背景不重复*/
            /*background-repeat: no-repeat;*/
            /*设置背景水平方向重复*/
            /*background-repeat: repeat-x;*/
            /*设置背景垂直方向重复*/
            /*background-repeat: repeat-y;*/
            /*设置背景图片的位置: 水平, 垂直*/
            /*background-position: center center;*/
            /*background-position: left center;*/
            /*background-position: 80px 60px;*/
            /*background-position: 50% 50%;*/
            /*设置背景图片的大小*/
            /*图片拉伸等比例填充,完全覆盖盒子,比例不同可能会有部分图片内容被隐藏*/
            /*background-size: cover;*/
            /*图片完全填充, 比例不同,盒子可能会出现空白区域*/
            /*background-size: contain;*/
            /*以上简化设置*/
            background: lightblue url("static/images/iu.jpg") no-repeat 50% 50%;
        }
    </style>
</head>
<body>
    <div class="box"></div>
</body>
</html>

运行实例 »

点击 "运行实例" 按钮查看在线实例

11111.png

5.jpg

7. 总结

    CSS的盒子模型对页面布局有着重要的作用,通过以上几个实例练习了盒子模型属性应用的几种情况,学会了设置背景颜色和背景图片与背景图片大小与位置的设定,知道了怎样设置背景颜色的线性渐变。

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议