盒模型

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

盒模型是CSS中一个重要概念,文档中的每个元素被描绘为矩形盒子。渲染引擎的目的就是判定大小,属性。盒模型属性有:

  • margin:外边距
  • padding:内边距
  • border:边框
  • content:内容

boxmodel.png

内容区content-area:包含元素内容的区域,元素本身有一定的大小,占用的就是该空间大小,widthheight属性可以调节内容区域的宽和高。
盒模型的宽和高:margin+padding+border+width/height,
如果box-sizing:设置为border-box,则元素的width和height决定了盒模型宽高。就是说,为元素指定的任何内边距和边框都将在已设定的宽度和高度内进行绘制,通过从已设定的宽度和高度分别减去边框和内边距才能得到内容的宽度和高度。即:content-width=padding+border+content-width.
应用范围:适用于块级元素和inline-block元素,而行内元素虽然在水平方向可以设置margin和padding,且垂直方向能用padding,但是不属于盒模型的概念,如果要应用,则需要借助CSS的display属性。
外边距合并:当相邻的两个盒模型上下紧邻的时候,会选择margin值较大的作为外边距,即合并两个外边距取大值。而左右外边距不合并。如图所示:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title></title>
    <style type="text/css" media="screen">
      * {
        box-sizing: border-box;        /* 以边框作为界限,方便计算 */
      }
      .container1 {
        border: 5px solid black;
        width: 100px;
        height: 100px;
        padding: 10px;
        background-color: red;
        text-align: center;
        vertical-align: middle;
        margin: 30px;
      }
      .container2 {
        border: 5px solid black;
        width: 100px;
        height: 100px;
        padding: 10px;
        background-color: red;
        margin:40px;
      }
      .child {
        border: 1px solid white;
        width: 60px;
        height: 60px;
        background-color: #eee;
          text-align: center;
          vertical-align: middle;
          margin: 0 auto;
          display: table-cell;
      }
    </style>
  </head>
  <body>
    <div class="container1">
      <div class="child">
        <a href="#">link</a>
      </div>
    </div>
    <div class="container2">

    </div>
  </body>
</html>

效果图:

margin上下合并.png

注意:当我给container1加一个display: inline-block属性,则由于两者显示类型的不同,虽然和盒模型类似,但是margin外边距不会合并。如图所述:

      .container1 {
        border: 5px solid black;
        width: 100px;
        height: 100px;
        padding: 10px;
        background-color: red;
        text-align: center;
        vertical-align: middle;
        margin: 30px;
        display: inline-block; /* 加上这个属性,margin不合并 */
      }
Paste_Image.png

参考:
盒模型 MDN
CSS3 box-sizing 属性


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

text-align: center作用于块级元素,使块级元素内部的文本或者图片等行内元素水平居中显示。
eg

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title></title>
    <style type="text/css" media="screen">
    .div1 {
       text-align: center;
     }
     div,p {
       border: 1px solid silver;
     }
    </style>
  </head>
  <body>
    <div class="div1">
      啦啦啦啦啦啦啦啦
      <p>
        这是一段测试文本。
      </p>
      ![图片](http://upload-images.jianshu.io/upload_images/2404178-6ce29190f0303ca3.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
      <div class="div2">
        <p>
          测试文本2。
        </p>
      </div>
    </div>
  </body>
</html>

效果图:

text-align.png

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

can i use网站上查看。

caniuse.png

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

W3C盒模型&IE盒模型.gif

如图所示,W3C盒模型的width指的是content区,而IE盒模型width指的是content+padding+border。
早期的IE(5.5版本)用的是IE盒模型,而从IE6开始,只要在文档中声明(添加doctype)则,兼容使用W3C盒模型。
如果IE678未添加doctype,即怪异模式,那么也是用IE模型。
从IE9以后,则不用填写声名也用的是W3C模型。
补充
所有的盒模型,只要没有添加doctype,都处于怪异模式,但此时,只有ie678使用ie盒模型,其他的虽然处于怪异模式,但仍旧使用标准模型,其实与普通模式效果相同,怪异模式是在ie6时代为了兼容ie5以及以前版本的浏览器保留的 现在实际使用中都使用标准模式添加doctype。

参考:
IE浏览器和CSS盒模型
知识点-IE 盒模型 vs 标准盒模型


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

*{
 box-sizing: border-box;
}

box-sizing:设置为border-box,则元素的width和height决定了盒模型宽高。就是说,为元素指定的任何内边距和边框都将在已设定的宽度和高度内进行绘制,通过从已设定的宽度和高度分别减去边框和内边距才能得到内容的宽度和高度。即:width=padding+border+content。
如图所示:

<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <title></title>
    <style type="text/css" media="screen">
        * {
            box-sizing: border-box;
        }

        .container1 {
            border: 5px solid black;
            width: 100px;
            height: 100px;
            padding: 10px;
            background-color: red;
            text-align: center;
            vertical-align: middle;
            margin: 60px;
        }
    </style>
</head>

<body>
    <div class="container1">

    </div>
</body>

</html>

效果图:

box-sizing: border-box

代码题 JS Bin

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,711评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,932评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,770评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,799评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,697评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,069评论 1 276
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,535评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,200评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,353评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,290评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,331评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,020评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,610评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,694评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,927评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,330评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,904评论 2 341

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,721评论 1 92
  • 一、盒模型包括哪些属性? CSS盒模型~即定义了Web页面中的元素是如何看做盒子来解析CSS盒模型属性有: con...
    dengpan阅读 403评论 0 0
  • CSS盒模型 在CSS中盒模型被分为两种,第一种是W3C的标准模型,第二种是IE怪异盒模型。两种盒子模型都包括pa...
    _空空阅读 3,221评论 0 3
  • 一、盒模型包括哪些属性 **1、盒模型是css中元素大小的呈现方式,每个元素都有盒模型。它包括元素内容(eleme...
    鸿鹄飞天阅读 325评论 0 0
  • 最近这段时间,天上的云都挺骚情。 夏天的雨,说来就来,说去就去。一场短暂的雷暴雨过后,沉闷过去,烦闷过去。 每天不...
    王了一一阅读 1,112评论 36 17