巧用box模型

盒子模型(box模型)

在css当中,默认将每一个元素(不管是行内元素还是块级元素)都当作一个矩形盒子,将各个元素划分为了不同的部分。

组成部分 定义
margin 外边距
border 边框
padding 内边距
content 内容

注意:在一般情况下(box-sizing选择为content-box)时,我们定义的高和宽都是针对content而言的;但是当我们把box-sizing改为border-sizing时,我们定义的高和宽则是border+padding+content;所以我们要依据自己的情况选取不同的border-sizing。
巧用box模型

巧用box模型

margin

一个盒子的margin部分不会影响和盒子的大小,只会影响它与其他盒子的相对位置。margin有4个方向分为:

方向
margin-top
margin-bottom
margin-left
margin-right

注意:每一个方向都可以设置距离,距离也可以是负值,这样就会向相反的方向移动元素在页面中是按照自左向右的顺序排列的,所以默认情况下如果我们设置的左和上外边距则会移动元素自身而设置下和右外边距会移动其他元素

        /* 上 右 下  左(顺时针) */
        margin: 10px 10px 20px 30px; 
        /* 上下  左右 */
        margin: 10px 20px;
        /* 所有方向 */
        margin: 10px;
        /* 各个方向 */
        margin-top: 10px;
        margin-bottom: 10px;
        margin-right: 10px;
        margin-bottom: 10px;

border

border是盒子的边框,border的大小会影响盒子的大小;

border的样式 定义
border-style 边框的样式
border-size 边框的大小
border-color 边框的颜色

注意·:border也分为四个方向——top bottom right left。想要border显示出来,这三个都要设置。

border-style
dotted 点状
solid 实线
double 双线
dashed 虚线
    /* 三个样式可以合并在一起写,部分先后顺序,但是都要有 */
    border: 1px  solid black;
    /*边框的弧度 */
    border-radious:4px;

padding

padding是调节内容与边框的距离的,它算在盒子的大小里面;具体用法和margin一样。当设置盒子的背景色时,padding也会显示背景颜色。

content

样式 定义
width 宽度
height 高度

注意:行内元素的宽和高都是由它的内容所决定的,所以,设置它们的宽和高是没用的;块级元素的宽是撑满整个父级元素,高是由内容决定的;

盒子的水平布局

盒子的水平宽度包括padding-right+border-right+content+border-left+padding-left,在布局时盒子的水平宽度要等与父级元素的宽度。如果不相等的话,就称为过度约束,则等式会自动调整如果这七个值中没有为 auto 的情况,则浏览器会自动调整margin-right值以使等式满足如果某个值为 auto ,则会自动调整为 auto 的值以使等式成立。
注意:当等式不成立时,就算margin-right有设置也无效,而是会调整margin-right使等式成立。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
    <style>
       .a1{
           width: 600px;
           height: 200px;
           border:10px solid blue;
       }
       .a2{
           width: 200px;
           height: 200px;
           background-color:black;
           margin-left: 100px;   
           margin-right: 1000px;
       }
    </style>
</head>
<body>
    <div class="a1">
        <div class="a2"></div>
    </div>
</body>
</html

七个值中:width、margin-left、margin-right可设置auto
(1)当有某一个值为auto,则会自动调整为auto的那个值使得等式成立
(2)若width=auto和某一个外边距=auto,则宽度调整到最大,设置auto的外边距为0
(3)若width=auto和两个外边距都=auto,则宽度调整到最大,设置auto的两个外边距都为0
(4)若width=固定值且两个外边距都=auto,则,将两外边距设置为相同的值
( 通常使用该方式使得某元素在其父元素中水平居中)

margin:auto;

盒子的垂直布局

默认情况下,父元素的高度被内容撑开子元素大小超过父元素高度时,子元素会从父元素中溢出使用overflow属性:

overflow属性 定义
visible 子元素溢出,超出部分仍显示
hidden 子元素被裁减,超出部分不会显示
auto 根据需要生成滚动条(横向或纵向)
上一篇:<2021SC@SDUSC>开源游戏引擎Overload代码分析十一:OvEditor——Inspector


下一篇:斯坦福机器学习视频笔记 Week6 关于机器学习的建议 Advice for Applying Machine Learning