H5前端开发学习笔记——0x13盒子模型

盒子模型

  • 课时104 边框属性上(掌握)
  • 课时105 边框属性下(掌握)
  • 课时106 边框练习(理解)
  • 课时107 内边距属性(掌握)
  • 课时108 外边距属性(掌握)
  • 课时109 外边距合并现象(掌握)
  • 课时110 盒子模型(理解)
  • 课时111 盒子宽度和高度(理解)
  • 课时112 盒子宽度和高度练习1(理解)
  • 课时113 盒子宽度和高度练习2(理解)
  • 课时114 盒子box-sizing属性(理解)
  • 课时115 盒子模型练习3(理解)
  • 课时116 盒子居中和内容居中(理解)
  • 课时117 清空默认边距(掌握)
  • 课时118 行高和字号(掌握)
  • 课时119 还原字体和字号(掌握)
  • 课时120 文字界面(理解)

边框属性

什么是边框

环绕在标签宽度和高度周围的线条

边框属性格式

  1. 方向连写(同时设置四条边的边框)
    • border:边框的宽度 边框的样式 边框的颜色;
    • 注意点:
      • 连写格式中颜色可以省略,默认黑色
      • 连写格式中样式不可省略,否则看不到
      • 连写格式中宽度可以省略,省略后可以看到边框
  2. 方向连写(分别设置四条边的边框)
    • border-top:边框的宽度 边框的样式 边框的颜色;
    • border-right:边框的宽度 边框的样式 边框的颜色;
    • border-bottom:边框的宽度 边框的样式 边框的颜色;
    • border-left:边框的宽度 边框的样式 边框的颜色;
    • 注意点:
      • 连写格式中颜色可以省略,默认黑色
      • 连写格式中样式不可省略,否则看不到
      • 连写格式中宽度可以省略,省略后可以看到边框
  3. 要素连写(分别设置四条边的边框)
    border-width:上 右 下 左;
    border-style:上 右 下 左;
    border-color:上 右 下 左;
    • 注意点:
      • 这三个属性的取值是按照顺时针赋值的,按照上右下左赋值的,并不是上下左右
      • 这三个属性的取值省略时的规律:
        • 上 右 下 左> 上 右 下 —— 左边的取值和右边一样
        • 上 右 下 左> 上 右 —— 左边的取值和右边一样,下边的取值和上边一样
        • 上 右 下 左> 上 —— 右下左的取值和上边一样
  4. 方向加要素非连写(单独设置四条边的边框)
    • border-top-width:10px;
    • border-top-style:double;
    • border-top-color: #000;
    • 等等等等
    • 企开中基本没用的。。。

内边距属性

边框到内容之间的距离就是内边距

格式

  1. 连写
    • padding:上 右 下 左;
    • 用法同border
  2. 非连写
    • padding-top: ;
    • padding-left: ;
    • padding-bottom: ;
    • padding-right: ;
    • 注意点:
      • 设置内边距后,标签占有的高度和宽度会跟着一块变
      • 内边距也会有背景颜色

外边距属性

标签和标签之间的距离

格式

  1. 非连写
    • margin-top: ;
    • margin-left: ;
    • margin-right: ;
    • margin-bottom: ;
  2. 连写
    • margin:上 右 下 左;
    • 注意点:
      • 这三个属性的取值是按照顺时针赋值的,按照上右下左赋值的,并不是上下左右
      • 这三个属性的取值省略时的规律:
        • 上 右 下 左> 上 右 下 —— 左边的取值和右边一样
        • 上 右 下 左> 上 右 —— 左边的取值和右边一样,下边的取值和上边一样
        • 上 右 下 左> 上 —— 右下左的取值和上边一样

注意点

外边距那一部分是没有背景颜色的

外边距合并现象(外边距塌陷现象)

在默认布局的垂直方向上,默认情况下外边距是不会叠加的,谁的外边距大,就听谁的.水平方向就不会发生塌陷,就垂直有。

CSS盒子模型

仅仅是一个形象的比喻,在HTML中所有标签都是一个盒子

结论

  • 在HTML所有标签都可以设置:
    • 宽度/高度 —— 指定可以存放内容的区域
    • 内边距
    • 外边距
    • 边框

盒子的宽度和高度

1.内容的宽度和高度

通过标签的width和height设置的宽度和高度

2.元素的宽度和高度

  • 宽度 = 左边框 + 左内边距 + width + 右内边距 + 右边框
  • 高度 同理可得

3.元素空间的宽度和高度

  • 宽度 = 左外边距 + 左边框 + 左内边距 + width + 右内边距 + 右边框 + 右外边距
  • 高度 同理可得

盒子box-sizing属性

css3新增了box-sizing属性,这个属性可以保证我们给盒子新增padding和border之后黑子元素的宽度和高度不变

工作原理

增加padding和border之后,要想保障盒子元素的宽高不变,就要减去一部分内容的宽高

取值

  1. content-box
    元素的宽高 = 边框 + 内边距 + 内容的宽高
  2. border-box
    元素的宽高就会恒等于width

盒子模型练习

注意点

  1. 如果两个盒子是嵌套关系,那么设置里面一个盒子顶部的margin,外面的盒子也会被顶下来
  2. 若不想被顶下来,就可以给外面的盒子添加一个边框属性
  3. bd —— 加边框的快捷键
  4. 企开中,一般情况下,若需要控制嵌套关系盒子之间距离的话,要首先考虑padding,其次在考虑margin,因为后者本质上是用于控制兄弟之间关系的,padding才是控制父子之间关系的

margin: 0 auto;

在一个嵌套关系的盒子中,我们可以用

margin:0 auto;

的方式让里面的盒子在大盒子里面水平居中

注意

  • 他只对水平方向有效,垂直方向无效,这是固定写法
  • 垂直方向居中只能通过像素控制

盒子居中和内容居中

text-align:center和margin: 0 auto区别

  • 前者的作用是设置盒子中储存的问题和图片水平居中
  • 后者的作用是让盒子水平居中

清空默认边距

为啥要清空默认内外边距

企开中为了更好的控制盒子的宽高和计算盒子宽高,第一步需要做的就是清空默认的边距

怎样清空内外标签

* {
    margin: 0;
    padding: 0;
}

注意点

通配符选择器会遍历当前界面中的所有标签,所以性能不好,我们可以去百度个css reset自己加上

/*
YUI 3.18.1 (build f7e7bcb)
Copyright 2014 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/

html{color:#000;background:#FFF}body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,textarea,p,blockquote,th,td{margin:0;padding:0}table{border-collapse:collapse;border-spacing:0}fieldset,img{border:0}address,caption,cite,code,dfn,em,strong,th,var{font-style:normal;font-weight:normal}ol,ul{list-style:none}caption,th{text-align:left}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal}q:before,q:after{content:''}abbr,acronym{border:0;font-variant:normal}sup{vertical-align:text-top}sub{vertical-align:text-bottom}input,textarea,select{font-family:inherit;font-size:inherit;font-weight:inherit;*font-size:100%}legend{color:#000}#yui3-css-stamp.cssreset{display:none}

行高和字号

什么是行高

所有的行都有自己的行高

注意点

  • 行高和盒子的高不是一个概念
    • line-height: ;设置行高
    • height设置盒子高

规律

  1. 文字在行高中默认是垂直居中的
  2. 企开中,我们经常把盒子的高度和行高设置的一样,这样就可以保证一行文字在盒子里是垂直居中的。也就是说,要想做到把一行文字在盒子里垂直居中显示,就把行高和盒子高度都设置成一样的高度就行
  3. 企开中,若一个盒子中有多行文字,2的方法就不好用了,只能用padding来让文字居中

还原字体和字号

自己拿着AI玩就行了

注意点

  1. 企开中,盒子里放的是文字的话,我们一般以盒子的左边的内边距为基准,而非右边距,因为右边有误差
  2. 因为右边放不下文字的话,就会换行显示,但那个距离还在那,那就是误差
  3. 顶部的内边距不是边框到文字的距离,而是边框到文字行高顶部的距离

文字界面

就目前我们的技术,做网页

  1. 先初始化格式
  2. 从外向内,从上到下便携
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 概述 在网易云课堂学习李南江老师的《从零玩转HTML5前端+跨平台开发》时,所整理的笔记。笔记内容为根据个人需求所...
    墨荀阅读 2,395评论 0 7
  • 一.边框 (上) 1.什么边框? 边框就是环绕在标签宽度和高度周围的线条 2.边框属性的格式 2.1连写(同时设置...
    壹点微尘阅读 372评论 0 0
  • 学会使用CSS选择器熟记CSS样式和外观属性熟练掌握CSS各种选择器熟练掌握CSS各种选择器熟练掌握CSS三种显示...
    七彩小鹿阅读 6,359评论 2 66
  • 边框属性 作用:边框就是环绕在标签宽度和高度周围的线条 连写(同时设置四条边的边框)格式: border: 边框的...
    MGd阅读 297评论 0 0
  • 星云冰夜阅读 7,025评论 0 0