任务9_CSS盒模型

课程目标

  • 掌握盒模型相关知识点
  • 了解IE盒模型和W3C 盒模型区别

学习建议

视频未覆盖的知识点会提供详细的文档资料

预习视频

课程任务

问答

一、盒模型包括哪些属性

盒模型的属性

盒模型属性

根据以上图件可以看出盒模型属性由里向外包括:

  • element(content):元素,盒子的内容,显示文本和图像
  • padding:内边距,定义元素边框与元素内容之间的空白区域。
  • 接受长度值或百分比值,但不允许使用负值
  • 会受到框中填充的背景颜色影响
  • padding-top,padding-right,padding-bottom,padding-left
  • border:围绕元素内容和内边距的一条或多条线
  • 每个边框有 3 个方面:宽度、样式,以及颜色
  • 边框是受到盒子的背景颜色影响
  • 如果希望边框出现,就必须声明一个边框样式
  • margin:围绕在元素边框的空白区域
  • 接受任何长度单位、百分数值甚至负值。
  • margin-top,margin-right,margin-bottom,margin-left

如果要它显示你设计的宽高大小,使用命令box-sizing: border-box;,这样有的时候会便于计算。

行内元素设置盒模型属性

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

以下为实例

<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <title>行内元素设置盒模型属性</title>
    <style>
        .span-child {
            padding: 20px;
            border: 1px solid red;
            background: yellow;
            opacity: 0.5;
        }
    </style>
</head>

<body>
    <span class="span">
    我是一个行内元素我是一个行内元素我是一个行内元素
    <br>我是一个行内元素<span class="span-child">我是行内元素的一个孩子</span>我是一个行内元素
    <br>我是一个行内元素我是一个行内元素我是一个行内元素</span>
</body>

</html>

以下为输出结果


行内元素设置盒模型输出结果

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

外边距相遇又分为以下三种情况

  • 当一个元素出现在另一个元素上面时,第一个元素的下外边距与第二个元素的上外边距会发生合并


  • 当一个元素包含在另一个元素中时(假设没有内边距或边框把外边距分隔开),它们的上和/或下外边距也会发生合并


  • 假设有一个空元素,它有外边距,但是没有边框或填充。在这种情况下,上外边距与下外边距就碰到了一起,它们会发生合并


以下为实例

<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <title>外边距合并</title>
    <style>
        * {
            width: 100px;
            height: 100px;
            padding: 0;
            margin: 0;
        }

        .div1 {
            margin: 10px 0;
            background: red;
        }

        .div2 {
            background: blue;
            margin: 20px 0;
        }

        .outer {
            background: green;
            margin: 40px 0;
        }

        .inner {
            width: 50px;
            height: 50px;
            background: white;
            margin: 60px 0;
        }
    </style>
</head>

<body>
    <div class="div1"></div>
    <div class="div2"></div>
    <div class="outer">
        <div class="inner"></div>
    </div>
</body>

</html>

以下为输出结果


外边距实例输出结果

注:只有普通文档流中块框的垂直外边距才会发生外边距合并。行内框、浮动框或绝对定位之间的外边距不会合并。

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

text-align: center是让块级元素内的元素(文本或图片)居中,只能作用在块级元素。

附块级元素与行内元素的分类:

  • 块级元素:div、p、h1…h6、table、tr、ul、li、dl、dt、form
  • 行内元素:a、span、img、input、button、em、textarea

以下为实例

<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <title>盒模型中的水平居中</title>
</head>
<style>
    * {
        padding: 0;
        margin: 0;
    }
    
    .container {
        width: 300px;
        height: 300px;
        margin: 50px auto;
        background: red;
    }
    
    .child {
        width: 200px;
        height: 200px;
        text-align: center;
        background: blue;
    }
</style>

<body>
    <div class="container">
        <div class="child">我是江君的孩子</div>
    </div>
</body>

</html>

以下为输出结果


盒模型的水平居中输出结果

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

通过网址 http://caniuse.com/ 去查询其兼容性
比如想要查代码box-sizing的兼容性

box-sizing兼容性

四、IE 盒模型和W3C盒模型有什么区别?

IE盒模型

  • IE6 IE7 IE8 IE9,不声明doctype,触发quirks怪异模式,采用IE盒模型展现。非IE浏览器仍然采用标准模式渲染
  • IE盒模型 宽度=边框+padding+内容宽度
  • border区域不会填充背景色


    IE盒模型

W3C盒模型

  • IE6 IE7 IE8 IE9,声明doctype,触发标准模式,采用W3C盒模型展现。非IE浏览器采用标准模式渲染
  • W3C盒模型 宽度= 内容宽度
  • div的背景颜色充满了padding和border


    标准盒模型

兼容方案
使用css3新样式box-sizing,box-sizing有两个值

  • content-box:w3c标准盒模型
  • border-box:“IE盒模型”

参考文章

五、以下代码的作用?兼容性?

*{ box-sizing: border-box;}

上文中讲到,盒子模型分为标准盒模型和IE盒模型,两个模型不尽相同,兼容方案就是利用该代码,将标准盒模型以IE盒模型的形式来展现,以下为box-sizing属性值的的详细展开


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>

预览地址


本教程版权归本人和饥人谷所有,转载须说明来源

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

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,629评论 1 92
  • 1.盒模型包括哪些属性 页面上的每个元素被看做一个矩形框,这个框由元素的内容、内边距、边框、和外边距组成。如图: ...
    饥人谷_任磊阅读 388评论 0 1
  • 引言 这次给大家带来了CSS-盒子模型部分的笔记,大家一同交流😊 认识盒子模型之前,先来了解一下CSS元素的分类吧...
    zhaolion阅读 4,248评论 9 85
  • 一、盒模型包括哪些属性 **1、盒模型是css中元素大小的呈现方式,每个元素都有盒模型。它包括元素内容(eleme...
    鸿鹄飞天阅读 312评论 0 0
  • 一、盒模型包括哪些属性? CSS盒模型~即定义了Web页面中的元素是如何看做盒子来解析CSS盒模型属性有: con...
    dengpan阅读 379评论 0 0