1

When using a CSS Grid, I can't seem to manage to make the text-overflow:ellipsis work, even though I am applying it to the dom object containing the text that I want to shorten.

enter image description here

.grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;

  .grid-item { border: 1px solid red;}
  .grid-item .content{
    background-color: lightgray;
  }

  &.with-ellipsis {
    .title {
      text-overflow: ellipsis;
      white-space: nowrap;
      overflow: hidden;

    }
  }
}

This is the pen where my code is: https://codepen.io/dbugger/pen/qBBKLgX?editors=1100

Enrique Moreno Tent
  • 24,127
  • 34
  • 104
  • 189

1 Answers1

0

Set min-width: 0; on the .grid-item. It's an old solution for ellipsis on children of flexbox items (and grid), and you can read more about it here.

.grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-gap: 10px;
}

.grid .grid-item {
  min-width: 0;
  border: 1px solid red;
}

.grid .grid-item .content {
  background-color: lightgray;
}

.grid.with-ellipsis .title {
  text-overflow: ellipsis;
  white-space: nowrap;
  overflow: hidden;
}

.demo {
  display: inline-block;
  width: 33%;
  border: 1px solid red;
}

.demo .content {
  background-color: lightgray;
}

.demo .title {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
<h1>But what happens when you want some content inside the cell to have text-overflow: ellipsis</h1>

<div class="grid with-ellipsis">
  <div class="grid-item">
    <div class="image">Some image</div>
    <div class="content">
      <div class="title">Lorem, ipsum dolor sit amet consectetur adipisicing elit. Nesciunt excepturi obcaecati odio pariatur ipsam doloremque vel labore ipsa explicabo quos.</div>
    </div>
  </div>
  <div class="grid-item">
    <div class="image">Some image</div>
    <div class="content">
      <div class="title">Lorem, ipsum dolor sit amet consectetur adipisicing elit. Nesciunt excepturi obcaecati odio pariatur ipsam doloremque vel labore ipsa explicabo quos.</div>
    </div>
  </div>
  <div class="grid-item">
    <div class="image">Some image</div>
    <div class="content">
      <div class="title">Lorem, ipsum dolor sit amet consectetur adipisicing elit. Nesciunt excepturi obcaecati odio pariatur ipsam doloremque vel labore ipsa explicabo quos.</div>
    </div>
  </div>
  <div class="grid-item">
    <div class="image">Some image</div>
    <div class="content">
      <div class="title">Lorem, ipsum dolor sit amet consectetur adipisicing elit. Nesciunt excepturi obcaecati odio pariatur ipsam doloremque vel labore ipsa explicabo quos.</div>
    </div>
  </div>
  <div class="grid-item">
    <div class="image">Some image</div>
    <div class="content">
      <div class="title">Lorem, ipsum dolor sit amet consectetur adipisicing elit. Nesciunt excepturi obcaecati odio pariatur ipsam doloremque vel labore ipsa explicabo quos.</div>
    </div>
  </div>
  <div class="grid-item">
    <div class="image">Some image</div>
    <div class="content">
      <div class="title">Lorem, ipsum dolor sit amet consectetur adipisicing elit. Nesciunt excepturi obcaecati odio pariatur ipsam doloremque vel labore ipsa explicabo quos.</div>
    </div>
  </div>
</div>
Ori Drori
  • 183,571
  • 29
  • 224
  • 209