【问题标题】:How can I prevent line-wrapping only on hovered rows?如何防止仅在悬停的行上换行?
【发布时间】:2017-01-03 22:42:05
【问题描述】:

如果您将鼠标悬停在“This is Broken!”上标记,相邻的“该死”标记换行到下一行。这是因为“这已经坏了!”标记的大小增加并受到容器的约束。

是否可以防止这种包装?

标签和父容器大小是动态的,因此我无法轻松地将标签行组合到具有“空白:nowrap”属性的包含元素中。悬停在上面的任何标签或任何相邻的标签都可以是换行到下一行的标签。如果可能的话,我想在悬停前后的标签之间保留相同的空间。

main {
  width: 160px;
}
.material-tag-wrapper {
  margin: 1px 3px 1px 0;
  display: inline-block;
}
.material-tag-wrapper.closeable:hover .material-tag {
  padding-right: 26px;
}
.material-tag-wrapper.closeable:hover .material-tag-remove {
  opacity: 1;
  padding-right: 10px;
}
.material-tag {
  background-color: blue;
  color: white;
  font-weight: 400;
  cursor: pointer;
  border-radius: 3px;
  padding: 2px 8px;
  text-transform: uppercase;
  font-size: 10px;
  transition: .1s all;
  display: inline-block;
  position: relative;
  text-align: center;
}
.material-tag-remove {
  color: #3C4858;
  cursor: pointer;
  font-size: .8em;
  position: absolute;
  top: 4px;
  right: 0;
  opacity: 0;
  text-align: right;
  text-decoration: none;
  width: 100%;
  z-index: 2;
}
.material-tag-remove:before {
  content: "x";
  color: white;
}
<main>
  <div class="material-tag-wrapper closeable">
    <div class="material-tag">
      Beautiful
      <div class="material-tag-remove"></div>
    </div>
  </div>

  <div class="material-tag-wrapper closeable">
    <div class="material-tag">
      Works
      <div class="material-tag-remove"></div>
    </div>
  </div>
  <div class="material-tag-wrapper closeable">
    <div class="material-tag">
      This is Broken!
      <div class="material-tag-remove"></div>
    </div>
  </div>

  <div class="material-tag-wrapper closeable">
    <div class="material-tag">
      Damn
      <div class="material-tag-remove"></div>
    </div>
  </div>

  <div class="material-tag-wrapper closeable">
    <div class="material-tag">
      I Work!
      <div class="material-tag-remove"></div>
    </div>
  </div>
</main>

【问题讨论】:

    标签: html css


    【解决方案1】:

    由于您将padding-right: 26px; 添加到material-tag-wrapper:hover,您可以对main(或您选择的任何包装器)应用相同的规则:

    main:hover {
      width: 186px; /* base width of 160px + 26px */
    }
    

    【讨论】:

    • 啊,好主意,但是当增加父容器的宽度会导致某些标签组合向上移动一行时会发生边缘情况 - 请参阅 jsfiddle.net/vb8o96go/8 示例跨度>
    • 不确定单独使用 CSS 是否可行。
    猜你喜欢
    • 1970-01-01
    • 2015-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-30
    • 1970-01-01
    • 2015-07-16
    相关资源
    最近更新 更多