巧用box模型

盒子模型(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根据需要生成滚动条(横向或纵向)
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值