【问题标题】:how to get/set component size dynamically如何动态获取/设置组件大小
【发布时间】:2021-05-13 15:33:07
【问题描述】:

我有一个 DIV 容器,其中有一个段落和另一个内部 DIV 显示在一行中。 内部 DIV 是未知的,但它总是一样的,不会改变。如果需要,我可以发送 min-width 。现在基于外部 DIV 大小,我需要剪切(三个点)或显示完整的段落字符串。但是我必须在css中设置段落宽度以在外部div尺寸太小时显示三个点。

<div className="divOuter">
  <p>very long string</p>
  <div className="divInner">some div stuff</div>
</div>

.p {
  position: relative;
  float: left;
  text-overflow: ellipsis;
  overflow: hidden; 
  width: ?????;               // what do I set here?????
  white-space: nowrap;
}

.divInner {
  display: flex;
  float: right;
  align-items: center;
}


|--------------------------------------|
|very long string        some div stuff|
|--------------------------------------|

need to get this when outer DIV resized:
|------------------------------|
|very long st... some div stuff|
|------------------------------|

|--------------------|
|ve... some div stuff|
|--------------------|

【问题讨论】:

    标签: javascript css reactjs sass


    【解决方案1】:

    这就是你要找的。​​p>

    您不需要为长字符串p 元素指定任何宽度。

    flexbox 的属性称为flex。当您将其设置为 1 时,它将拉长该元素以占用父元素中剩余的水平空间。

    之后,您只需提供text-overflow: ellipsis; overflow: hidden; 即可使... 出现。

    运行下面的 sn-p 来查看它的工作情况。

    .divOuter {
      display: flex;
      width: 100%;
    }
    
    .longString {
      flex: 1;
      text-overflow: ellipsis;
      overflow: hidden;
      white-space: nowrap;
    }
    
    .divInner {}
    <div class="divOuter">
      <p class="longString">very long string very long string very long string very long string very long string</p>
      <p class="divInner">some div stuff</p>
    </div>

    【讨论】:

    • divOuter 不应该是固定大小。它应该是例如100% 页面宽度。当我将页面尺寸设置得太小时,它应该显示......段落的三个点并且没有 divInner 变化。请参阅我的问题中的示例
    • 嗨@JohnGlabb。已更新我的答案。基本上,你给divOuter 的宽度并不重要。你根本不需要给它一个宽度。当页面太小时,它会自动显示...。再次运行 sn-p 来检查它。
    • 比完美.. 谢谢 Nisanth 先生
    • @JohnGlabb。很高兴有帮助:)。
    猜你喜欢
    • 2013-10-22
    • 2011-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-01
    • 2021-03-23
    • 1970-01-01
    • 2021-07-22
    相关资源
    最近更新 更多