画像だけで、まだソースはないようなので、サンプルをあげてみます。
あくまでサンプルなので作りは甘いです。参考程度にしてください。
HTML
1<article>
2 <header>
3 <h2>タイトル</h2>
4 <time>2018/10/17</time>
5 <span class="tag">ジャンル1, ジャンル2</span>
6 </header>
7 <section class="main">
8 <p>
9 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
10 </p>
11 </section>
12 <footer>
13 <button type="button" class="read-more">→ 続きを読む</button>
14 </footer>
15</article>
CSS
1* {
2 padding: 0;
3 margin: 0;
4 box-sizing: border-box;
5}
6
7article {
8 border: 1px solid #bfc4c4;
9 background-color: #ebecec;
10 width: 500px;
11 height: 210px;
12 padding: 15px;
13}
14
15article header {
16 margin-bottom: 15px
17}
18
19article h2 {
20 text-align: center;
21 border-bottom: 1px solid #bfc4c4;
22 padding-bottom: 5px;
23 margin-bottom: 10px;
24}
25
26 article time, article .tag {
27 font-size: 0.8rem;
28}
29
30article .tag {
31 margin-left: 50px;
32}
33
34article .main {
35 word-break: break-all;
36}
37
38.read-more {
39 background-color: #00dfef;
40 border: none;
41 border-radius: 15px;
42 padding: 5px 20px 5px;
43 color: #FFF;
44 font-size: 1rem;
45 margin-top: 10px;
46 float: right;
47}
JavaScript
1addEventListener("DOMContentLoaded", () => {
2 document.querySelectorAll("article .main p").forEach((p) => {
3 p.textContent = p.textContent.replace(/(?<=.{70,}).*/, "……");
4 });
5});