搜索

首页  >  问答  >  正文

显示 flex 占用的宽度大于 div 上指定的宽度

div 有一定的宽度,里面的文本动态地来自 API,并且有省略号样式。我无法提供文本的宽度,因为文本是完全动态的并且不确定文本长度。下面是解释该问题的代码。

body {
    background-color: lightblue;
}

.container {
    display: flex;
    width: 130px;
}

.d-flex {
    display: flex;
}

.flex-column {
    flex-direction: column;
}

.justify-content-center {
    justify-content: center;
}

.justify-content-between {
    justify-content: space-between;
}

.table-header__width-ellipses {
    display: inline-block;
    overflow: hidden;
    text-overflow: ellipsis;
    vertical-align: middle;
    white-space: nowrap;
}
<div class="d-flex">
  <div class="container">
    <div class="d-flex justify-content-between w-100  align-items-center">
      <div class=" d-flex flex-column justify-content-center">
        <div>
        <!-- style="width: 110px" ---- is showing correct ellipsis and text fits in the width -->

          <span class="table-header__width-ellipses pl-2">Long text included here </span>
        </div>
      </div>
      <div class="d-flex">
        <div class="header--sort_icon"></div>
        <div class="cursor-pointer cell-header-addcol">
          <img src="https://cdn.pixabay.com/photo/2022/01/11/21/48/link-6931554_1280.png" alt="menu" width="16" height="16">
        </div>
      </div>
    </div>
  </div>
  <div class="container">
    <div class="d-flex justify-content-between w-100  align-items-center">
      <div class=" d-flex flex-column justify-content-center">
        <div>
          <span class="table-header__width-ellipses pl-2">Long text included here </span>
        </div>
      </div>
      <div class="d-flex">
        <div class="header--sort_icon"></div>
        <div class="cursor-pointer cell-header-addcol">
          <img src="https://cdn.pixabay.com/photo/2022/01/11/21/48/link-6931554_1280.png" alt="menu" width="16" height="16">
        </div>
      </div>
    </div>
  </div>
 <div>

我正在尝试为表格样式生成这样的内容。有人可以帮我解决这个问题吗?

P粉425119739P粉425119739510 天前640

全部回复(1)我来回复

  • P粉713846879

    P粉7138468792023-09-12 14:19:28

    要使 text-overflow: ellipsis; 正常工作,您应该指定 inline-block span 元素的宽度。

    因此,将 width: 130px; 添加到 .table-header__width-ellipses 并使用 width: 150px; 作为 .container< /代码>

    工作代码。

    body {
        background-color: lightblue;
    }
    
    .container {
        display: flex;
        width: 150px;
    }
    
    .d-flex {
        display: flex;
    }
    
    .flex-column {
        flex-direction: column;
    }
    
    .justify-content-center {
        justify-content: center;
    }
    
    .justify-content-between {
        justify-content: space-between;
    }
    
    .table-header__width-ellipses {
        display: inline-block;
        overflow: hidden;
        text-overflow: ellipsis;
        vertical-align: middle;
        white-space: nowrap;
        width: 130px;
    }
    <div class="d-flex">
      <div class="container">
        <div class="d-flex justify-content-between w-100  align-items-center">
          <div class=" d-flex flex-column justify-content-center">
            <div>
            <!-- style="width: 110px" ---- is showing correct ellipsis and text fits in the width -->
    
              <span class="table-header__width-ellipses pl-2">Long text included here </span>
            </div>
          </div>
          <div class="d-flex">
            <div class="header--sort_icon"></div>
            <div class="cursor-pointer cell-header-addcol">
              <img src="https://cdn.pixabay.com/photo/2022/01/11/21/48/link-6931554_1280.png" alt="menu" width="16" height="16">
            </div>
          </div>
        </div>
      </div>
      <div class="container">
        <div class="d-flex justify-content-between w-100  align-items-center">
          <div class=" d-flex flex-column justify-content-center">
            <div>
              <span class="table-header__width-ellipses pl-2">Long text included here </span>
            </div>
          </div>
          <div class="d-flex">
            <div class="header--sort_icon"></div>
            <div class="cursor-pointer cell-header-addcol">
              <img src="https://cdn.pixabay.com/photo/2022/01/11/21/48/link-6931554_1280.png" alt="menu" width="16" height="16">
            </div>
          </div>
        </div>
      </div>
     <div>

    回复
    0
  • 取消回复