首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >怎样才能战胜软垫?

怎样才能战胜软垫?
EN

Stack Overflow用户
提问于 2017-07-08 15:03:57
回答 1查看 564关注 0票数 1

我有一个弯曲盒标签云,正在大小从外面。如果需要的话,我希望它里面的标签是可折叠的,一直到零(一个边缘的情况)。现在,他们只会走2倍他们的垫子。

基本上,我需要一个让flex-shrink“赢”padding的方法。

如果可能的话,我想要做到这一点,而不使用溢出:隐藏,因为这将干扰其他东西在这个外壳内。

可运行的片段:

代码语言:javascript
复制
$('button').on('click', (e) => {
  $('.tags').css({
    width: $(e.target).text()
  });
});
代码语言:javascript
复制
.tags {
  display: flex;
  margin-bottom: 20px;
  background: red;
  overflow: visible;
  padding: 20px 5px;
}
.tag {
  position: relative;
  padding: 5px 10px;
  background: #ccc;
  border: 1px solid #aaa;
  border-radius: 20px;
  white-space: nowrap;
  text-overflow: ellipsis;
  flex-shrink: 1;
  overflow: hidden;
}
.tag + .tag {
  margin-left: 3px;
}
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<h3>Tags will not collapse beyond 2 x padding</h3>
<div class="tags" style="width: 200px">
  <div class="tag">Tag 1</div>
  <div class="tag">Tag 2</div>
  <div class="tag">Tag 3</div>
</div>
<br />
<div>
  <button>200px</button>
  <button>100px</button>
  <button>50px</button>
  <button>10px</button>
</div>

有人有主意吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-08 15:47:04

flex-shrink不能战胜填充,普通的块元素:小提琴演示也不能

实现该功能的一种方法是为文本添加一个额外的包装器,并在其上设置填充/边框,而不是flex项。

代码语言:javascript
复制
$('button').on('click', (e) => {
  $('.tags').css({
    width: $(e.target).text()
  });
});
代码语言:javascript
复制
.tags {
  display: flex;
  margin-bottom: 20px;
  background: red;
  overflow: visible;
  padding: 20px 5px;
}
.tag {
  flex-shrink: 1;
  overflow: hidden;
}
.tag div {
  padding: 5px 10px;
  background: #ccc;
  border: 1px solid #aaa;
  border-radius: 20px;
  white-space: nowrap;
  text-overflow: ellipsis;
}
.tag + .tag {
  margin-left: 3px;
}
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<h3>Tags will not collapse beyond 2 x padding</h3>
<div class="tags" style="width: 200px">
  <div class="tag"><div>Tag 1</div></div>
  <div class="tag"><div>Tag 2</div></div>
  <div class="tag"><div>Tag 3</div></div>
</div>
<br />
<div>
  <button>200px</button>
  <button>100px</button>
  <button>50px</button>
  <button>10px</button>
</div>

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44987537

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档