我如何优先考虑div而不是另一个div

时间:2017-04-18 08:49:27

标签: html css

我想要两个文本框彼此相邻。第一个应该为第二个更重要的空间提供空间。

如果不给出固定宽度并使用文本溢出,那么如何才能实现:第一个省略号?

示例:https://jsfiddle.net/by2e9uej/



div {
  border: 1px solid black;
}
#test1 {
  width: 250px;
  overflow: hidden;
  white-space: nowrap;
}
#test1 > div {
  display: inline-block;
}
#test2 {
  -o-text-overflow: ellipsis;   /* Opera */
    text-overflow:    ellipsis;   /* IE, Safari (WebKit) */
    overflow:hidden;              /* don't show excess chars */
    white-space:nowrap;           /* force single line */
    vertical-align: bottom;
}

<div id="test1">
  <div id="test2">long text standing in here</div>
  <div id="test3">more important text in here</div>
</div>
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:4)

您可以使用Flexbox并在第一个子div上设置overflow: hiddentext-overflow: ellipsis

div {
  border: 1px solid black;
}
#test1 {
  width: 250px;
  display: flex;
}
#test1 > div {
  white-space: nowrap;
}
#test2 {
  overflow: hidden;
  text-overflow: ellipsis;
}
<div id="test1">
  <div id="test2">long text standing in here</div>
  <div id="test3">more important text in here</div>
</div>

答案 1 :(得分:1)

如果您必须支持的浏览器可以支持flexbox,请使用flexbox。

我已经为你做了一些示例html来向你展示它的作用。 这里的魔术css属性包括:display: flexflex-direction: rowflex: 1flex-basis: 200px

&#13;
&#13;
.container
{
  display: flex;
  flex-direction: row;
}
.container > .item
{
  flex: 1;
  
    -o-text-overflow: ellipsis;   /* Opera */
    text-overflow:    ellipsis;   /* IE, Safari (WebKit) */
    overflow:hidden;              /* don't show excess chars */
    white-space:nowrap;           /* force single line */
  
  /* this just added for better view */
  border: 1px solid black;
  padding: 5px;
  box-sizing: border-box;
}
.container > .item-2
{
  flex: 2;
  flex-basis: 200px;
}
&#13;
<div class="container">
  <div class="item item-1">
    long text standing in here
  </div>
  <div class="item item-2">
    more important text in here
  </div>
</div>
&#13;
&#13;
&#13;