每个HTML标签都会生成一个盒模型,盒模型是正常流布局非常重要的概念。盒模型由内边距(padding)+长度(width)+高度(height)+边框(border)+外边距(margin)组成。

1. 宽度(width)和高度(height)

盒模型有2种类型,怪异盒模型标准盒模型,在不同盒模型情况下宽度(width)高度(height)计算方式会不同。

如果没正确声明<!DOCTYPE HTML>文档类型或设置box-sizing: border-boxCSS属性,则会产生怪异盒模型,此时宽度(width)=内容区宽度+内边距(padding)+边框(border),高度也是这样。

正确声明<!DOCTYPE HTML>文档类型或设置box-sizing: content-boxCSS属性时,会产生标准盒模型,此时宽度(width)=内容区宽度,高度也是这样。

// 宽度=内容区宽度+左右内边距+左右边框
// 高度=内容区高度+上下内边距+上下边框
box-sizing: border-box;
// 宽度=内容区宽度 高度=内容区高度
box-sizing: content-box;

2. 内边距(padding)

内边距指内容区跟边框之间的距离,可通过padding(内边距)统一设置,也可通过上内边距(padding-top)左内边距(padding-left)下内边距(padding-bottom)左内边距(padding-left)单独设置每一边内边距。

// 设置1个值
padding: 1px;
// 等价于
padding-top: 1px;
padding-right: 1px;
padding-bottom: 1px;
padding-left: 1px; // 设置2个值
padding: 1px 2px;
// 等价于
padding-top: 1px;
padding-right: 2px;
padding-bottom: 1px;
padding-left: 2px; // 设置3个值
padding: 1px 2px 3px;
// 等价于
padding-top: 1px;
padding-right: 2px;
padding-bottom: 3px;
padding-left: 2px; // 设置4个值
padding: 1px 2px 3px 4px;
// 等价于
padding-top: 1px;
padding-right: 2px;
padding-bottom: 3px;
padding-left: 4px;

3. 边框(border)

边框指包裹内容区和内边距的框框,可通过border属性统一设置(border-style(边框样式)border-width(边框宽度)border-color(边框颜色)3个属性的合并)。也可以通过border-top(上边框)border-right(右边框)border-bottom(下边框)border-left(左边框)单独设置。

3.1 边框宽度(border-width)

边框宽度表示边框的粗细,可以取任意合法的长度单位值。

// 1个值:四条边框都为1px
border-width: 1px;
// 2个值:上下边框为1px 右左边框为2px
border-width: 1px 2px;
// 3个值:上边框为1px 右左边框为2px 下边框为3px
border-width: 1px 2px 3px;
// 4个值:上边框为1px 右边框为2px 下边框为3px 右边框4px
border-width: 1px 2px 3px 4px; PS: 单独设置跟内边距差不多,如border-top-width:2px
3.2 边框样式(border-style)

边框样式可以取下面的值。

// 1个值:4条边框都没有样式
border-style: none;
// 2个值:上下边框样式为实线,右左边框样式为双实线
border-style: solid double;
// 3个值:上边框为点状 右左边框为虚线 下边框为继承
border-style: dotted dashed inherit;
// 4个值:上右下左边框样式分别为:3D凹槽 3D垄状 3D内侧 3D外侧
border-style: groove ridge inset outset ;
3.3 边框颜色(border-color)

边框颜色可取任意合法的颜色模式值。

// 1个值:4条边框都为红色
border-color: red;
// 2个值:上下边框颜色为红色,右左边框颜色为黄线
border-color: red yellow;
// 3个值:上边框为红色 右左边框为黄色 下边框为蓝色
border-color: red yellow blue;
// 4个值:上右下左边框颜色分别为:红色 黄色 蓝色 绿色
border-color: red yellow blue green;
3.4 合并属性

border可以合并上面3个属性。

// 1px、灰色的实线边框
border: 1px solid grey;

4. 外边距(margin)

外边距是盒模型的最外一层,取值跟上面差不多。

// 1个值:4个外边距都为1px
margin: 1px;
// 2个值:上下外边距为1px 右左外边距为2px
margin: 1px 2px;
// 3个值:上外边距为1px 右左外边距为2px 下外边距为3px
margin: 1px 2px 3px;
// 4个值:上外边距为1px 右外边距为2px 下外边距为3px 左外边距为4px
margin: 1px 2px 3px 4px; PS:也可以通过margin-top:1px这样的方式来单独设置外边距

CSS布局之盒子模型[一]的更多相关文章

  1. css布局与盒子模型

    一.    盒子模型 注: 1.红色为border; 2.背景应用于内容.内边距.边框组成的区域: 3.Width和height指的是内容区域的高度和宽度. 边框属性: 1.  padding属性:( ...

  2. CSS布局(二) 盒子模型属性

    盒子模型的属性 宽高width/height 在CSS中,可以对任何块级元素设置显式高度. 如果指定高度大于显示内容所需高度,多余的高度会产生一个视觉效果,就好像有额外的内边距一样: 如果指定高度小于 ...

  3. 标准W3C盒子模型和IE盒子模型CSS布局经典盒子模型(转)

    盒子模型是css中一个重要的概念,理解了盒子模型才能更好的排版.其实盒子模型有两种,分别是 ie 盒子模型和标准 w3c 盒子模型.他们对盒子模型的解释各不相同,先来看看我们熟知的标准盒子模型: 从上 ...

  4. CSS布局(一) 盒子模型

    一.盒子模型 标准盒子模型 从下图可以看到标准 w3c 盒子模型的范围包括 content.padding.border.margin,并且 content 部分不包含其他部分. 怪异盒子模型 从下图 ...

  5. CSS Flexbox 弹性盒子模型

    CSS Flexbox 弹性盒子模型 设置元素样式为 display: flex 或 display: inline-flex, 让元素变成flex容器, 从而可以通过flex模式布局它的子元素. f ...

  6. css中的盒子模型

    css中的盒子模型 css中的盒子模型,有两种,一种是“标准 W3C 盒子模型”,另外一种是IE盒子模型.   1.w3c盒子模型 从图中可以看出:w3c盒子模型的范围包括了:margin,borde ...

  7. 【CSS学习】--- 盒子模型

    一.前言:这篇只作为本人的笔记,以后慢慢再补充. 页面中的所有元素都可以被看作一个一个的“盒子”.这些盒子都包含了:内容(content).内边距(padding).边框(border)以及外边距(m ...

  8. CSS学习之盒子模型

    1. 前言 盒子模型,英文即box model.无论是div.span.还是a都是盒子. 但是,图片.表单元素一律看作是文本,它们并不是盒子.这个很好理解,比如说,一张图片里并不能放东西,它自己就是自 ...

  9. CSS学习系列1 - CSS中的盒子模型 box model

    css中有一个盒子模型的概念. 主要是用来告诉浏览器如何来计算页面元素的宽度和高度, 比如该元素的宽度/高度 是否包括内边距,边框,外边距.  盒子模型有一个属性box-sizing属性来说明是否包括 ...

随机推荐

  1. JS遍历对象修改属性名

    根据接口返回数据中number属性值,对数据进行截取,并改变属性名.直接上码: 下面是需要处理的数据 let data={"minValue":7400, "maxVal ...

  2. Java实现 LeetCode 740 删除与获得点数(递推 || 动态规划?打家劫舍Ⅳ)

    740. 删除与获得点数 给定一个整数数组 nums ,你可以对它进行一些操作. 每次操作中,选择任意一个 nums[i] ,删除它并获得 nums[i] 的点数.之后,你必须删除每个等于 nums[ ...

  3. Java实现 LeetCode 363 矩形区域不超过 K 的最大数值和

    363. 矩形区域不超过 K 的最大数值和 给定一个非空二维矩阵 matrix 和一个整数 k,找到这个矩阵内部不大于 k 的最大矩形和. 示例: 输入: matrix = [[1,0,1],[0,- ...

  4. Java实现 LeetCode 108 将有序数组转换为二叉搜索树

    108. 将有序数组转换为二叉搜索树 将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树. 本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1. 示例: ...

  5. vue的第一个commit分析

    为什么写这篇vue的分析文章? 对于天资愚钝的前端(我)来说,阅读源码是件不容易的事情,毕竟有时候看源码分析的文章都看不懂.每次看到大佬们用了1-2年的vue就能掌握原理,甚至精通源码,再看看自己用了 ...

  6. 哪些年,我们玩过的Git

    作者:玩世不恭的Coder公众号:玩世不恭的Coder时间:2020-06-05说明:本文为原创文章,未经允许不可转载,转载前请联系作者 哪些年,我们玩过的Git 前言一.前期工作常用基本概念的理解G ...

  7. UBoot配置编译及Makefile分析

    一. UBoot配置编译初步分析 1. UBoot源码结构 (1)UBoot工程项目中的文件可以分为3类 ① 第1类目录:与处理器体系结构或开发板硬件直接相关 ② 第2类目录:一些通用的函数或驱动程序 ...

  8. zabbix3.2升级3.4报错Database error

    摘要: zabbix3.2版本升级到zabbix3.4版本后打开页面报错,报错内容如下 Database errorThe frontend does not match Zabbix databas ...

  9. jquery 手写一个简单浮窗的反面教材

    前言 初学jquery写的代码,陈年往事回忆一下. 正文 介绍一下大体思路 思路: 1.需要控制一块区域,这块区域一开始是隐藏的. 2.这个区域需要关闭按钮,同时我需要写绑定事件,关闭的时候让这块区域 ...

  10. centos7.2挂载硬盘攻略

    远程SSH登录上CentOS服务器后,进行如下操作: 提醒:挂载操作会清空数据,请确认挂载盘无数据或者未使用 第一步:列出所有磁盘 命令: ll /dev/disk/by-path ll /dev/d ...