当前位置:网站首页>margin出bug---margin失效
margin出bug---margin失效
2022-08-09 10:50:00 【天T.】
我们在制作网页的时候,经常遇到margin无效的情况,出现这样的bug我们该怎样解决呢,以下我整理了以下情况,希望对大家有用。
(1)表格中的和元素或者设置display计算值是table-cell或table-row元素的margin无效。
但是,如果计算值是table-caption、table或者inline-table则没有问题,可以通过margin控制外边距,甚至::first-letter伪元素也可以解析margin。
(2)display计算值inline的非替换元素的垂直margin是无效的,虽然规范提到有渲染,但浏览器表现却未寻得一点踪迹,这和padding有明显区别的。
对于内联替换元素,垂直margin有效,并且没有margin合并问题,所以图片永远不会发生margin合并。
(3)margin合并的时候,更改margin值可能是没有效果的。
以父子margin重叠为例,假设父元素设置有margin-top:50px,则此时子元素设置margin-top:30px;就没有任何表现效果,除非大小比50px大,或者负值。
(4)绝对定位元素非定位方向的margin值**“无效”**。
很多时候我们对元素进行绝对定位的时候,只会设置1-2个相邻方位。例如:
.img {
top: 10%;
left: 30%;
}
此时right和bottom值属于auto状态,也就是右侧和底部没有进行定位,此时,这两个方向设置margin值,我们在页面上是看不到定位变化的。例如:
.img {
top: 10%;
left: 30%;
margin-right: 30px;
}
此时margin-right:30px;几乎就是摆设。是margin没有起作用吗?
实际上不是的,绝对定位元素任意方向的margin值无论在什么场景下都一直有效。譬如这个例子,假设宽度70%,同时父元素是具有定位属性,且overflow设置为auto的元素,则此时就会出现水平滚动条,因为margin-right:30px;增加了图片的外部尺寸。
那为什么一般情况下没有效果呢?主要是因为绝对定位元素的渲染是独立的,普通元素和兄弟元素是心连心的,你动我也动,但是绝对定位元素由于独立渲染无法和兄弟元素插科打诨,因此,margin无法影响兄弟元素定位,所以看上去就无效。
(5)定高容器的子元素的margin-bottom或者宽度定死的子元素的margin-right的定位**“失效”**。
<div class="box">
<div class="child"></div>
</div>
.box {
height: 100px;
}
.child {
height: 80px;
margin-bottom: 100px;
}
这里margin-bottom: 100px是不会在容器底部形成100px的外边距,看上去就像是失效了一样,实际上这个现象的本质和上面绝对定位元素非对立方位margin值“无效”类似,原因在于若想使用margin属性改变自身位置,必须是和当前元素定位方向一样的margin属性才可以,否则margin只能影响后面的元素或者父元素。
(6)鞭长莫及导致的margin无效,请看下面例子
<div class="box">
<img scr="mm1.jpg">
<p></p>
</div>
.box > img {
float: left;
width: 256px;
}
.box > p {
overflow: hidden;
margin-left: 200px;
}
这里的margin-left:200px是无效的,准确来说,此时的
的margin-left从负无穷到256px都是没有任何效果的,要解释这里为什么无效,需要对float和overflow深入理解,我们以后再细谈,哈哈,留个悬念。
边栏推荐
- [Error record] Solve the problem that ASRock J3455-ITX cannot be turned on without a monitor plugged in
- 深度学习--生成对抗网络(Generative Adversarial Nets)
- cesium加载地图
- UNIX Environment Programming Chapter 15 15.5FIFO
- 聚类了解
- OpenSSF's open source software risk assessment tool: Scorecards
- 类与对象 (下)
- 基于STM32设计的环境检测设备
- 使用cpolar远程连接群晖NAS(创建临时链接)
- Shell script combat (2nd edition) / People's Posts and Telecommunications Press Script 1 Find programs in the PATH
猜你喜欢
ThreadLocal及其内存泄露分析
性能测试(05)-表达式和业务关联-json关联
深度学习--循环神经网络(Recurrent Neural Network)
机器学习--朴素贝叶斯(Naive Bayes)
PoseNet: A Convolutional Network for Real-Time 6-DOF Camera Relocalization Paper Reading
Since I use the HiFlow scene connector, I don't have to worry about becoming a "dropper" anymore
深度学习--神经网络(基础讲解)
真香!肝完Alibaba这份面试通关宝典,我成功拿下今年第15个Offer
linux mysql操作的相关命令
tensorflow实现线性方程的参数调整
随机推荐
2022年台湾省矢量数据(点线面)及数字高程数据下载
unix环境编程 第十五章 15.7消息队列
PoseNet: A Convolutional Network for Real-Time 6-DOF Camera Relocalization论文阅读
How tall is the B+ tree of the MySQL index?
性能测试(04)-表达式和业务关联-JDBC关联
[Original] Usage of @PrePersist and @PreUpdate in JPA
备份mongodb数据库(认证)
自从我使用HiFlow场景连接器后,在也不用担心成为“落汤鸡”了
相关系数计算,热力图绘制,代码实现
Tensorflow realize parameter adjustment of linear equations
通过Doc在MySQL数据库中建表
numpy库中的函数 bincount() where() diag() all()
torch.cat()函数的官方解释,详解以及例子
activemq 消息持久化
unix环境编程 第十四章 14.8 存储映射I/O
verbose np.matmul/np.dot/np.multiply/tf.matmul/tf.multiply/*
AQS同步组件-ForkJoin、BlockingQueue阻塞队列解析和用例
OneNote 教程,如何在 OneNote 中搜索和查找笔记?
实测办公场景下,国产远程控制软件的表现力如何?(技术解析)
RPN principle in faster-rcnn