-webkit-line-clamp
- Module Reference
- CSS Overflow
- Feature Reference
- -webkit-line-clamp
What is this?
テキストを複数行に渡って表示し、指定した行数で収まらない部分は省略する。
Usage
3行表示
.clamp {
display: -webkit-box;
-webkit-line-clamp: 3;
-webkit-box-orient: vertical;
overflow: hidden;
}
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean
massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec
quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim.
Donec pede justo, fringilla vel, aliquet nec, vulputate
Bad Practices
上下のpadding
があると綺麗に見えない
-webkit-line-clamp
を指定するとき、上下にpadding
があると、省略行の次の行が見えてしまう。
.has-padding-clamp {
padding: 1rem;
display: -webkit-box;
-webkit-line-clamp: 3;
-webkit-box-orient: vertical;
overflow: hidden;
}
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean
massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec
quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim.
Donec pede justo, fringilla vel, aliquet nec, vulputate
この場合、少なくともpadding-bottom: 0;
が必要。
.has-padding-clamp {
padding: 1rem;
padding-bottom: 0;
display: -webkit-box;
-webkit-line-clamp: 3;
-webkit-box-orient: vertical;
overflow: hidden;
}
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean
massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec
quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim.
Donec pede justo, fringilla vel, aliquet nec, vulputate
-webkit-
群の組み合わせでしか機能しない
-webkit-box
の正体はflex
プロパティのベンダープレフィックス。
flex
が草案時代にWebKitでflex
を利用するときに使われていたプロパティだが、
-webkit-box
の代わりにflex
を指定すると-webkit-line-clamp
は機能しない。
.not-working {
display: flex;
-webkit-line-clamp: 3;
-webkit-box-orient: vertical;
overflow: hidden;
}
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean
massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec
quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim.
Donec pede justo, fringilla vel, aliquet nec, vulputate