【问题标题】:2 div aligned horizontally - Text going on new line in right div2 div 水平对齐 - 文本在右 div 中换行
【发布时间】:2015-01-26 18:00:45
【问题描述】:

我有两个水平对齐的 div。我需要将它们用于列表,例如:

Surname: Mario
Name: Rossi

这两个 div 在一个 div 中,占我内容的 50%,所以我在右边还有其他内容。我用过“word-wrap:break-word;”将内容包装在我列表的右列中,但是当它换行时,它会产生如下内容:

Surname: Mar
Name: io
        Rossi

虽然我想要这个结果:

Surname: Mar
         io
Name: Rossi

我该如何解决这个问题?

我的代码:

css:

.left{
   width:50%;
   float:left;
   padding-right:10px;
   line-height:15px;
}
.right{
   width:50%;
   float:right;
   padding-left:10px;
   line-height:15px;
   word-wrap:break-word;
}

html:

<div>
    <div style="width:50%;float:left;">
        <div class="left">Surname</div><div class="right">Mario</div>
        <div class="left">Name</div><div class="right">Rossi</div>
    </div>
    <div style="width:50%;float:right;">
    </div>
</div>

【问题讨论】:

  • 也许可以试试.left { clear: both } ?
  • 您的填充物导致了问题。
  • 考虑使用box-sizing: border-box 这样填充不会增加容器宽度。 Article
  • @LeBen 问题不是由填充引起的。文本可以换行,因为“word-wrap:break-word;”在 div 中没有更多空间。我已经测试了删除填充,但它不起作用。
  • @DaveGoten 添加 clear:两者似乎都有效! :)

标签: html css


【解决方案1】:

.left{
   width:45%;
   text-align:right;
   float:left;
   line-height:15px;
}
.right{
   width: 45%;
   text-align:left;
   float:right;
   line-height:15px;
}
<div>
    <div style="width:50%;float:left;">
        <div class="left">Surname</div><div class="right">Mario</div>
        <div class="left">Name</div><div class="right">Rossi</div>
    </div>
</div>

这样你得到了 10% 的填充。就是这样。

或者您可以使用 calc width: calc(50% - 5px); 添加填充,它也可以工作。

【讨论】:

  • 问题不是由填充引起的。文本可以换行,因为“word-wrap:break-word;”在 div 中没有更多空间
  • 所以也许用列表来做正确的事情?
    • 马里奥
    。将其设置为显示模式: inline-block 。它会按照您的预期运行。
猜你喜欢
  • 2017-08-14
  • 2022-01-26
  • 2013-04-16
  • 2017-11-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-01
  • 1970-01-01
相关资源
最近更新 更多