任务9-CSS盒模型

1.盒模型包括哪些属性

页面上的每个元素被看做一个矩形框,这个框由元素的内容、内边距、边框、和外边距组成。如图:

盒模型
  • 内容区:每个元素都会有一些内容,如文本或者图像。
  • 内边距:内边距是可选的。通过使用内边距,可以在内容与盒子之间创建一些看得到的区域。内边距是透明的,没有颜色,也没有自己的装饰。如果在元素上添加背景,那么背景会应用于由内容和内边框组成的区域。
  • 边框:元素周围可以有一个可选的边框。这个边框会包围内边距,另外,因为它是围绕内容的一条线,这就从视觉上使内容与同一页面上的其他元素隔开。边框可以有各种不同的宽度、颜色和样式。
  • 外边距:外边距也是可选的,包围着边框。利用外边距,可以在同一个页面上的不同元素之间增加空间。类似于内边距,外边距也是透明的,本身没有颜色或装饰。

说到外边距,不得不说一下外边距合并了。

外边距合并:

简单来说,当两个垂直外边距相遇时,它们将形成一个外边距。这个外边距的高度等于两个发生合并的外边距的高度中的较大者。

例如:

  • 当一个元素出现在另一个元素上面时,第一个元素的下外边距与第二个元素的上外边距会发生合并。
元素的上外边距与前面元素的下外边距合并
  • 当一个元素包含在另一个元素中时(假设没有内边距或边框把外边距分隔开),它们的上和/或下外边距也会发生合并。
元素的上外边距和父元素的上外边距发生合并.png
  • 尽管看上去有些奇怪,但是外边距甚至可以与自身发生合并。
    假设有一个空元素,它有外边距,但是没有边框或填充。在这种情况下,上外边距与下外边距就碰到了一起,它们会发生合并:
元素的上外边距与下外边距发生叠加
  • 如果这个外边距遇到另一个元素的外边距,它还会发生合并:
空元素中已经合并的外边距与另一个空元素的外边距发生合并

这就是一系列的段落元素占用空间非常小的原因,因为它们的所有外边距都合并到一起,形成了一个小的外边距。

外边距合并初看上去可能有点奇怪,但是实际上,它是有意义的。以由几个段落组成的典型文本页面为例。第一个段落上面的空间等于段落的上外边距。如果没有外边距合并,后续所有段落之间的外边距都将是相邻上外边距和下外边距的和。这意味着段落之间的空间是页面顶部的两倍。如果发生外边距合并,段落之间的上外边距和下外边距就合并在一起,这样各处的距离就一致了。

外边距合并使元素之间保持了一致的距离
只有普通文档流中块框的垂直外边距才会发生外边距合并。行内框、浮动框或绝对定位之间的外边距不会合并。

另外关于行内元素和块级元素的区别有必要说下:

1.对于行内元素,手动设置宽高是无效的,它本身的宽高是由自身决定的。
2.行内元素可以设置margin、padding,但是只有水平方向,也就是左右方向的margin和padding是有效的,垂直方向,也就是上下方向的margin和padding是无效的。而如果上下padding如果设置边框或者背景色,会把边框和背景色撑开。但是它本身并不会挤占空间,这样的话可能会出现一个覆盖的问题。
参考W3C-CSS 外边距合并

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

text-align: center作用于块级元素上,使块级元素内的所有内联元素水平居中。内联元素的居中是以自己的父元素容器为参考对象。
demo:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title></title>
        <style type="text/css">
            .box{
                width: 100px;
                height: 100px;
                border: 3px solid #ccc;
                text-align: center;
            }
            .box1{
                width:50px;
                height: 50px;
                margin: 10px;
                padding: 5px;
                background-color: red;
                border: 1px solid #000000;
            }
        </style>
    </head>
    
    <body>
        <div class="box">
            <div class="box1">
            <a href="#">1111</a>
            </div>
        </div>
    </body>
</html>

使用text-align: center的居中效果

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

可以去Can I Use查询属性的兼容性。

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

  • IE盒模型的width属性是内容区、内边距和边框的宽度总和。
  • W3C盒模型的with属性是指内容区的宽度。
ie6、7、8怪异模式(不添加 doctype)使用 ie 盒模型
chrome, ie9+, ie678(添加 doctype) 使用标准盒模型

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

*{ box-sizing: border-box;}

box-sizing是CSS3的属性,简单来说用来设置要使用哪种盒模型。
介绍如下:

描述
content-box(标准盒模型) 这是由 CSS2.1 规定的宽度高度行为。宽度和高度分别应用到元素的内容框。在宽度和高度之外绘制元素的内边距和边框。
border-box(IE盒模型) 为元素设定的宽度和高度决定了元素的边框盒。就是说,为元素指定的任何内边距和边框都将在已设定的宽度和高度内进行绘制。通过从已设定的宽度和高度分别减去边框和内边距才能得到内容的宽度和高度。
inherit 规定应从父元素继承 box-sizing 属性的值。

那么```
*{ box-sizing: border-box;}

兼容性去[Can I Use](http://caniuse.com/)查询一下:

![兼容性.png](http://upload-images.jianshu.io/upload_images/2419272-859924980f45213c.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

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

推荐阅读更多精彩内容

  • 课程目标 掌握盒模型相关知识点 了解IE盒模型和W3C 盒模型区别 学习建议 视频未覆盖的知识点会提供详细的文档资...
    饥人谷_江君阅读 592评论 0 3
  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,737评论 1 92
  • 引言 这次给大家带来了CSS-盒子模型部分的笔记,大家一同交流😊 认识盒子模型之前,先来了解一下CSS元素的分类吧...
    zhaolion阅读 4,300评论 9 85
  • 基本框 CSS假定每个元素都会生成一个或多个矩形框,这称为元素框。各元素框中心有一个内容区(content are...
    exialym阅读 753评论 0 2
  • 1.块级元素和行内元素 块级(block-level)元素;行内(内联、inline-level)元素。 块元素的...
    饥人谷_小侯阅读 1,991评论 1 4