使用display flex时不显示按钮文本(仅限IE)

时间:2017-11-07 10:14:17

标签: html css css3 internet-explorer flexbox

在html中,我有一个按钮,其中包含两个图标和一个带文本的跨度。 在css中,我使用flex和overflow属性,以便在文本太长时截断文本。该代码适用于所有浏览器,IE除外。 以下是jsfiddle的示例:https://jsfiddle.net/fu6kfhw9/1/

HTML

<button>
  <div class="container">
    <i class="fa fa-file-pdf-o" aria-hidden="true"></i>
    <span>TestTestTestTest</span>
    <i class="fa fa-file-pdf-o" aria-hidden="true"></i>
  </div>
</button>

CSS

body, button {
  max-width: 100px;
}

.container {
  width: 100%;
  display: flex;

  span {
    flex: 1;
    overflow: hidden;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
}

提前致谢, 标记

3 个答案:

答案 0 :(得分:3)

您可以删除flex上的span媒体资源。

fiddle

body,
button {
  max-width: 100px;
}

.container {
  width: 100%;
  display: flex;
}

span {
  overflow: hidden;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet"/>
<button>
  <div class="container">
    <i class="fa fa-file-pdf-o" aria-hidden="true"></i>
    <span>TestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTest</span>
    <i class="fa fa-file-pdf-o" aria-hidden="true"></i>
  </div>
</button>

答案 1 :(得分:1)

浏览器有不同的CSS flex'。这个应该适用于IE: HTML

 <button>
  <div class="container">
    <i class="fa fa-file-pdf-o" aria-hidden="true"></i>
    <span>TestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTest</span>
    <i class="fa fa-file-pdf-o" aria-hidden="true"></i>
  </div>
</button>

CSS:

    body, button {
  max-width: 100px;
}

.container {
  width: 100%;
  display: -webkit-box;      /* OLD - iOS 6-, Safari 3.1-6 */
  display: -moz-box;         /* OLD - Firefox 19- (buggy but mostly works) */
  display: -ms-flexbox;      /* TWEENER - IE 10 */
  display: -webkit-flex;     /* NEW - Chrome */
  display: flex;             /* NEW, Spec - Opera 12.1, Firefox 20+ */

  span {
    flex: 1;
    -ms-flex: 1 0 auto;
    overflow: hidden;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
}

工作jsfiddle:https://jsfiddle.net/fu6kfhw9/7/

你可能能够删除所有不同的弯曲,只保留正常的和IE浏览器。

答案 2 :(得分:0)

如果要保留弹性框,可以为范围设置固定宽度:

body, button {
  max-width: 100px;
}

.container {
  width: 100%;
  display: flex;
  display: -ms-flexbox; /* ie Flex */

  span {
    flex: 1;
    -ms-flex: 1 0 auto; /* ie Flex */
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    width: 50px; /* fix width of span */
  }
}

https://jsfiddle.net/fu6kfhw9/10/