博客列表 >盒模型的属性、元素大小重新计算box-sizing、水平与垂直居中

盒模型的属性、元素大小重新计算box-sizing、水平与垂直居中

evan
evan原创
2020年06月18日 09:42:37699浏览

1.盒模型常用的属性

知识点: width,height,padding,marign,border,position

实例

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>盒/框模型常用属性</title>
    <style>
        .box {
            /* 宽、高:内容区 */
            width: 200px;
            height: 200px;
        }
        
        .box.one {
            /* 内边距 */
            padding: 10px;
            /* 加1px的实线边框 */
            border: 1px solid #000000;
            /* 背景色 */
            background-color: aquamarine;
            /* 对背景进行裁切 默认是 border-box (边框级别),content-box(内容区) */
            background-clip: content-box;
            /* 顺序按照上、右、下、左 来设置 */
            /* margin: top right bottom left; */
            /* 外边距 */
            margin: 0 0 20px 0;
            /* 作用同上 */
            margin-bottom: 20px;
        }
        
        .box.two {
            /* 内边距 */
            padding: 10px;
            /* 加1px的实线边框 */
            border: 1px solid #000000;
            /* 背景色 */
            background-color: lightgreen;
            /* 对背景进行裁切 默认是 border-box (边框级别),content-box(内容区) */
            background-clip: content-box;
            /* 当两个盒子在垂直方向上,外边距会产生折叠 */
            margin-top: 30px;
        }
        
        .box.parent {
            background-color: lightpink;
            /* 一旦一个元素被添加了position  且值非static 那么它就是定位元素 */
            position: relative;
            /* 从左边向右移动30px  */
            /* 相对定位是相对自己做了偏移,这个元素在文档流中的位置不释放 */
            left: 30px;
            top: 40px;
        }
        
        .son {
            width: 100px;
            height: 100px;
            background-color: lime;
            /* 绝对定位 */
            /* 如果没有定位父级元素,会向上一级找,直到找到,就是body元素 */
            position: absolute;
            /* 固定定位  会忽略定位父级 总是相对于body定位*/
            position: fixed;
            left: 50px;
            top: 50px;
        }
    </style>
</head>

<body>
    <!-- 块级元素默认垂直排列 -->
    <div class="box one"></div>
    <div class="box two"></div>
    <hr />
    <!-- 嵌套关系-->
    <div class="box parent">
        <div class="box son"></div>
    </div>
</body>

</html>

运行实例 »

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

a1.png

2.元素大小的重新计算: box-sizing的用法

知识点:box-sizing: border-box, content-box,

实例

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>元素用户自定义元素大小的计算方式</title>
    <style>
        /*  常用样式初始化  */
        
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }
        
        .box {
            width: 200px;
            height: 180px;
            background-color: lightgreen;
            border: 3px solid rgb(129, 129, 129);
            background-clip: content-box;
            padding: 10px;
            /* box-sizing: 重新计算盒大小 content-box默认是以内容区为准*/
            box-sizing: content-box;
            /* border-box: 有效范围到边框 */
            box-sizing: border-box;
        }
        
        .box2 {
            width: 80px;
            height: 120px;
            background-color: lightsalmon;
        }
    </style>
</head>

<body>
    <div class="box">
        <div class="box2"></div>
    </div>
    <!-- width: content_width + padding_left/rigth + border_left/right    -->
    <!--    宽:          200 +             20     +            6      =226-->
</body>

</html>

运行实例 »

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

a2.png



3.元素的水平与垂直居中

知识点:position: left,top,right,bottom; marign:auto;

实例

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>margin:auto 块元素的垂直居中</title>
    <style>
        .container {
            width: 300px;
            height: 300px;
            background-color: lightblue;
            position: relative;
        }
        
        .container .item {
            width: 100px;
            height: 100px;
            background-color: lightcoral;
            /* 水平居中 */
            /* 让浏览器自动计算左右外边距 */
            /* margin-left: auto;
        margin-right: auto; */
            /* 垂直居中 */
            /* 不能用margin-top:auto 和 margin-bottom:auto 来垂直居中  */
            /* 通过绝对定位来实现垂直居中 */
            position: absolute;
            /* 让当前元素绝对定位的上下文充满整个父级容器 */
            /* 左上角开始 */
            top: 0;
            left: 0;
            /* 右下角结束  */
            right: 0;
            bottom: 0;
            margin: auto;
        }
    </style>
</head>

<body>
    <div class="container">
        <div class="item"></div>
    </div>
</body>

</html>

运行实例 »

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

a3.png

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