首页
学习
活动
专区
圈层
工具
发布

子元素margin-top导致父元素移动的问题

问题描述 今天在修改页面样式的时候,遇到子元素设置margin-top 但是并没有使得子元素与父元素之间产生间隔,而是作用在了其父元素上,导致父元素产生了一个margin-top 的效果。...今天就来说说整个问题产生的原因,以及解决方案。...注意:即使设置父元素的外边距是0,margin: 0,第一个或最后一个子元素的外边距仍然会“溢出”到父元素的外面。...solid transparent; middle元素设置padding:padding-top: 1px; 注意事项 如果参与折叠的margin中包含负值,折叠后的margin的值为最大的正边距与最小的负边距...如果所有参与折叠的外边距都为负,折叠后的外边距的值为最小的负边距的值。这一规则适用于相邻元素和嵌套元素。

3.5K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    块元素, 内联元素, 内联块元素块元素(默认为父级宽度的100%,支持全部样式):内联元素(不支持宽高, 不支持margin上下, 不支持padding上下)内联块元素(从其它元素转换而来, disp

    块元素(默认为父级宽度的100%,支持全部样式): body h1 , h2, h3, h4, h5, h6 p div li (条目) ul(定义无序列表, 子标签li, 带点号) ol(定义有序列表...dd> C C是一门古老的静态语言 内联元素(不支持宽高, 不支持margin上下, 不支持padding上下) a span em(语气强调...,斜体) i(专业词汇, 斜体) b(关键词, 加粗) strong(非常重要, 加粗) input(输入框, 支持全部样式) img(图片, 支持全部样式) 间隙问题: 父级设置字体为0, 子级单独设置字体尺寸...居中问题: 使用text-align: center 内联块元素(从其它元素转换而来, display: inline-block, 支持全部样式!...) 没有原生的内联块元素 任何元素都可以转换为内联块元素 display: inline-block(内联块元素) inline(内联元素) block(块元素) none(隐藏)

    1.4K60

    li、img等元素设置inline-block后的空白间距问题

    不过有一个问题,就是使用 inline-block 的元素之间会存在 4-5px 的空白间隙。今天就记录一下解决这个 4-5px 的方法。...不过方法一是通过标签来解决,虽然问题解决了,但不能称作是技巧。而且上面的方法只适合于写静态页面,如果标签是后台生成,就不合适了。...方法二:负的 margin li {    margin-right: -4px; } 这种解决方法并不完美,因为不同浏览器解析不同,加上父元素的字体大小不固定,这个“-4px”就不能解决问题。...方法三: 设置父元素字体为0 ,子元素重新设置字体。...全兼容的样式解决方法: 使用纯 CSS 实现兼容的方法,在父元素中设置 font-size:0 。用来兼容 Chrome,使用 letter-space:-n px 来兼容safari。

    1.9K00

    【react-dnd使用总结一】拖放完成后获取放置元素在drop容器中的相对位置

    工具函数-根据元素的起始位置和最终位置,计算相对于某元素的位置 export interface IPosition { left: number; top: number; } /** *...根据元素的其实位置和最终位置,计算相对于某元素的位置 * @param initialPosition 拖动元素相对于屏幕左上角的起始位置(偏移量) * @param finalPosition 拖放完成后当前节点相对于屏幕左上角的位置...* @param containerEle 目标容器元素 * @returns */ export const getCorrectDroppedOffsetValue = ( initialPosition...const position = getCorrectDroppedOffsetValue( monitor.getInitialSourceClientOffset(), // 拖动元素相对于屏幕左上角的起始位置...(偏移量) monitor.getSourceClientOffset(), // 拖放完成后当前节点相对于屏幕左上角的位置 document.querySelector('#container

    5.3K10

    5分钟快速回顾HTML CSS

    :由于内联元素自身不支持width,使用在父级元素设置text-alian : center 的解决方案 3.内联块元素(支持全部样式的内联元素) 转换为内联块 设置样式 display:...inline-block; 其它常见问题 可以把内联块元素看做内联元素的进化版, 通过设置float属性也会将元素转换为内联块 通过定位属性fix, absolute都可以将元素转换为内联块 (二...; 说明: 针对自身设置相对定位 有上左,上右,下左,下右,四种定位方式 元素自身未脱离文档流,依然占据了原位置 2.绝对定位(相对于父元素定位) 父元素设置 position...定位的四种方式同相对定位 如果子元素找不到父元素,则会一直向上找,直到找到最外层标签页面 3.固定定位(相对于浏览器定位) 元素css设置 position: fix; right: 20px...,超出父级元素会自动换行 元素设置浮动后,会自动转为"行内块元素"(元素之间也不会有间隙) 浮动元素后面没有浮动的元素会占据浮动元素的位置,没有浮动元素内的文字会避开浮动的元素,形成文字绕图效果 常见需求

    1.5K90

    【CSS3】css开篇基础(4)

    转换 浮动的盒子中间是没有缝隙的,是紧挨着一起的 浮动带来的问题 后续标准流元素的正常布局 一个元素浮动了,理论上其余的兄弟元素也要浮动。...父容器恢复高度 当产生浮动后,我们的浮动元素盒子默认高度是0,所以如果一个盒子里装的全是浮动盒子,该盒子高度就为0,就会坍塌掉,同时还会影响到后面标准流的布局。...常用的定位属性包括: 相对定位 相对于元素自身正常位置进行定位,通过top、right、bottom、left属性来调整位置,不会脱离文档流。...子绝父相 —— 虽然父元素的定位可以是相对、绝对或者固定定位,但是绝对定位和固定定位都会脱离标准流,所以我们实际开发中,一般都使用相对定位,这就是常说的子绝父相。...只有设置了定位的元素才能通过 z-index 控制其堆叠顺序,因为只有这些元素才能脱离正常文档流并具有层叠上下文。

    52910

    前端课程——定位继承与层叠

    元素先放置在未添加定位时的位置,再在不改变页面布局的前提 下调整元素位置。...简单来说定位就是规定被定位元素距离页面顶部及左边的距离 绝对定位 开启后脱离文档流 不设置位置的偏移量则位置不会变化 偏移量 正值(top)向下 负值(top)向上 绝对定位的集中情况 如果当前元素的父级元素是...元素的话 相对于当前页面的定位 如果当前元素的父级元素不是元素的话,父级元素没有开启定位 相对于当前页面的定位 如果当前元素的父级元素不是元素的话,父级元素开启定位...相对于父级元素的定位 bottom值 默认加载完毕后的位置 相对于当前浏览器窗口的底部 绝对定位依旧是相对于页面的定位,而不是相对于浏览器窗口的定位 固定定位 相对于浏览器窗口的定位...脱离文档流 相对定位 不脱离文档流 相对于自身原来的位置进行定位 堆叠 z- index属性指定了一个具有定位属性的元素及其子代元素的z -order。

    96131

    【学习笔记】CSS深入理解之absolute「建议收藏」

    浮动的一些应用场景中也可用绝对定位替代 绝对定位的行为表现 无依赖绝对定位元素 在未手动定位的情况下,绝对定位元素有以下特性 去float化 – float属性将会失效 跟随性 – 根据原有位置脱离文档流放置...无依赖绝对定位元素 —— 即未手动定位的绝对定位元素 无依赖绝对定位元素的使用 无依赖绝对定位元素可以使用margin值进行定位,实现脱离文档流的相对定位效果,脱离文档流可以解决溢出限制的问题 应用实例...可应用于宽高自适应 有固定width/height,绝对定位拉伸失效 固定width + left + right,相当于元素有了一个固定宽度,这时使用margin: auto可达到居中效果 总结 绝对定位相对于包含块定位...; 在日常使用种,一般会习惯性对父容器使用relative,使用top/bottom/left/right来脱离文档流的绝对定位; 但无依赖绝对定位元素结合margin偏移使用也可以实现一些实用的效果。...利用绝对定位元素脱离文档流的特性,使用动画可以避免大范围的回流和重绘。 绝对定位元素拉伸实现宽高自适应,可应用于大范围的布局。

    51040

    CSS Position 定位

    top、right、bottom、left 属性则决定了该元素的最终位置。...---- 对 content 的 position 设定 static 后,left就失效了,而元素(content)就以正常的 normal flow 形式呈现。...#2.2 position: relative 该关键字下,元素先放置在未添加定位时的位置,再在不改变页面布局的前提下调整元素位置(因此会在此元素未添加定位时所在位置留下空白)。...绝对定位的元素可以设置外边距(margin),且不会与其他边距合并。 生成绝对定位的元素,其相对于 static 定位以外的第一个父元素进行定位,会脱离normal flow。...---- 因为 content 的父元素 container 没有设置 position,默认为 static,所以找到的第一个父元素是 body(),可以看成是元素(content)相对于 body

    1.3K10

    前端常见技术点 - CSS DOM 布局(43问)

    这里总结一下 WEB 前端面试 CSS 部分的常见问题,同时这些问题也是对一些基础的技术概念和思想的理解。对这些基本知识的掌握程度和深度决定了你的技术层级。...17、常见的移动端开发问题 应该有很多,这里只列出笔者遇到过的一部分: 若父容器设置了 transform 属性,则其内部子元素的 position:fixed; 属性会失效; 18、对 line-height...;半脱离文档流(元素脱离文档流,内容不脱离文档流,即一种文字环绕图片的效果); absolute:元素默认宽度为内容宽度;脱离文档流;参照物为第一个定位祖先(设置了 position 并且值不是 static...28、常见的浏览器兼容性问题有哪些? HTML5 的兼容性问题等(笔者公司不考虑IE10以下的浏览器)。 29、元素竖向的百分比设定是相对于容器的高度吗?...:display:flex; 弹性元素:父容器的直接子元素,并且没有脱离文档流(非 absolute 属性)。

    1.7K30

    【CSS3】 float浮动与position定位常见问题(个人笔记)

    看完就会) CSS3 transform 2D转换之移动 旋转 缩放(详细讲解看完就会) CSS3 Z—Index 详解 CSS3 positon定位详解(通俗易懂) 目录 1.float子元素浮动范围不会超出父元素的范围大小...b,离开了原位置,黄色f仍然没有顶上去,因为相对定位会在原位置一直占有,重绘但没有回流,在设置相对定位后相邻元素不会跑到下面去,就是因为一直占有原位置,也就是说它脱离了原位置后,依然是可以盖住标准流元素的...,我们可以理解为 他脱离了标准流的位置,但同时也占领着初始位置,下面的四也跟这个问题相关。...全部脱离了标准流,紫色和红色是浮动,黄色是相对定位, 黄色原本在紫色下面,相对定位后变成了在最前面显示,这里我们可以知道定位属性的层级是大于浮动属性的,然后黑色上移,被紫色覆盖,但是黑色上留了一段距离,...div依次排列,但是绝对定位(完全脱离了标准流)只显示了最后面一个最大的div,绝对定位和有浮动都是脱离标准流,右浮动是在标准流的基础上往上面加了一层  也就是第二层 所有的浮动元素都在第二层显示,所以他们按顺序排列了起来

    62240

    【CSS】CSS 总结 ⑦ ( 定位 | 静态定位 | 相对定位 | 绝对定位 | 子绝父相 | 固定定位 | 使用绝对定位设置水平垂直居中 | 堆叠顺序 | 显示模式 | 元素隐藏 ) ★

    中 , 原来的位置是 (0 , 0) , 设置了相对定位 , 就是 相对于原来的位置 (0, 0) 进行 边偏移 后的位置 ; 下面的示例中 , 盒子模型的初始位置是 在浏览器的 左上角 ( 0 ,...的 父级元素 没有定位 , 那么会 一直向上查找有定位的父级元素 , 直到浏览器 ; 绝对定位 元素 不保留 原来的位置 , 是完全脱离 标准流 的 ( 脱标 ) ; 这里与相对定位进行对比 , 相对定位...是相对于 盒子在普通流模式下的位置 进行设置的 ; 相对定位 是 不脱标 ( 脱离标准流 ) 的 , 原来的位置还会进行保留 ; 8、子绝父相 - 子元素绝对定位 父元素相对定位 绝对定位 要和 带有定位..., 没有塌陷 ; 示例 2 中 , 为子盒子设置了 上外边距 , 结果将 父盒子也带下来了 ; 使用传统方法解决外边距塌陷问题 : 为 父容器 / 子元素 设置 内边距 / 边框 ; 下面是...display 隐藏元素 , 该元素就会从标准流中脱离 , 后面的元素会顶上 ; 17、visibility 隐藏对象 visibility 的属性值 默认为 inherit , 继承自父元素 , 一般默认都是可见的

    1.6K10

    【面试题解】CSS布局,定位布局,浮动布局,BFC,IFC,FFC,GFC

    因为浮动元素脱离了普通流,会出现一种高度坍塌的现象:原来的父容器高度是当前盒子撑开的,但是当当前盒子浮动后,脱离文档流浮动起来,那父容器的高度就坍塌。...relative 相对定位,元素保留在标准流中所占用的位置,但实际是边框及以内的部分将显示在偏移之后的位置。在相对定位中,实际上元素并未脱离标准流,所以浏览器还是会区分它是否是块级或其他类型的元素。...fixed 固定定位,固定定位和绝对定位相似,但它的偏移量固定的相对于浏览器窗口,它会脱离标准文档流,并且浏览器把他们一致视作块级元素。...如果定位元素的父元素也设置了 z-index 属性,那么子元素的 z-index 属性将失效,并且最终是根据父元素的 z-index 属性来判断覆盖关系。...为 all 的元素始终会创建一个新的BFC,即使该元素没有包裹在一个多列容器中 当一个元素设置了新的 BFC 后,就和这个元素外部的 BFC 没有关系了,这个元素只会去约束自己内部的子元素。

    1.9K30

    脱离文档流分析(转)

    相对定位是相对于该元素在文档流中的原始位置,即以自己原始位置为参照物。有趣的是,即使设定了元素的相对定位以及偏移值,元素还占有着原来的位置,即占据文档流空间。...(这里的占据文档流指的是占据原来的位置,而不是占据相对定位后的位置。...个人理解:相对定位后的元素则会叠加到新位置的上,覆盖原先新位置上的元素,但是在新位置上不实际占据空间)如下图所示,头像相对定位前在box1盒子下方,头像相对定位后,头像原来的位置空着,但是下方的带有文本的盒子并没有移动上来...重点:如果父级设置了position属性,例如position:relative;,那么子元素就会以父级的左上角为原始点进行定位。...这样能很好的解决自适应网站的标签偏离问题,即父级为自适应的,那我子元素就设置position:absolute;父元素设置position:relative;,然后Top、Right、Bottom、Left

    1.6K20

    页面布局规划

    3)    *1:行元素转换为块元素:使用display:block     *2:块元素转换成行元素:使用display:inline    *3:display:inline-block 使元素具有行元素不占一行...1)如果它的父元素做定位,则相对于最近的一个父元素。    ...2)父元素没有定位则相对于body 2.相对定位:relativ 特点:    (1)相对定位没有脱离文档流,会单独占一行,      (2)方位受top ,left,right,bottom影响。    ...(3)相对定位的top ,left,right,bottom相对于块的最近的一个父元素 3.固定定位  fixed 特点:(1)脱离文档流,不单独占一行    (2)top ,left,right,bottom...top ,left,right,bottom只有设置了定位(绝对,相对,固定)的时候才可以用

    87120

    【前端攻略--HTMLCSS】html 文档流的理解

    不受文档流的布局约束了,并且更重要的一点是,这个标签在原文档流中所占的空间也被清楚掉了。 那么,这几种脱离文档的的定位机制包括哪些呢?...当一个元素脱离正常文档流后,依然在文档流中的其他元素将忽略该元素并填补其原先的空间。 基于文档流,理解以下的定位形式: 相对定位:元素框偏移某个距离。...将对象从文档流中拖出,使用left,right,top,bottom等属性相对于其最接近的一个最有定位设置的父对象进行绝对定位。如果不存在这样的父对象,则依据body对象。...结果,01脱离了文档流,完全不占空间,所以02顺势顶替了01原来的位置,结果02被01盖住了。 同理,absolute定位跟FLOAT一样,脱离了文档流,不再占原来文档流的空间了。...Relative:相对本身的原始位置发生位移且保持文档流,占空间。   Absolute:脱离文档流,不占空间且相对于其包含块来定位。 4、 浮动:(flaot)脱离文档流,不占空间。

    2.6K20
    领券