在写css时margin:auto;使用频率非常高,常用于div的居中。

何为margin?

margin是指块级元素的外边距,如下图所示,XXXXX是div中的内容,通过设置margin的值,可控制div与其他块级元素的距离

margin设置不同数量的值时的含义

我们常看到

margin:auto;

margin: 0px auto;

margin: 10px 20px 30px 40px;

相关的语句,当margin有不同数量的值时,其含义分别是什么?

首先margin最多有4个值,按顺序为顺时针:上,右,下,左

当给margin提供4个值时,分别设置上(margin-top),右(margin-right),下(margin-bottom),左(margin-left)的值;

当给margin提供3个值时,第1个为上,第2个为左右,第3个为下;

当给margin提供2个值时,第1个为上下,第2个为左右;

当给margin提供1个值时,此值代表上下左右四个方向。

margin的值为auto的具体含义是什么?

auto意为自动填充。以margin:0,auto;为例,程序会自动计算剩余左右两部分的空白长度,把其等分再作为div左右的外边距。所以我们可以使用此行代码使得div居中。

为什么使用margin:auto;可以使div左右居中,却不能垂直居中?

我们设置两个盒子,都在里面添加margin:auto;所有代码如图所示:

<!DOCTYPE html>
<html>
<head><title>div    </title><style type="text/css">.div1 {background-color: gray; /* 背景色 */height: 500px; /* 盒子的长宽 */width: 600px;margin: auto; /* 居中 */}.div2 {background-color: red;height: 200px;width: 200px;margin: auto;}</style>
</head>
<body><div class="div1"><div class="div2"></div></div></body>
</html>

实现效果:

可看到盒子已经成功地左右居中,但并没有垂直居中。我查看了相关文档,在这里写一下个人的见解。首先理解块级元素的概念,块级元素在默认情况下会占据整行空间,即使元素宽度不是百分百占据浏览器,浏览器也会给它空出整行的空间,这也对应了外边距的设立。如果不做任何处理,下一个块级元素会另起一行。那么当写上margin:auto;时,可理解为左右尚有空缺,所以可以看到居中效果,但上下已经没有空缺了(在浏览器眼里),即margin-top和margin-bottom都自动设置为0。

在下一篇博客中会写一篇如何水平、垂直居中div的博文

关于margin: auto及margin: 0 auto的一些见解相关推荐

  1. margin 0 auto 什么意思

    今天在写h5的时候遇到了居中的问题(网页自适应),让后就上网上查了相关的资料,顺便整理一下margin中两个参数的意思: margin后面如果只有两个参数的话,第一个表示top和bottom,第二个表 ...

  2. [css] 怎么IE6下在使用margin:0 auto;无法使其居中?

    [css] 怎么IE6下在使用margin:0 auto;无法使其居中? 浏览器解析的问题,IE6下需要对居中的元素设置text-align:center属性使其margin:0 auto;生效. 个 ...

  3. 块状元素的居中,首先设置宽度,再设 margin: 0 auto

    块状元素的居中,首先设置宽度 width="10px",再设 margin: 0 auto; . 转载于:https://www.cnblogs.com/npk19195globa ...

  4. css中margin:0 auto没作用

    很多初学制作网页的朋友,可能会遇到的一个常见问题,就是在CSS中加了margin:0 auto;却没有效果,不能居中的问题!margin:0 auto;的意思就是:上下边界为0,左右根据宽度自适应!其 ...

  5. margin: 0 auto;的作用

    在html中,为什么我们设置一个margin: 0 auto;就可以使得块元素居中? <!DOCTYPE html> <html lang="en"> &l ...

  6. CSS中:margin和padding的区别 margin:auto与margin: 0 auto区别

    css中padding和margin的区别 margin 外边距 border 边框 padding 内边距 padding-left:10px; 左内边距.padding-right:10px; 右 ...

  7. 固定定位的盒子使用margin:0 auto;是无法水平居中的,此时该怎么操作呢?

    固定定位的盒子使用margin:0 auto:是无法水平居中的,此时该怎么操作呢? 第一步 第二步 建议 完整小栗子 第一步 定位距离左侧(相对于浏览器)50%,此时盒子左侧是在浏览器中间的 posi ...

  8. 行内元素设置margin:0 auto无效的问题

    行内元素指的是可在同一行内排列的元素,列举几个常用行内元素:img.input.span.label.a.textarea.button. 通常要给元素设置居中得效果的话,很多人会先想到margin: ...

  9. margin:0 auto是什么意思

    margin是外边距的意, 当一个元素样式属性里有dumargin:0 auto时,并且父元素的宽度是确定的, 意思是这个元素处于其父元素的居中位置,并且这个元素的上下外边距为0 即:上下外边距为0, ...

  10. text-align:center 和margin:0 auto的区别

    基本概念: 1.text-align: 属性规定元素中的文本的水平对齐方式;   该属性通过指定行框与哪个点对齐,从而设置块级元素内文本水平对齐方式; 一般情况下设置文本对齐方式的时使用此属性.支持值 ...

最新文章

  1. 想转行人工智能?机会来了!
  2. python读取文件夹下所有图像 预处理_Tensorflow之tif图像文件预处理
  3. oVirt Reports Portal 3.4 added to ovirt-engine
  4. FPGA+NIOS2 Verilog+C 实现一个计算器
  5. Android官方开发文档Training系列课程中文版:网络操作之网络管理
  6. css - 给图片添加蒙版
  7. 高德地图模仿微信发送位置实现拾取坐标
  8. 网易有道 IP地址、邮编区号及城市查询、手机号码归属地和身份证 查询接口API
  9. Java / Tensorflow - Expects arg[0] to be int64 but int32 is provided 异常处理
  10. 我的世界Mod整合包中的Mod下载
  11. Android折腾记——Linux on Android在Android手机上跑Linux教程
  12. SpringSecurity(二)、权限项目框架搭建
  13. 微信发红包、QQ登录、搜索框、水杯、聊天窗口、两台电梯、微信/淘宝支付、笔、 抖音发布短视频等功能测试用例
  14. 2022年Python笔试选择题及答案(秋招)
  15. EPLAN无法打开ESS_part001.mdb。处理方法
  16. 此时不应有 \Microsoft 或其它的解决办法
  17. 基于CTP的程序化交易系统开…
  18. 项目分析工具----SpaceSniffer
  19. Mac 彻底卸载Java
  20. 新零售mysql设计(购物券表 客户关联购物券表)二次修改

热门文章

  1. 使用ipset精简iptables规则的IP列表
  2. django 库存管理系统 计算机毕业源码19144
  3. conda tricks
  4. 分布式系统设计之容错机制
  5. 一文解决IDEA中文乱码问题
  6. python爬取小说写入txt_Python爬虫练习 爬取网络小说保存到txt
  7. ubuntu,你改变了我的人生
  8. 【编译原理01】源程序和目标程序的关系,编译系统的组成
  9. mac 卸载 安装mysql_SQL----mySQl卸载for mac
  10. Cocos Creator3.x NavMesh导航网格寻路