如何在不换行的情况下制作带有文本溢出省略号的流体宽度标题?

新手上路,请多包涵

我需要在同一行上使用标题和按钮,必要时使用省略号。

这是一个小提琴:http: //jsfiddle.net/epyFT/1/

我希望输出看起来像这样:

 _________________________________________________________
|                                                       |
| Header goes here [button]                             |
|                                                       |
---------------------------------------------------------

要么

_________________________________________________________
|                                                       |
| Super, super, super, super long header... [button]    |
|                                                       |
---------------------------------------------------------

或者使用较小的窗口:

 ____________________________
|                          |
| Header goes... [button]  |
|                          |
----------------------------

按钮不应该浮动到下一行。我怎样才能做到这一点?

HTML

 <div class="container">
    <h2>This is the header that should never wrap and elipse if it doesn't fit</h2>
    <button>Button</button>
</div>

<div class="container">
    <h2>Header</h2>
    <button>Button</button>
</div>

CSS

 .container {
    width:100%;
}
h2 {
    display:inline;
    min-width:200px;
    overflow: hidden; white-space: nowrap; text-overflow: ellipsis; word-break: break-all; word-wrap: break-word;
}
button {
    width:100px;
}


奖金

获得第二个(固定宽度)按钮向右拉的额外功劳。

 _________________________________________________________
|                                                       |
| Header goes here [button1]                  [button2] |
|                                                       |
|                                                       |
| Super, super, super, super long... [button] [button2] |
|                                                       |
---------------------------------------------------------

原文由 Ryan 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 244
2 个回答

也许这样的事情有帮助? http://jsfiddle.net/epyFT/3/

我不确定如何使按钮与容器的无包装宽度对齐,并且我只对单元格使用百分比宽度。

新代码:

 .container {
  width: 100%;
  display: table;
  table-layout: fixed;
}

.container>div {
  display: table-cell;
}

.cell1 {}

.wrap {
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  word-break: break-all;
  word-wrap: break-word;
}

.cell2 {
  width: 60%;
}

h2 {
  display: inline;
  min-width: 200px;
}

button {
  width: 100px;
}
 <div class="container">
  <div class="cell1">
    <div class="wrap">
      <h2>This is the header that should never wrap and elipse if it doesn't fit</h2>
    </div>
  </div>
  <div class="cell2">
    <button>Button</button>
  </div>
</div>
<div class="container">
  <h2>Header</h2>
  <button>Button</button>
</div>

原文由 Dan 发布,翻译遵循 CC BY-SA 3.0 许可协议

我想我找到了更好的解决方案:http: //jsfiddle.net/epyFT/9/

HTML:

 <div class="container">
    <h2>This is a very long heading that should wrap with ellipsis when too long, but have a button to it's right.</h2>
    <button>Hello.</button>
</div>

<div class="container">
    <h2>This is short.</h2>
    <button>Sup</button>
</div>

CSS:

 .container {
    display: inline-block;
   max-width:100%;
   position: relative;
}
h2 {
    padding-right: 200px;
    box-sizing: border-box;
    width: 100%;
    display: inline-block;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    word-break: break-all;
    word-wrap: break-word;
}

button {
    position: absolute;
    width: 100px;
    right: 95px;
    top: 2em;
}

原文由 Dan 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题