You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何交换两个设置inline-block并排显示的div左右位置

实现两个inline-block块位置互换的方法

你当前通过inline-block实现的并排布局,元素默认按照HTML中的书写顺序从左到右排列,要互换左右位置可以选以下几种方案:
当前页面效果

  • 方案1:直接调换HTML中两个块的书写顺序(零额外CSS,兼容性最好)
    这是最直接的实现方式:把当前写在前面的表单容器.container整体剪切,挪到联系信息块.contactInfo的后面,浏览器渲染时就会先渲染.contactInfo(显示在左侧),再渲染.container(显示在右侧)。
    调整后的核心HTML结构:
    <main class="contact contactInformation">
        <!-- 优先书写需要显示在左侧的联系信息块 -->
        <div class="contactInfo">
            <i class="fa-brands fa-facebook-f"></i>
            <i class="fa-brands fa-instagram"></i>
            <i class="fa-brands fa-twitter"></i>
            <i class="fa-brands fa-whatsapp"></i>
            <h4>INFO@EMAIL.COM</h4>
            <p>123 - 456 - 7890</p>
            <p>123 Queen Street West, Unit 10</p>
            <p>Toronto, Ontario</p>
            <p>M5V2D5</p>
        </div>
        <!-- 后书写需要显示在右侧的表单块 -->
        <div class="container">
            <div class="right-side">
                <form action="" method="post">
                    <div class="top">
                        <input type="text" placeholder="Name">
                        <input type="text" placeholder="Email">
                    </div>
                    <textarea name="name" placeholder="Message"></textarea>
                    <button type="submit" class="button">Submit</button>
                </form>
            </div>
        </div>
    </main>
    
  • 方案2:不修改HTML结构,通过文本流向属性反转排列顺序
    给父容器设置从右到左的排版方向,两个inline-block子元素会自动反转排布顺序,注意要给子元素重置回从左到右的文本方向,避免内部文字排版错乱。
    追加CSS代码:
    .contactInformation {
        direction: rtl;
    }
    .contactInformation .container,
    .contactInformation .contactInfo {
        direction: ltr;
        /* 修复inline-block默认基线对齐导致的顶部错位问题 */
        vertical-align: top;
    }
    
  • 方案3:替换为Flex布局(长期维护最方便)
    inline-block本身是为行内块级文本流设计的,用来做横向布局经常会出现间隙、对齐异常的问题,直接给父元素设置Flex布局,可以通过order属性自由控制子元素顺序,不需要改动HTML结构。
    调整后的核心CSS:
    .contactInformation {
        background-color: $Ice;
        height: 100vh;
        /* 启用Flex布局 */
        display: flex;
        align-items: flex-start;
        /* 按需设置两个块之间的间距 */
        gap: 2rem;
    }
    .contactInfo {
        /* 排到左侧 */
        order: 1;
        border: 2px solid red;
        width: 25%;
        /* 删除原有display: inline-block属性 */
    }
    .container {
        /* 排到右侧 */
        order: 2;
        padding-top: 50px;
        border: 2px solid red;
        /* 删除原有display: inline-block属性 */
    }
    /* 原有right-side及内部样式可以保留不需要修改 */
    

内容的提问来源于stack exchange,提问作者Kwabena Osei

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 01:01:41