Solution 1 :

You may hack it with a sticky position element that will define you margin:

.container {
  width: 180px;
  height: 140px;
  background-color: #777;
  overflow: hidden;
}

.container:after {
  content: "";
  display: block;
  height: 15px;
  position: sticky;
  bottom: 0;
  background: inherit;
}
<div class="container">
  <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Impedit rerum quos molestiae ab a mollitia hic ea, provident odio beatae necessitatibus accusantium voluptate et aliquam exercitationem recusandae non deleniti officiis architecto eveniet, consectetur
    veniam dignissimos accusamus quaerat! Reiciendis tenetur similique necessitatibus odit eveniet, reprehenderit quibusdam eaque est, quidem facere nostrum autem totam porro deleniti? Porro laborum earum itaque, fuga rerum eum dolores facilis dolorum
    velit vero illum eveniet, perferendis excepturi officiis error officia modi libero voluptatum autem quod eos ipsum. Quod accusantium possimus nesciunt expedita, eos ducimus perferendis delectus dicta similique voluptas modi, ullam enim repellendus
    consequuntur incidunt atque natus reprehenderit odio, id quia vero. Obcaecati, nulla. Perferendis, dolores. Voluptatibus praesentium porro non blanditiis odit doloribus labore inventore voluptas facere!</p>
</div>

A more generic code would be to add both pseudo element and remove the margin from p

.container {
  width: 180px;
  height: 140px;
  background-color: #777;
  overflow: hidden;
}

.container:before,
.container:after {
  content: "";
  display: block;
  height: 15px;
  position: sticky;
  top:0;
  bottom: 0;
  background: inherit;
}

p {
  margin: 0;
}
<div class="container">
  <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Impedit rerum quos molestiae ab a mollitia hic ea, provident odio beatae necessitatibus accusantium voluptate et aliquam exercitationem recusandae non deleniti officiis architecto eveniet, consectetur
    veniam dignissimos accusamus quaerat! Reiciendis tenetur similique necessitatibus odit eveniet, reprehenderit quibusdam eaque est, quidem facere nostrum autem totam porro deleniti? Porro laborum earum itaque, fuga rerum eum dolores facilis dolorum
    velit vero illum eveniet, perferendis excepturi officiis error officia modi libero voluptatum autem quod eos ipsum. Quod accusantium possimus nesciunt expedita, eos ducimus perferendis delectus dicta similique voluptas modi, ullam enim repellendus
    consequuntur incidunt atque natus reprehenderit odio, id quia vero. Obcaecati, nulla. Perferendis, dolores. Voluptatibus praesentium porro non blanditiis odit doloribus labore inventore voluptas facere!</p>
</div>

The latter will also work if you want to consider scroll:

.container {
  width: 180px;
  height: 140px;
  background-color: #777;
  overflow: auto;
}

.container:before,
.container:after {
  content: "";
  display: block;
  height: 15px;
  position: sticky;
  top:0;
  bottom: 0;
  background: inherit;
}

p {
  margin: 0;
}
<div class="container">
  <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Impedit rerum quos molestiae ab a mollitia hic ea, provident odio beatae necessitatibus accusantium voluptate et aliquam exercitationem recusandae non deleniti officiis architecto eveniet, consectetur
    veniam dignissimos accusamus quaerat! Reiciendis tenetur similique necessitatibus odit eveniet, reprehenderit quibusdam eaque est, quidem facere nostrum autem totam porro deleniti? Porro laborum earum itaque, fuga rerum eum dolores facilis dolorum
    velit vero illum eveniet, perferendis excepturi officiis error officia modi libero voluptatum autem quod eos ipsum. Quod accusantium possimus nesciunt expedita, eos ducimus perferendis delectus dicta similique voluptas modi, ullam enim repellendus
    consequuntur incidunt atque natus reprehenderit odio, id quia vero. Obcaecati, nulla. Perferendis, dolores. Voluptatibus praesentium porro non blanditiis odit doloribus labore inventore voluptas facere!</p>
</div>

You can also limit the height of inner div like below:

.container {
  width: 180px;
  height: 140px;
  overflow: hidden;
  background-color: #777;
}

.inner {
  height:calc(100% - 2*15px);
  overflow: hidden;
  margin:15px 0;
}
p {
  margin:0;
}
<div class="container">
  <div class="inner">
    <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Impedit rerum quos molestiae ab a mollitia hic ea, provident odio beatae necessitatibus accusantium voluptate et aliquam exercitationem recusandae non deleniti officiis architecto eveniet, consectetur
      veniam dignissimos accusamus quaerat! Reiciendis tenetur similique necessitatibus odit eveniet, reprehenderit quibusdam eaque est, quidem facere nostrum autem totam porro deleniti? Porro laborum earum itaque, fuga rerum eum dolores facilis dolorum
      velit vero illum eveniet, perferendis excepturi officiis error officia modi libero voluptatum autem quod eos ipsum. Quod accusantium possimus nesciunt expedita, eos ducimus perferendis delectus dicta similique voluptas modi, ullam enim repellendus
      consequuntur incidunt atque natus reprehenderit odio, id quia vero. Obcaecati, nulla. Perferendis, dolores. Voluptatibus praesentium porro non blanditiis odit doloribus labore inventore voluptas facere!</p>
  </div>
</div>

Problem :

Here I want to have a text padding/margin on the bottom part of my Div, to have a more organized and tidier look. the bottom part of the image shows the undesirable effect

I want it to be flexible and handle to an unknown size text there.

.container {
  width: 180px;
  height: 140px;
  background-color: #777;
  overflow: hidden;
  /*padding-bottom: 10px; */
}

.inner {
  /* height: 134px;   */
}

p {
  margin-bottom: 10px;
}
<div class="container">
  <div class="inner">
    <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Impedit rerum quos molestiae ab a mollitia hic ea, provident odio beatae necessitatibus accusantium voluptate et aliquam exercitationem recusandae non deleniti officiis architecto eveniet, consectetur
      veniam dignissimos accusamus quaerat! Reiciendis tenetur similique necessitatibus odit eveniet, reprehenderit quibusdam eaque est, quidem facere nostrum autem totam porro deleniti? Porro laborum earum itaque, fuga rerum eum dolores facilis dolorum
      velit vero illum eveniet, perferendis excepturi officiis error officia modi libero voluptatum autem quod eos ipsum. Quod accusantium possimus nesciunt expedita, eos ducimus perferendis delectus dicta similique voluptas modi, ullam enim repellendus
      consequuntur incidunt atque natus reprehenderit odio, id quia vero. Obcaecati, nulla. Perferendis, dolores. Voluptatibus praesentium porro non blanditiis odit doloribus labore inventore voluptas facere!</p>
  </div>
</div>

Comments

Comment posted by Kasrak

It reminded me something, but still not sure, can you provide an example? @dgknca

Comment posted by Terminat

You can use height: max-content;

Comment posted by Kasrak

I don’t want to enlarge the div, want to keep the base size. @Terminat

Comment posted by Kasrak

About the provided example shot, I like the last line on the image not be shown and it ends at “aliquam”

Comment posted by jsfiddle.net/5mg9r0vs

Like this

Comment posted by Kasrak

Thanks that is what I wanted, I added the “inner Div” just cause I thought it might be necessary here, but with your solution I have doubt that we ever need it, am I right?

Comment posted by Temani Afif

@Kasrak yes you can remove it. Will do it

Comment posted by Kasrak

That’s nice, especially because your solution happened in a way that I never thought of, but cause it is still like a hack, if someone provide the same experience with a real solution even simpler ones I may mark that as the answer. BTW thanks for the great answer, anyone can learn from it.

Comment posted by Temani Afif

@Kasrak added another idea but I still prefer the sticky way because it requires less of code

Comment posted by Kasrak

All nice, thank you, I also found another solution, but will keep your answer here.

By