饥人谷技术博客

盒模型

2016-07-02  本文已影响154人  婷楼沐熙

一.盒模型包括哪些属性?

盒模型包括的属性有:

二.边距合并

外边距合并指的是,当两个垂直外边距相遇时,它们将形成一个外边距。合并后的外边距的高度等于两个发生合并的外边距的高度中的较大者。但是注意只有普通文档流中块框的垂直外边距才会发生外边距叠加。行内框、浮动框或绝对定位框之间的外边距不会合并。设置了display:inline-block的元素,垂直margin不会被合并
一般来说, 垂直外边距合并有三种情况:

三.text-align: center的作用是什么,作用在什么元素上?能让什么元素水平居中。

text-align: center的用于块级元素,比如说一个div或者段落上,使块级元素内部的行内元素水平居中。这个所谓的居中是针对自己的父容器,可以参考下面的示例。

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>盒模型</title>
<style>
    .box1{
    width: 100px;
    height: 100px;
    border: 3px solid;
    margin: 20px;
    padding: 20px;
}
    .box2{
        width: 50px;
        height: 50px;
        border: 3px solid;
        margin: 5px;
        padding: 5px;
        background: red;
        text-align: center;
   }
</style>
</head>
<body>
    <div class="box1">
        <div class="box2">
            <a href="#">Link</a>
        </div>
    </div>
</body>
</html>
针对父容器居中

四.如果遇到一个属性想知道兼容性,在哪查看?

想要知道一个属性的兼容性,可以在Can I Use上面查看。
比如说输入text-align,就可以知道它的兼容性。

Can I Use

五.IE 盒模型和W3C盒模型有什么区别?

IE盒模型并不只是设置的内容宽高大小,还要包括border和padding;W3C盒模型只是内容宽高的大小。

六.以下代码的作用?兼容性?

*{ box-sizing: border-box;
}

box-sizing是定义元素盒尺寸大小的方式。它的属性值可以为content-box、padding-box、border-box、inherit。

为了说明,来举个例子。

<!DOCTYPE HTML> 
<html> 
<head> 
<meta charset="utf-8"> 
<title>盒子尺寸的计算方法</title> 
<style type="text/css"> 
div {  
    margin:5px;  
    width:200px;                   
    height:80px;                      
    background-color: red;  
    border:10px solid;       
    padding:10px;                    
    font-weight:bold;  
    font-size:18px;  
    line-height:40px;  
}  
.s1 {  
    box-sizing:border-box;  
.s2 {  
    box-sizing:padding-box;   
}  
.s3 {  
    box-sizing:content-box;   
}  
</style> 
</head> 
<body> 
<div class="s1">border-box</div> 
<div class="s2">padding-box</div> 
<div class="s3">content-box</div> 
</body> 
</html> 

但是由于webkit内核的浏览器不支持属性值padding-box,故表现出默认的content-box效果。


效果图

再来回到题目当中,“*”表示选中所有的元素,box-sizing使用的计算方法为border-box,它使页面所有元素使用content里包括border、padding的盒模型,也就是采用IE盒模型。
举个例子。

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>盒模型</title>
<style>
    .box{
    width: 100px;
    height: 100px;
    border: 3px solid;
    margin: 20px auto;
    padding: 20px;
    background: yellow;
    }
    *{
        box-sizing: border-box;
    }
</style>
</head>
<body>
    <div class="box">       
    </div>
</body>
</html>
盒模型大小
盒模型大小
经过审查元素,就可以看到它显示的总尺寸就是设置content的宽高。
它的兼容性可以在Can I Use上面查看。
box-sizing兼容性

七.代码

写一个 btn 的class, 任何 a,span,div,button添加此class后后变成如下按钮的样式(鼠标hover背景色#c14d21,鼠标按下背景色#e25f31)。

<a class="btn" href="#">确定</a>
<span class="btn" >取消</span>
<div class="btn">提交</div>
<button class="btn"> 发送</button>
效果
代码的github地址:Github
预览效果
上一篇 下一篇

猜你喜欢

热点阅读