HTML
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
<h1>Line Clampin'</h1> <h2>Weird WebKit Flexbox Way</h2> <div class="module line-clamp"> <p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.</p> </div> <h2>Pure CSS Overflow Way</h2> <div class="module overflow"> <p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.</p> </div> <h2>Fade Out Way</h2> <div class="module fade"> <p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.</p> </div> <h2>Opera Overflow Way</h2> <div class="module last-line"> <p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.</p> </div> <h2>Clamp.js Way</h2> <div class="module js"> <p id="clampjs">Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.</p> </div> <h2>ftellipsis Way</h2> <div class="module js ftellipsis" id="ftellipsis"> <p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.</p> </div> <h2>TextOverflowClamp.js Way</h2> <div class="module js textoverflowclamp" id="textoverflowclamp"> <p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.</p> </div> |
CSS
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 |
@import url(https://fonts.googleapis.com/css?family=Open+Sans); body { padding: 20px; font: 1.2em/1.2em 'Open Sans', sans-serif; } .module { width: 250px; margin: 0 0 1em 0; overflow: hidden; } .module p { margin: 0; } .line-clamp { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; } .fade { position: relative; height: 3.6em; /* exactly three lines */ } .fade:after { content: ""; text-align: right; position: absolute; bottom: 0; right: 0; width: 70%; height: 1.2em; background: linear-gradient(to right, rgba(255, 255, 255, 0), rgba(255, 255, 255, 1) 50%); } .last-line { height: 3.6em; /* exactly three lines */ text-overflow: -o-ellipsis-lastline; } .ftellipsis { height: 3.6em; } html { --lh: 1.4rem; line-height: var(--lh); } .overflow { --max-lines: 3; position: relative; max-height: calc(var(--lh) * var(--max-lines)); overflow: hidden; padding-right: 1rem; /* space for ellipsis */ } .overflow::before { position: absolute; content: "..."; /* inset-block-end: 0; inset-inline-end: 0; */ bottom: 0; right: 0; } .overflow::after { content: ""; position: absolute; /* inset-inline-end: 0; */ right: 0; width: 1rem; height: 1rem; background: white; } h1 { margin: 0 0 1em 0; } h2 { font-size: 1.2em; } |
JS
1 2 3 4 5 6 7 8 9 10 11 12 13 |
// https://github.com/josephschmitt/Clamp.js var module = document.getElementById("clampjs"); $clamp(module, {clamp: 3}); // https://github.com/ftlabs/ftellipsis var element = document.getElementById('ftellipsis'); var ellipsis = new Ellipsis(element); ellipsis.calc(); ellipsis.set(); |
Leave a reply