白色空间:nowrap; 和flexbox在chrome中不起作用

mnk*_*mnk 14 overflow ellipsis css3 nowrap flexbox

Chrome浏览器的最新更新打破white-space: nowrap使用text-overflow: ellipsis;上一个overflow: hidden元素.如何解决这个问题而不在name课堂上添加硬编码宽度

<h1>problem</h1>
<div class="container">
  <div class="name">
    <div class="firstname">
      test
    </div>
    <div class="lastname">
      as kjldashdk ja asdjhk ashdjk ashdjk asdjasdkajsdh akjsd asd asd asd asd asd asd as das da asdas dasd asda sdasd as dasd asd asd as dasd a
    </div>
  </div>  
  <div class="side">
    options
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

结构不应该改变,因为我.name在我的应用程序中的其他地方重用该部分.

.container {
  width: 800px;
  height: 80px;
  display: flex;
  border: solid 1px black;
  margin: 10px;
}
.name {
  display: flex;
}
.firstname {
  width: 100px;
  background-color: grey;
}
.lastname {
  flex-grow: 1;
  text-overflow: ellipsis;
  overflow: hidden;
  white-space: nowrap;
}
.side {
  flex-grow: 0;
}
.side, .firstname, .lastname {
  align-self: center;
  padding: 0 20px;
}
Run Code Online (Sandbox Code Playgroud)

http://codepen.io/anon/pen/xZpMYg

Jin*_*ian 30

flex项目的初始设置是min-width: auto.因此,为了使每个项目都留在我们需要提供的容器中min-width: 0.

添加 min-width: 0;.这是您案例中的简单解决方法.

那是

name {
  display: flex;
  min-width: 0;
}
Run Code Online (Sandbox Code Playgroud)

片段

.container {
  width: 800px;
  height: 80px;
  display: flex;
  border: solid 1px black;
  margin: 10px;
}
.name {
  display: flex;
  min-width: 0;
}
.firstname {
  width: 100px;
  background-color: grey;
}
.lastname {
  flex-grow: 1;
  text-overflow: ellipsis;
  overflow: hidden;
  white-space: nowrap;
  display: flex;
}
.side {
  flex-grow: 0;
}
.side, .firstname, .lastname {
  align-self: center;
  padding: 0 20px;
}
Run Code Online (Sandbox Code Playgroud)
<h1>problem</h1>
<div class="container">
  <div class="name">
    <div class="firstname">
      test
    </div>
    <div class="lastname">
      as kjldashdk ja asdjhk ashdjk ashdjk asdjasdkajsdh akjsd asd asd asd asd asd asd as das da asdas dasd asda sdasd as dasd asd asd as dasd a
    </div>
  </div>  
  <div class="side">
    options
  </div>
</div>

<h1>expected result</h1>

<div class="container">
  <div class="name">
    <div class="firstname">
      test
    </div>
    <div class="lastname">
      as kjldashdk ja asdjhk ashdjk ashdjk asdjasdkajsdh akjsd asd asd asd asd sa dad...
    </div>
  </div>  
  <div class="side">
    options
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

  • 这是一篇关于这个技巧的好文章.https://css-tricks.com/flexbox-truncated-text/ (2认同)