首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么当我使用display: inline-block;时,div的顺序会改变?

当使用display: inline-block;时,div的顺序会改变是因为inline-block元素会按照其在HTML文档中出现的顺序进行排列,而不是按照其在CSS中的顺序。这意味着如果HTML文档中的div元素的顺序与CSS中的顺序不一致,那么它们在页面上的显示顺序也会不一致。

这种行为是由于inline-block元素的特性所导致的。inline-block元素既具有块级元素的特性,又具有行内元素的特性。它会在一行内显示,并且可以设置宽度、高度、边距等属性。但是,与块级元素不同的是,inline-block元素之间会有默认的空白间隔,这个空白间隔会导致元素在页面上的位置发生变化。

为了解决这个问题,可以使用以下方法之一:

  1. 在HTML文档中按照需要的顺序排列div元素,保持与CSS中的顺序一致。
  2. 使用浮动(float)属性来控制div元素的位置,而不使用inline-block。
  3. 使用flexbox布局或者grid布局来控制元素的位置和排列顺序。

总结起来,当使用display: inline-block;时,div的顺序会改变是因为inline-block元素按照HTML文档中的顺序进行排列,并且之间会有默认的空白间隔。为了避免这个问题,可以使用其他布局方式来控制元素的位置和排列顺序。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

面试官:CSS 面试题集锦

z-index 属性设置元素堆叠顺序,拥有更高堆叠顺序元素总是处于堆叠顺序较低元素前面 该属性设置一个定位元素沿着 z 轴位置,z 轴定义为垂直延申到显示区轴,如果为正数,则离用户更加近...有哪些隐藏内容方法? 使用display:none来隐藏所有内容 display:none可以让网页中所有内容不显示,如代码、文字、链接、图片、div层,是推荐内容隐藏方式。..."> .parent{ display: inline-block;...一般来说,可以通过display:inline和display:block设置,改变元素布局级别。 display:block block元素独占一行,多个block元素各自新起一行。...transform使浏览器为元素创建一个 GPU 图层 translate改变位置,元素依然会占据其原始空间 而改变绝对定位触发重新布局,进而触发重绘和复合。 改变绝对定位会使用到 CPU。

3.3K30
  • 《CSS 世界》读书笔记-流与宽高

    遵循着法则,很多问题也许迎刃而解。 因为在阅读本书 CSS “流” 相关内容让我有了一种恍然大悟感觉,所以才有了此篇读书笔记。...如果没有人为干预(比如魔鬼 float),元素总是按照既定流(块级元素自上而下,行内元素从左到右),有顺序有组织地排列。...3.3 width 值作用细节 当我们给一个  元素设定宽度时候,这个宽度是如何作用到它上面的呢?...之前讨论块级元素和内联元素,当我们在谈论它们是在一行还是换行显示,实际上是谈论外在盒子。而内在盒子实际是负责了元素宽高和内容。...但这种宽设定却让流动性消失了,当我们给定元素设定 width: auto,元素宽就会 “自适应” 地铺满容器,而给定了 width 值让这种流动性消失。

    1.3K20

    CSS基础布局

    对元素设置fixed,会使元素 脱离文档流(也就是说 不会对其它元素布局 造成影响)。fixed相对于浏览器窗口是 固定。 * 默认情况下,按照元素出现先后顺序 进行层叠。...想要手动改变 层叠元素层叠顺序,可以设置z-index. * 什么样元素可以设置z-index?...* float元素 从父级元素空间中 消失 * 父级元素 可能 高度坍陷 解决思路: 1. float元素 进行设置float,float...否则的话 先 排布div3,此时浮动div2 顶部(由于float元素特性) 紧贴div3底部。 inline-block 布局 布局所要做事情是 把不同块 横向并列起来。...fixed相对于屏幕(viewport) 来进行定位 3. display: inline-block间隙 如何处理?

    2.9K20

    display:inline、block、inline-block区别

    inline元素特点是:    和其他元素都在一行上;   高,行高及顶和底边距不可改变;   宽度就是它文字或图片宽度,不可改变。   ...display:inline-block,IE是不识别的,但使用display:inline-block在IE下触发layout,从而使内联元素拥有了display:inline-block属性表症...从上面的这个分析,也不难理解为什么IE下,对块元素设置display:inline-block属性无法实现inline-block效果。...有两种方法:   1、先使用display:inline-block属性触发块元素,然后再定义display:inline,让块元素呈递为内联对象(两个display要先后放在两个CSS声明中才有效果...代码如下(...为省略其他属性内容):   div {display:inline-block;...}

    1.1K10

    CSS杂谈

    当我们把一些块元素设置display-inline-block时候,你会发现各个块之间有间距,刚开始我以为是没有设置margin 0 和padding 0,后来才知道,是代码换行原因,只要把代码之间换行去掉就没问题...但是这样对于代码又很不优雅,那么可以把这些设置inline-block元素用一个div包裹起来,然后给这个div设置font-size 0,不能给这些元素设置0。亲测有效。...当我们想要一个div元素居中,那么我们要给这个div宽度然后设置margin 0 auto。...在某些场景下我们想要div居中,内容又不固定,这时候可以把这个div包裹在一个父元素下,父元素设置text-align center,然后把这个div设置成display inline-block。...当我们想要写一些可以左右滑动时候,父元素宽度100%,然后设置overflow-x scroll和white-space nowrap,子元素设置display inline-block

    79920

    一篇通俗易懂CSS层叠顺序与层叠上下文研究

    当两个元素为行内块 div{ display:inline-block; width:100px; height:100px;...层叠顺序总结 当两个元素类型一样,默认情况下后一个元素层级比前一个元素层级高。 在没有设置背景情况下,元素背景是透明,并且允许后面的元素透上来。...它们前后顺序:小于0z-index < 块 < 浮动 < 行内块 < 行内 < 定位 < 大于0z-index 层叠上下文 如果你认真看完上一节,会不会奇怪一个问题,那就是在无特殊情况下为什么定位元素总是比普通元素层级高...默认情况下只有根元素HTML产生一个层叠上下文,并且元素一旦使用了一些属性也将会产生一个层叠上下文,如我们常用定位属性。如两个层叠上下文相遇,总是后一个层叠前一个,除非使用z-index来改变。...总结 创建了层叠上下文元素比其他元素层级高。 两个层叠上下文相遇,后一个层级高。如果想改变层级可以使用z-index

    82870

    css实用手册」CSS 垂直居中七种方法

    不过由此就可以看出,为什么必须要单行行内元素,因为如果多行,第二行与第一行间距变超大,就不是我们所期望效果了。CSS范例:外层div0,内容redbox,让redbox水平垂直置中。...这时候就必须用到CSS特有的calc动态计算能力,我们只要让要居中divtop属性,与上方距离是「50%外框高度- 50%div高度」,就可以做到垂直居中,至于为什么不用margin-top...最主要原因就在于tabledisplay是table,而tddisplay是table-cell,所以我们除了直接使用表格之外,也可以将要垂直置中元素父元素display改为table-cell...,就可以轻松实现,不过修改display有时候也造成其他样式属性连动影响,需要小心使用。...:#069; } 05 transform transform是CSS3新属性,主要用于元素变形、旋转和位移,利用transform里头translateY (改变垂直位移,如果使用百分比为单位

    99410

    「css实用手册」CSS 垂直居中七种方法,值得收藏

    不过由此就可以看出,为什么必须要单行行内元素,因为如果多行,第二行与第一行间距变超大,就不是我们所期望效果了。CSS范例:外层div0,内容redbox,让redbox水平垂直置中。...这时候就必须用到CSS特有的calc动态计算能力,我们只要让要居中divtop属性,与上方距离是「50%外框高度- 50%div高度」,就可以做到垂直居中,至于为什么不用margin-top...最主要原因就在于tabledisplay是table,而tddisplay是table-cell,所以我们除了直接使用表格之外,也可以将要垂直置中元素父元素display改为table-cell...,就可以轻松实现,不过修改display有时候也造成其他样式属性连动影响,需要小心使用。...:#069; } 05 transform transform是CSS3新属性,主要用于元素变形、旋转和位移,利用transform里头translateY (改变垂直位移,如果使用百分比为单位

    2.1K30

    「css实用手册」CSS 垂直居中七种方法,值得收藏

    不过由此就可以看出,为什么必须要单行行内元素,因为如果多行,第二行与第一行间距变超大,就不是我们所期望效果了。CSS范例:外层div0,内容redbox,让redbox水平垂直置中。...这时候就必须用到CSS特有的calc动态计算能力,我们只要让要居中divtop属性,与上方距离是「50%外框高度- 50%div高度」,就可以做到垂直居中,至于为什么不用margin-top...最主要原因就在于tabledisplay是table,而tddisplay是table-cell,所以我们除了直接使用表格之外,也可以将要垂直置中元素父元素display改为table-cell...,就可以轻松实现,不过修改display有时候也造成其他样式属性连动影响,需要小心使用。...:#069; } 05 transform transform是CSS3新属性,主要用于元素变形、旋转和位移,利用transform里头translateY (改变垂直位移,如果使用百分比为单位

    88920

    有趣CSS小示例:好看皮囊千篇一律,有趣灵魂万里挑一

    css dot{ display: inline-block; height: 1em; line-height: 1; text-align: left; vertical-align...不规则投影 filter 当我们想给一个矩形或其他能用 border-radius 生成形状加投影,用 box-shadow 都可以解决,如下图: ?...下面来看看这个示例: html代码 不规则投影 css样式 div { position: relative; display: inline-flex...从上图可以看出box-shadow搞不定,drop-shadow给搞定了。这是为什么了? ? 可以很明显看出区别,为什么这样呢?...css 实现自适应弹框 经常在网页中看到一些Dialog,例如有些网页点击登录注册就会跳出一个弹框来显示登录注册页面,下面就使用 css 完成一个可以自适应,无论窗口大小,始终能保持水平垂直居中

    1K40

    CSS垂直居中七个方法

    不过由此就可以看出,为什么必须要单行行内元素,因为如果多行,第二行与第一行间距变超大,就不是我们所期望效果了。CSS示例: ?...这时候就必须用到CSS特有的calc动态计算能力,我们只要让要居中divtop属性,与上方距离是“50%外框高度+ 50%div高度”,就可以做到垂直居中,至于为什么不用margin-top...最主要原因就在于tabledisplay是table,而tddisplay是table-cell,所以我们除了直接使用表格之外,也可以将要垂直居中元素父元素display改为table-cell...,就可以轻松达成,不过修改display有时候也造成其他样式属性连动影响,需要比较小心使用。...transform transform是CSS3新属性,主要掌管元素变形、旋转和位移,利用transform里头translateY(改变垂直位移,如果使用百分比为单位,则是以元素本身长宽为基准

    2.6K41

    【愚公系列】2023年03月 其他-Web前端基础面试题(CSS_42道)

    CSS盒模型:标准模型 + IE模型 标准模型 div宽度 = 内容宽度+border宽度+padding宽度 //改变border宽度,div宽度变化 box-sizing:content-box;...6、displayblock、inline和inline-block区别?...对于容器中项目,可以使用order属性来指定项目的排列顺序,还可以使用flex-grow来指定当排列空间有剩余时候,项目的放大比例,还可以使用flex-shrink来指定当排列空间不足,项目的缩小比例...17、在网页中应该使用奇数还是偶数字体?为什么呢? 使用偶数字体。偶数字号相对更容易和 web 设计其他部分构成比例关系。...兼容性问题:在IE5 IE6中,为float盒子指定margin,左侧margin可能变成两倍宽度。通过改变padding或者指定盒子display:inline解决。

    3.1K20

    一文带你弄懂 CSS 布局知识

    例如,对于如下所示代码片段,其在 HTML 中会按照顺序显示,如下图所示。...display 属性常用属性有: inline:表示元素是行内元素,多个元素共用一行。 inline-block:表示元素是行内块元素,多个元素共用一行。...与 inline 区别是,inline-block 元素可以设置元素长和宽,但是 inline 元素不可以设置元素长和宽。 block:表示元素是块元素,每个块元素单独占用一行。...或许是 inline-block 出现之前,大家都习惯用 float 了。而 inline-block 比起 float 貌似没什么太大改变,于是就没动力去换了吧。...元素会被移出正常文档流,并不为元素预留空间,而是通过指定元素相对于屏幕视口(viewport)位置来指定元素位置。元素位置在屏幕滚动不会改变

    51630

    54个CSS重难点整理,12-24篇,进阶高薪必需要掌握知识点

    18、常见CSS单位; 19、CSS优化和提高性能方法? 20、为什么有时候用translate来改变位置而不是定位? 21、清除浮动3种方式 22、position属性有哪些?...提供标签,不仅可以加载CSS,还可以定义rel等属性 @import是css提供语法,只有导入样式表作用 加载顺序 link在页面加载CSS同时被加载 引入CSS要等页面加载完毕后再加载 DOM...20、为什么有时候用translate来改变位置而不是定位?...absolute和fixed共同点 改变行内元素呈现方式,将 display 置为 inline-block 使元素脱离普通文档流,不再占据文档物理空间 覆盖非定位文档元素 absolute和fixed...2、如果display属性不是none,则会判断 position 值是否为 absolute 或者 fixed,如果是,则 float 属性失效,并且 display 值置为inline-block

    1.3K10

    商品添加到购物车动画getBoundingClientRect获取元素位置

    1.2 用户滑动右侧内容左侧导航栏响应式改变 右侧内容监听一个scroll事件,当触发滑动事件时候获取粘性定位在顶部标题,根据标题使导航栏定位到相应li var obj = element.getBoundingClientRect...这也实现了内容区标题栏始终在顶部效果。关于粘性定位更多可以看这里 2. 按钮缓慢弹出 当我们点击添加按钮时候其他内容缓慢弹出,这个是靠css动画实现。...----> .pop { display: inline-block; position: relative; left: 48px; opacity:...--其他n个小球--> 令小球为绝对定位这样可以改变left和top。...上面的DOM操作可以改成使用vue动画组件 transition 进行优化,感觉更好,我在项目中使用了transition组件进行优化,代码更加简洁。

    1.6K20

    display:inline-block深入理解 BY blank

    这是因为使用-moz-inline-box带来很多意想不到后遗症,比如使用这一属性后,text-align有时候就会有问题,还得改用Firefox私有属性-moz-box-align来解决(谢谢aoao...说:“我在IE中对a或者span等内联元素使用display:inline-block一直是有效”。...其实不然,在IE中对内联元素使用display:inline-block,IE是不识别的,但使用display:inline-block在IE下触发layout(如果你对layout感觉到陌生,可以参看...从上面的这个分析,也不难理解为什么IE下,对块元素设置display:inline-block属性无法实现inline-block效果。...代码如下(…为省略其他属性内容): CODE: div {display:inline-block;…} div {display:inline;} 2、直接让块元素设置为内联对象呈递(设置属性display

    1K90

    HTML+CSS高级

    ,给其中一个div设置左浮动,为什么第二个div会被第一个div覆盖?                ...解释:每个HTML元素默认情况根据自己特性(block、inline、inline-block)进行布局显示(例如block元素从上到下独占一行特性进行布局;内联元素从左至右显示)。...:inline-block; 效果                1.2.3     块属性标签内容撑开宽度          display:inline-block; 效果                          ...,给其中一个div设置左浮动,为什么第二个div会被第一个div覆盖?                ...解释:每个HTML元素默认情况根据自己特性(block、inline、inline-block)进行布局显示(例如block元素从上到下独占一行特性进行布局;内联元素从左至右显示)。

    5.8K61
    领券