水平方向margin:auto
先上图
由图可看到,块级元素的水平方向上又“7大属性”:margin-left、border-left、padding-left、margin-left、width、padding-right、border-right和margin-right。这些属性中,只有3个属性可以设置为auto,分别为:margin-left、width和margin-right。
在讨论之前,首先记住两条原则:
1)这7大属性的值总和=父元素的width;
2)属性间冲突时,优先级:width>margin-left>margin-right。
元素的属性width和margin的不同组合情况分如下4种情况:
(1) | (2) | (3) | (4) | |
---|---|---|---|---|
width | 定值 | 定值 | auto | auto |
margin | 定值 | auto | 定值 | auto |
(1)width= 定值,margin=定值
此种情况即为width、margin-left、margin-right均为定值,为过分受限,根据原则2,此时总会把margin-right强制为auto。
也就是说,为了达到原则1,margin-right会根据情况调整,使元素的总宽度等于其包含快的width。
(2)width= 定值,margin=auto
* width= 定值,margin-left = mergin-right = auto,此时margin-left与margin-right会设置为相等的长度,因此元素会在父元素中居中
* width= 定值,margin-left和mergin-right中一个为定值、一个为auto,则为auto的属性根据原则1,自动调整。
(3)width= auto,margin=定值
* marin-left + margin-right < 父元素宽度,则width根据原则1设置为某个值
* marin-left + margin-right >= 父元素宽度,则width为0
(4)width= auto,margin=auto
* width、margin-left、mergin-right均为auto,这就是默认的情况,此时两个外边距会设置为0,width会尽可能宽以达到原则1。
* width = auto,margin-left和mergin-right中一个为定值、一个为auto,此时,根据原则2,width为占用剩下的所有宽度,为auto的margin的值为0。
以上是针对块级元素,对于非块级元素(内联元素和替换元素):
* 只要设置为display:block,除了元素的宽度为内容的固有宽度这一点,其他表现与块级元素表现一致。
* 如果不设置display:block, 则width为内容的固有宽度,水平方向margin可以设定为固定值,但设置为auto会表现为0;
水平方向margin:auto的更多相关文章
- 深入学习CSS外边距margin(重叠效果,margin传递效果,margin:auto实现块级元素水平垂直居中效果)
前言 margin是盒模型几个属性中一个非常特殊的属性.简单举几个例子:只有margin不显示当前元素背景,只有margin可以设置为负值,margin和宽高支持auto,以及margin具有非常奇怪 ...
- 小tip: margin:auto实现绝对定位元素的水平垂直居中
转载自:http://www.zhangxinxu.com/wordpress/?p=3794 一.绝对定位元素的居中实现 如果要问如何CSS实现绝对定位元素的居中效果,很多人心里已经有答案了. 兼容 ...
- 2016/2/25 1, margin auto 垂直方向测试 无效 2,margin重叠 3,哪些是块状哪些是内联 4,display:block inline 导航栏把内联转块状最常见+ 扩展
1.利用margin auto完成首页居中,并自行研究,竖直方向用margin auto,是什么效果#container{width:1002px;margin: 0px auto;} 竖直方向 ...
- margin:auto你真的理解么?
含义 margin:auto是具有强烈计算意味的关键字,用来计算元素对应方向应该获得的剩余空间大小 填充规则 (1) 如果一侧定值,一侧auto,则auto为剩余空间大小 (2) 如果两侧均是auto ...
- margin auto 实现居中,与text-align:center的区别
本文导读:一个元素在水平方向上所占的长度,由width ,padding ,和margin 决定.这些值中,只有width和margin-left,margin-right可以设为auto,text- ...
- CSS居中问题:块级元素和行级元素在水平方向以及垂直方向的居中问题
元素的居中问题是每个初学者碰到的第一个大问题,在此我总结了下各种块级 行级 水平 垂直 的居中方法,并尽量给出代码实例. 首先请先明白块级元素和行级元素的区别 块级元素 块级元素水平居中 1:marg ...
- [CSS七分钟系列]都1902年了,还不知道用margin:auto给flex容器内元素分组?
最近看到几篇博文讲解margin:auto在flex容器中的使用,可惜的是大多讲解都浮于页面表现,没深究其中的作用机理,本文在此浅薄对其表现机理做简单探讨. 引子 日常业务迭代过程中,flex已经是前 ...
- margin:auto你真的理解么
含义 margin:auto是具有强烈计算意味的关键字,用来计算元素对应方向应该获得的剩余空间大小 填充规则 (1) 如果一侧定值,一侧auto,则auto为剩余空间大小 (2) 如果两侧均是auto ...
- html5水平方向重力感应
html5图片随手机重力感应而移动 <!DOCTYPE html> <html lang="zh-cn"><head><meta http ...
随机推荐
- nginx和tomcat访问图片和静态页面的配置方法
生产环境下,有时候需要访问图片,正常需要应用ftp.nginx等配套使用,但是有时候为了简化,可以用以下的两种简单的访问,说实话,就是为了偷懒,但是效果是能有的,这就行了,所以今天做这个简化版的方便大 ...
- mongodb初始化并使用node.js实现mongodb操作封装
mongodb的下载只要在https://www.mongodb.com/网站就能够下载 下载后安装只用一直点next就可以,注意最好使用默认路径安装到C盘,然后在任意位置建立一个文件夹用于储存你的数 ...
- 修改git全局初始化的用户名
今天我把文件上传到码云的时候出现 翻译的话就是 用户名不能多个值 这样的错误 所以想要解决这个错误的话非常简单 $ git config --global --replace-all user ...
- [LeetCode]640解方程式
问题描述: 示例 1: 输入: "x+5-3+x=6+x-2" 输出: "x=2" 示例 2: 输入: "x=x" 输出: "In ...
- linux(乌班图)下执行pip没有问题,执行sudo pip报错的问题
最近刚装好linux的虚拟机,在装一个套件时提示权限不足,于是添加上了 sudo 命令,结果直接报以下错误, Traceback (most recent call last): File " ...
- dubbo管控台安装
1. jdk安装 # cp installpkgs/jdk-7u67-linux-x64_tar_gz /usr/local # tar -zxf jdk-7u67-linux-x64_tar_g ...
- (转)深入浅出 RPC - 深入篇
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/mindfloating/article/details/39474123 <深入篇>我们 ...
- Eclipse怎么样添加智能感知提示功能(含Windows版和Mac版)
近日感兴趣于安卓,开始学习Android开发……第一次使用Eclipse,用久了VS,也习惯了他的智能提示,刚转到Eclipse下实在是不习惯…… 网上有人说按Alt + / 可以实现单词补全功能,实 ...
- text_edit 未定义解决
找到文件:admin\controller\setting $data['heading_title'] = $this->language->get('heading_title'); ...
- 图片按日期分类和查看程序(WPF开发)(附源码)
手机方便了我们的生活,可以随时随地拍摄.越来越多的图片堆砌在电脑里.看到杂乱无章的图片,实在感到头痛.手动整理太复杂.基于此,我写了一个小程序,可以将图片按日期整理和查看.按日期查看图片,回忆过去的点 ...