CSS盒子模型
Css盒子模型本质上是一个盒子,封装周围的html元素,他包括边框、内容、外边距、内边距。
1.边框
边框(border)可以设置元素的边框,他由三部分组成:边框宽度(粗细)、边框样式、边框颜色。

border: border-width boder-style border-color
<style>div {width: 300px;height: 200px;/* border-width 边框的粗细  一般情况下都用 px */border-width: 5px;/* border-style 边框的样式  solid 实线边框   dashed 虚线边框  dotted 点线边框*/border-style: solid;/* border-style: dashed; *//* border-style: dotted; *//* border-color 边框的颜色  */border-color: yellow;}</style>

边框的复合写法:border: 1px solid red; (没有顺序)
边框的分开写法:border-top: 1px solid red; (只设置上边框,其余边框的设 置同理)

表格的细线边框(border-collapse)
border-collapse属性控制浏览器绘制表格边框的方式,控制相邻单元格的边框。

border-collapse: collapse;
  • collapse:合并
  • 表示相邻边框合在一起

边框会影响盒子的实际大小(变宽会额外增加盒子的实际大小),有如下两种解决办法:
1.测量盒子大小时不量边框。
2.若测量盒子时包含了边框,则需要用height、width减去边框。

<style>/* 我们需要一个200*200的盒子, 但是这个盒子有10像素的红色边框 */div {width: 180px;height: 180px;background-color: pink;border: 10px solid red;}</style>

2.内边距
内边距(padding)是指边框与内容的距离
padding-left(左内边距)/right(右内边距)/top(上内边距)/bottom(下内边距)

值的个数 表达意思
padding: 5px 上下左右都是5px内边距
padding:5px 6px 上下内边距是5px,左右内边距是6px
padding: 5px 6px 7px 上内边距是5px ,左右内边距是6px, 下内边距是7px
padding: 5px 6px 7px 8px 上内边距是5px,右内边距是6px,下内边距是7px,左内边距是8px(顺时针方向)

注意:当我们给盒子指定padding之后
1.添加了内边距,内容和边框有了距离。
2.padding影响了盒子的实际大小,也就是说若盒子有宽度和高度,此时指定内边框会撑大盒子
解决方案
如果想让盒子跟效果图保持一样的大小,则让height/width减去多余出来的内边距即可
padding不会撑开盒子的情况
没有指定盒子的宽度/高度,此时padding不会撑开盒子的大小

<style>   h1 {height: 200px;background-color: yellow;padding: 30px;}div {width: 300px;height: 100px;background-color: red;}div p {padding: 30px;background-color: blue;}</style>
</head>
<body><h1></h1><div><p></p></div>
</body>

3.外边距(margin)
外边距(margin)控制盒子与盒子之间的距离
margin-left/right/top/bottom
外边距的典型应用:可以让盒子水平居中,但是必须满足以下条件:

  • 块级盒子必须指定宽度
  • 左右外边距设置为auto
    常见的三种写法:
    margin-left: auto; margin-right:auto; margin: auto; margin: 0 auto;

若想要给行内元素或行内块元素设置水平居中,则只需给其父元素添加text-align:center即可。

外边距合并
使用margin定义块元素的垂直外边距时,可能会出现外边距的合并问题。
1.上下相邻的块元素垂直外边距的合并:

  • 若两个都是正数,则选取两个外边距中的较大值
  • 若都是负数,选取绝对值较大的
  • 若一正一负,则取两值的和

解决方案:尽量只给一个盒子添加margin值
2.左右相块元素外边距的合并:
选取两个外边距的和
嵌套元素垂直外边距的塌陷
对于两个嵌套关系的块元素(父子关系),父元素有上外边距的同时子元素也有上外边距,此时父元素会塌陷较大的外边距值
解决方案:

 <style>.yellow{height: 400px;width: 400px;background-color: pink;/* margin: 0 auto; 盒子居中 */margin-top: 50px;/* padding-top: 50px; 方法一:为父元素定义上内边距 *//* border-top: transparent 1px solid; 方法二:为父元素定义上边框 *//* overflow: hidden;  *//* 方法三:为父元素添加overflow: hidden */}.skyblue{height: 200px;width: 200px;background-color: skyblue;/* margin-top: 100px; 父元素和子元素同时具有上边距,则此时父元素出现塌陷 */margin-top: 100px;}</style>
</head>
<body><div class="yellow"><div class="skyblue"></div></div>
</body>

清除内外边距
网页元素很多都带有默认的页面边距,清除他们的方法:

* {padding: 0;margin: 0;}这也是css的第一行代码

行内元素为了照顾兼容性,尽量只设置左右内外边距,不要设置上下内外边距,但是转换为块级元素和行内块元素就可以了。

CSS 盒子模型(border、padding、margin)相关推荐

  1. 11.前端笔记-CSS盒子模型-外边距margin

    1.margin 1.1 margin的语法 盒子与盒子之间的距离 <!DOCTYPE html> <html lang="en"> <head> ...

  2. css盒子模型margin和padding

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.padding和margin定义 二.举例 前言 盒子模型中padding和margin是前端页面常用到的属性,简 ...

  3. html盒模型中border的写法,HTML+css盒子模型案例(圆,半圆等)“border-radius” 简单易上手...

    很多小伙伴在前端学习的时候,发现盒子模型默认为正方形.如何把盒子变成想要的模型呢? 首先我们来看一下默认的情况---- .box{ width: 100px; height: 100px; backg ...

  4. CSS盒子模型之CSS3可伸缩框属性(Flexible Box)

    CSS盒子模型(下) 一.CSS3可伸缩框(Flexible Box) 可伸缩框属性(Flexible Box)是css3新添加的盒子模型属性,有人称之为弹性盒模型,它的出现打破了我们经常使用的浮动布 ...

  5. [HTML/CSS]盒子模型,块级元素和行内元素

    目录 概述 盒子模型 块级元素 行内元素 可变元素 总结 概述 在div+css中,了解块级元素和行内元素还是非常有必要的,比如:对行内元素使用width属性就会失效.虽然自己不是做前端的,但是,在项 ...

  6. Web开发(一)·期末不挂之第五章·CSS盒子模型(盒子模型各属性行级元素和块级元素导航栏的实现)

    CSS盒子模型 一.盒子模型 二. 块级元素与行级元素✪✪✪ 块级元素 行内元素 转化 三.导航栏的实现 一.盒子模型 盒子是页面内容的容器,通过盒子的堆叠.嵌套能实现网页布局 各属性: 大小(wid ...

  7. php盒子模型,CSS盒子模型介绍

    什么是CSS盒子模型?CSS盒子模型是为了让我们充分理解p+css模型的定位功能,盒子模型在学习p+css布局方式中必须要学习的一个模型 一.什么是CSS? CSS(Cascading Style S ...

  8. 转HTML+CSS总结/深入理解CSS盒子模型

    原文地址:http://www.chinaz.com/design/2010/1229/151993.shtml 前言:前阵子在做一个项目时,在页面布局方面遇到了一点小问题,于是上stackoverf ...

  9. CSS盒子模型之详解

    前言:         盒子模型是css中最核心的基础知识,理解了这个重要的概念才能更好的排版,进行页面布局. 一.css盒子模型概念     CSS盒子模型 又称框模型 (Box Model) ,包 ...

最新文章

  1. RubyOnRails小资料
  2. Memcache 笔记
  3. docker 查看容器占用磁盘大小
  4. C语言学习之求一个3X3的整型矩阵对角线元素之和。
  5. .NET 6新特性试用 | 自动生成高性能日志记录代码
  6. Apache Tomcat目录下各个文件夹的作用
  7. python修改word_Python自动化修改word实例
  8. php server host,PHP $ _SERVER ['HTTP_HOST']与$ _SERVER
  9. linux 下nm命令输出,Linux nm命令介绍
  10. CommonJS的值拷贝与ES6的动态映射
  11. 机器学习入门——K近邻算法
  12. 学生管理系统java源代码_java学生管理系统源代码
  13. android源码分析!程序员怎样优雅度过35岁中年危机?送大厂面经一份!
  14. 大数据笔记--Hadoop(第二篇)
  15. ibm服务器硬盘raid检测,IBM 3650 服务器做的RAID5,两块硬盘亮黄灯,但是系统正常,更换...
  16. 如何提升固定资产盘点效率
  17. python的多线程
  18. C++语言程序设计(第5版 郑莉、董渊)学习笔记(自用~)
  19. 7.Numpy array 分割(纵向分割/横向分割/错误分割/不等量分割/其他分割)
  20. 20-硬链接与软链接

热门文章

  1. 良好的协同管理,是数字时代的成功前提
  2. php 模拟微信账号登录
  3. 对吞吐量和吞吐率的理解
  4. OSChina 周二乱弹 ——宅女喵 租男友 包吃住 100一天
  5. Caused by: java.io.EOFException: SSL peer shut down incorrectly
  6. 如何在Windows PC端将音乐同步到iPhone Xs的音乐库
  7. 【一周头条盘点】中国软件网(2018.10.29~2018.11.2)
  8. android studio 使用CMAKE,在terminal终端里敲cmake命令
  9. linux虚拟机安装过程中卡在mount: block device /dev/sr0 is write-protected, mounting read-only
  10. 从985非科班到网易伏羲CV算法岗