【问题标题】:CSS two divs next to each other (w/o line break)CSS 两个相邻的 div(无换行符)
【发布时间】:2017-06-06 22:48:18
【问题描述】:

我想将 2 个<div>s 并排放置。我怎样才能做到这一点? 两者都应该是 50% 的宽度。有人可以帮助纠正我的代码吗?

这是代码:

    <hr class="hr--small">
    <div class="grid">

    <div class="grid__item text-left">
      <p class="site-footer__links">{{ 'layout.footer.copyright' | t }} &copy; 
      {{ 'now' | date: "%Y" }} {{ shop.name | link_to: '/' }} • All Rights Reserved
      </p>
    </div>

    <div class="grid__item text-right">
      <p class="site-footer__links">
        <a href="http://www.w3schools.com/html/">Privacy Policy</a> •                               
        <a href="http://www.w3schools.com/html/">Terms & Conditions</a>
      </p>
    </div>

目前它们左右显示正确,但带有换行符。只是希望它们出现在同一行。

【问题讨论】:

  • 你尝试过任何 CSS 吗?
  • 我开始输入2 divs,Google 自动将其完成为2 divs next to each other。多么美妙
  • 附带说明,如果您是初学者,我建议您不要将 Shopify 布局作为您的第一个项目进行编辑。让专业人士为您提供帮助。

标签: html css


【解决方案1】:

我不确定您使用的是什么网格框架,但我确信 text-lefttext-right 是提供 text-align 属性的辅助类。

解决您的问题的方法是让 div 浮动,就像我在这个 Jsfiddle 中演示的那样:https://jsfiddle.net/hptv52gv/

【讨论】:

  • 感谢您提供简洁且易于实施的解决方案。您将如何修改它以使第二个 div 包裹在移动设备上的第一个 div 下?例如,如果您在桌面上使用它看起来很棒,但在移动设备上它会剪掉第二个 div,因为屏幕空间不足。
【解决方案2】:

您可以浮动两个 div 元素并清除容器,使用 inline-block 和 box-sizing 来适应容器的真实宽度:

.grid {
  width: 100%;
  clear: both;
}

.grid__item {
  box-sizing: border-box;
  width: 50%;
  float: left;
  padding: 0px 15px;
  display: inline-block;
}

.text-right {
  text-align: right;  
}

Fiddle Here

【讨论】:

    【解决方案3】:

    默认情况下,div 是块元素。这意味着,除其他外,它们每次都会掉到一个新的行。您可以使用一些 css 技术让 div 保持在同一行(float: leftdisplay: inlinedisplay: flex),但我最喜欢的是display: inline-block有时 html 文件中的空格(空格或换行符)会导致元素换行到新行的错误。您可以通过像这样删除空格来解决这个问题:

        <div class="grid__item text-left">
          <p class="site-footer__links">{{ 'layout.footer.copyright' | t }} &copy; 
          {{ 'now' | date: "%Y" }} {{ shop.name | link_to: '/' }} • All Rights Reserved
          </p>
        </div><div class="grid__item text-right">
          <p class="site-footer__links">
            <a href="http://www.w3schools.com/html/">Privacy Policy</a> •                               
            <a href="http://www.w3schools.com/html/">Terms & Conditions</a>
          </p>
        </div>
    

    然后在你的 css 中,你会有这样的东西:

    .grid__item{
        display: inline-block;
        width: 50%;
    }
    

    【讨论】:

    • 感谢您的解释!这解决了我的问题! :D 我只是在代码和 css 中添加了
      ,所以它不会影响页面上的其他网格!
    【解决方案4】:

    您可以使用table 元素来控制此布局。 See example.

    【讨论】:

    • 我们又回到了 90 年代吗?
    • 简单问题的简单解决方案。为什么要轰炸一个新手
    • 好的,我撤回了我的反对票,but really 这是您需要提供的最后一个建议 (read the first rule)
    • Google 会讨厌你古老的 HTML 布局。
    • 多么不必要的攻击性
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-20
    • 1970-01-01
    • 2013-03-15
    • 2019-09-30
    • 1970-01-01
    相关资源
    最近更新 更多