ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

巧用box模型

2021-12-23 19:34:32  阅读:172  来源: 互联网

标签:box right 盒子 margin 模型 元素 auto border 巧用


盒子模型(box模型)

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

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

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

box-sizing选择为border-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根据需要生成滚动条(横向或纵向)

标签:box,right,盒子,margin,模型,元素,auto,border,巧用
来源: https://blog.csdn.net/weixin_51610980/article/details/122112191

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有