博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
margin:xx auto无效原因,盒子模型实质,应用注意。
阅读量:5911 次
发布时间:2019-06-19

本文共 1747 字,大约阅读时间需要 5 分钟。

1.用float的时候要注意,子元素总宽或者总高不要超过父容器,包括border。

  

2.用margin:xx auto;居中的时候,应用margin的元素出现不居中的效果是因为,有时候内容是一些行内元素,你不设置它的宽度他默认就是证据一整行(看下面图)。而margin是以元素的边框为依据的,所以没有任何效果。

测试例子

3.解决方案:

  ①给定元素一个宽度(其实就是具体化它的边框),很大的缺点是,你大部分时候并不想定性你的元素大小,而且你定了以后,直观的看到的是内容,所以人不一定是居中的。

  

测试例子

  ②对上一层最近的div使用text-align:center。不用设置元素大小,操作少,比较简单,能达到效果。

测试例子

  时间宝贵:1.margin居中失效原因:行内元素本身就占据一行,左右边框已经居中(0px),没有居中是因为内容没居中。

       2.解决方法:①给这个元素设置宽度。

             ②给他的父级元素应用--text-align:center;

             ③给这个元素自己应用--》display:block;text-align;

       *3.讲道理的话,这里用padding来给内容居中是很舒服的,让内容在元素里居中嘛。但是呢,padding没有这种xx auto的设置。其实同样的想法,内容层本身其实是居中的,两边padding都是0px嘛,只是你的东西没把内容层撑满,看去不居中嗯了。深究到底,其实行级元素它占据的一行,是内容层占据了一行。而应用margin,padding,border的时候都是在切割内容层的上下左右,因为一行的宽度其实是定的,这3个来拿地方了,内容层就小了。而我们平常设置的width,height是对内容层而言的,是在设置内容层的宽高。内容层像一杯牛奶,本身没有任何而言,然后margin,padding,border像一瓶牛奶的盒子,一箱牛奶的盒子(现实中只不过这些盒子外壳都是一样厚的)不然放在超市,透明看去,喝的牛奶部分并不是居中的。网页的渲染,某个父级元素给子元素的你的一行宽是固定的,不设置margin,border,padding,内容是占据整行的,如果你设置margin,border,padding,父级给你的行宽是固定的,你要放下一个带包装盒的牛奶,没办法,要弄点牛奶掉来给点位置放包装盒。所以我们常常设置的margin,padding,是在挤占内容层的大小,所以要小心规划这些值,不然你要显示的东西就会很奇怪,可能被挤占的内容层就不够放置要显示的元素了。

       4.用了margin:xx auto;的元素不能用float。

       5.很多样式的奇怪原因都是源自块级元素和行级元素的不同,但是我们要始终关注,内容层才是我们的布局目标。

 

转载于:https://www.cnblogs.com/horsen/p/6664936.html

你可能感兴趣的文章
PowerManager Android 电源管理
查看>>
自定义PlantUML和C4Model的样式
查看>>
springboot报编译失败 Compilation failure
查看>>
Ubuntu下su模式认证失败的问题解决
查看>>
mysqld error(一)
查看>>
Javascript延时函数
查看>>
UML类图关系大全
查看>>
Ant编译Hadoop 1.0.3的eclipse-plugin插件包
查看>>
tensorflow开发环境搭建
查看>>
JDBCRealm Http Digest
查看>>
CentOS 7 网络配置
查看>>
matplotlib 交互式导航
查看>>
eclipse的插件未安装成功
查看>>
由装箱引发的——Integer比较的来龙去脉
查看>>
java 深拷贝
查看>>
UnicodeEncodeError: 'ascii' codec can't encode
查看>>
jvm在什么时候进行进行垃圾回收,在什么时候进行扩大内存
查看>>
【转载】强大的命令行工具wmic
查看>>
JavaScript里的数组转化新方法Array.From
查看>>
修改eclipse下maven项目的java文件编译目录路径
查看>>