为什么我的文字折成4行?

时间:2016-08-30 08:03:56

标签: html css

代码:

#a {
  position: absolute;
  left: 100px;
}

#b {
  position: absolute;
  left: 200px;
  top: 100px;
}
<div id="a">
    test test test test<span id="b">xxxx xxxx xxxx xxxx</span>
</div>

结果是这样的:

          test test test test

                                          xxxx 
                                          xxxx 
                                          xxxx 
                                          xxxx 

您可以看到我的“xxxx”文本分为4行。

但我想要的是:

          test test test test

                                          xxxx xxxx xxxx xxxx

所以我的问题:

  1. 为什么我的文字折叠成4行而不是1行?
  2. 如何达到我想要的效果?
  3. 编辑:

    正如@Manish Dalal所说,这是一个非常奇怪的行为:

      

    是否有任何CSS规则应用于div或任何父级的宽度是否有限?

         

    如果我只在HTML页面上复制此代码(按原样),我可以看到您希望实现的目标。因此,我假设某些父控件具有相对位置且宽度有限(单独或由于其父项),因此限制了div的宽度。 (默认情况下,div将采用所有水平间距。)

7 个答案:

答案 0 :(得分:3)

对于绝对定位(position: absolute),需要宽度,因为未指定文件被包裹width

以下几个解决方案:

  1. position:absolute更改为position: relative #b。最合适的。
  2. width添加到#b
  3. white-space: nowrap;添加到#b以避免文本换行。这将使较长的文本与滚动条一起显示在一行中。不太可取。
  4. 查看以下演示。

    #a {
      position: absolute;
      left: 100px;
    }
    #b {
      position: absolute;
      left: 200px;
      top: 100px;
      white-space: nowrap;
    }
    <div id="a">
      test test test test<span id="b">xxxx xxxx xxxx xxxx</span>
    </div>

答案 1 :(得分:3)

在b情况下将绝对值更改为相对

答案 2 :(得分:1)

是否在div上应用了任何CSS规则,或者任何父级的宽度是否有限?

如果我只在HTML页面上复制此代码(按原样),我可以看到您希望实现的目标。因此,我假设某些父控件具有位置relative并且具有有限的宽度(单独或由于其父级),因此限制了div的宽度。 (默认情况下,div将采用所有水平间距。)

答案 3 :(得分:0)

使用position:fixed;

#b {
 position: fixed;
 left: 200px;
 top: 100px;
}

答案 4 :(得分:0)

&#13;
&#13;
#a {
  position: absolute;
  left: 100px;
}
#b {
  position: fixed;
  left: 200px;
  top: 100px;
  white-space: nowrap;
}
&#13;
<div id="a">
  test test test test<span id="b">xxxx xxxx xxxx xxxx</span>
</div>
&#13;
&#13;
&#13;

答案 5 :(得分:0)

如果你想要它而不是nowrap,你需要为#b定义宽度,然后使用width和display属性来定义css。

#a {
  position: absolute;
  left: 100px;
}

#b {
  white-space: nowrap;
  position: absolute;
  left: 200px;
  top: 100px;
}
<div id="a">
    test test test test<span id="b">xxxx xxxx xxxx xxxx</span>
</div>

答案 6 :(得分:0)

为什么要使用绝对定位来进行这种对齐。只是改变一下标记,例如:

https://jsfiddle.net/yrtfay0k/1/

而不是绝对定位,您只需浮动项目。

float:right

但这实际上取决于你真正想要实现的目标,更具体,有很多选择可以解决它。