Reputation: 7223
Given some text that occupies about 10 rows, how can I resize its container to only show the first 3 rows and hide the others? Apparently this works, but I think it is not reliable:
.container {
height: 7.5ex; /* 2.5ex for each visible line */
overflow: hidden;
}
Can I rely on the fact that height of one row = 2.5ex
or is that just a coincidence in the browsers I am using to test?
Upvotes: 35
Views: 35520
Reputation: 2631
Use rem
:
.container {
height: 3rem; /* 1rem for each visible line */
overflow: hidden;
}
Upvotes: 3
Reputation: 1546
You can use the webkit property line-clamp
.container {
overflow: hidden;
display: -webkit-box;
-webkit-line-clamp: 3;
-webkit-box-orient: vertical;
}
It doesn't work on all browsers, but hopefully it will one day.
Upvotes: 3
Reputation: 602
you can set the line height of a text and with it knows the exact height of each row and set desired height of your container, simply doing this:
.container {
line-height:25px;
height:75px;
overflow:hidden;
}
Now everything works rightly :)
Upvotes: 1