経歴タイムラインを美しく表示する方法|CSSで簡単に作れるデザイン例

プロフィールページや会社案内などで、これまでの経歴を時系列で分かりやすく見せたいことがあります。

普通の箇条書きでも経歴は表示できますが、年月ごとの出来事を縦につないだタイムライン形式にすると、過去から現在までの流れをひと目で追いやすくなります。

この記事では、HTMLとCSSだけで作れる、シンプルな経歴タイムラインを紹介します。

1 今回作る経歴タイムライン

左側に縦線と丸印を表示し、その右側に「年月」と「経歴」を表示します。

たとえば、次のような経歴です。

  • 2020年3月 動物ケアの分野で活動開始
  • 2022年3月 地域密着型ペットショップに入社
  • 2024年1月 ペットの健康相談サービスを開始
  • 2025年3月 店長就任

これらを縦のラインでつなぎ、時間の流れが視覚的に分かるようにします。

2 HTMLを設置する

タイムラインを表示したい場所に、次のHTMLを設置します。

WordPressのクラシックエディタを使用している場合は、「テキスト」モードに貼り付けてください。

<div class="ptl-timeline">

    <ul>

        <li>
            <time class="ptl-date" datetime="2020-03">
                2020年3月
            </time>

            <p class="ptl-text">
                ペットに関する専門知識を習得し、
                動物ケアの分野で活動開始。
            </p>
        </li>


        <li>
            <time class="ptl-date" datetime="2022-03">
                2022年3月
            </time>

            <p class="ptl-text">
                地域密着型ペットショップに入社し、
                犬・猫・小動物のケアや販売管理を担当。
            </p>
        </li>


        <li>
            <time class="ptl-date" datetime="2024-01">
                2024年1月
            </time>

            <p class="ptl-text">
                ペットの健康相談サービスを開始し、
                飼い主サポートを強化。
            </p>
        </li>


        <li>
            <time class="ptl-date" datetime="2025-03">
                2025年3月
            </time>

            <p class="ptl-text">
                店長就任。
                地域のペットと家族の幸せづくりに専念。
            </p>
        </li>

    </ul>

</div>

1つの <li> が、1件の経歴になります。

経歴を増やしたい場合は、<ul> の中に新しい <li> を追加するだけです。

3 CSSを追加する

次に、タイムラインを表示するためのCSSを追加します。

子テーマを使用している場合は子テーマの style.css、またはテーマで利用できる追加CSS欄などへ記述してください。

/* 経歴タイムライン */
.ptl-timeline,
.ptl-timeline * {
    box-sizing: border-box;
}

.ptl-timeline {
    max-width: 800px;
    padding: 30px;
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.06);
    color: #2a1f1e;
}


/* タイムライン本体 */
.ptl-timeline ul {
    position: relative;
    margin: 0;
    padding: 0 0 0 30px;
    list-style: none;
}


/* 縦線 */
.ptl-timeline ul::before {
    content: "";
    position: absolute;
    top: 8px;
    bottom: 8px;
    left: 7px;
    width: 3px;
    background: #e5e5e5;
}


/* 各経歴 */
.ptl-timeline li {
    position: relative;
    margin: 0 0 28px;
    padding: 0;
}

.ptl-timeline li:last-child {
    margin-bottom: 0;
}


/* 丸印 */
.ptl-timeline li::before {
    content: "";
    position: absolute;
    top: 6px;
    left: -30px;
    width: 15px;
    height: 15px;
    background: #fff;
    border: 3px solid #a05a4a;
    border-radius: 50%;
}


/* 年月 */
.ptl-date {
    display: block;
    margin-bottom: 6px;
    color: #3a2a28;
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.5;
}


/* 経歴本文 */
.ptl-text {
    margin: 0;
    color: #333;
    font-size: 0.95rem;
    line-height: 1.8;
}


/* スマホ */
@media screen and (max-width: 700px) {

    .ptl-timeline {
        padding: 22px 18px;
    }

    .ptl-timeline ul {
        padding-left: 26px;
    }

    .ptl-timeline ul::before {
        left: 6px;
        width: 2px;
    }

    .ptl-timeline li::before {
        left: -26px;
        width: 13px;
        height: 13px;
    }

}

4 タイムラインの仕組み

HTMLでは、タイムライン全体を次のように囲んでいます。

<div class="ptl-timeline">
    <ul>

        経歴をここに入れる

    </ul>
</div>

この <ul> の中に、経歴ごとの <li> を並べます。

つまり、構造は次のようになります。

<div class="ptl-timeline">

    <ul>

        <li>1件目の経歴</li>

        <li>2件目の経歴</li>

        <li>3件目の経歴</li>

    </ul>

</div>

<li> だけを単独で設置するのではなく、必ず <ul> の中へ入れます。

5 1件分の経歴はどう書く?

1件分の経歴は、次の形です。

<li>

    <time class="ptl-date" datetime="2024-01">
        2024年1月
    </time>

    <p class="ptl-text">
        ペットの健康相談サービスを開始し、
        飼い主サポートを強化。
    </p>

</li>

年月は ptl-date、説明文は ptl-text というクラス名にしています。

6 年月にはtimeタグを使う

年月部分には <time> タグを使用しています。

<time class="ptl-date" datetime="2024-01">
    2024年1月
</time>

画面上では「2024年1月」と表示されます。

datetime="2024-01" には、年月を機械が読み取りやすい形式で記述しています。

経歴や沿革など、日付を表す内容では <time> を使うとHTMLの意味も分かりやすくなります。

7 経歴を追加する方法

新しい経歴を追加するときは、<ul> の中に <li> を追加します。

たとえば、2026年4月の経歴を追加する場合は次のようにします。

<li>

    <time class="ptl-date" datetime="2026-04">
        2026年4月
    </time>

    <p class="ptl-text">
        新しいペット相談サービスを開始。
    </p>

</li>

CSSを追加する必要はありません。

HTMLに経歴を追加するだけで、同じデザインのタイムラインが続きます。

8 縦線はCSSで表示する

左側に表示される縦線は、HTMLに線専用のタグを追加しているわけではありません。

CSSの ::before を使っています。

.ptl-timeline ul::before {
    content: "";
    position: absolute;
    top: 8px;
    bottom: 8px;
    left: 7px;
    width: 3px;
    background: #e5e5e5;
}

この縦線の上に、それぞれの経歴を表す丸印を重ねています。

9 丸印の色を変更する

経歴の左側にある丸印の色は、次の部分で指定しています。

border: 3px solid #a05a4a;

#a05a4a を変更すると、タイムラインのアクセントカラーを変えられます。

たとえば青系なら、

border-color: #2f6fa5;

緑系なら、

border-color: #3d8060;

のように変更できます。

10 スマホでは余白を少なくする

PCと同じ余白をスマホでも使うと、文章を表示できる横幅が狭くなってしまいます。

そのため、画面幅700px以下では外側の余白を小さくしています。

@media screen and (max-width: 700px) {

    .ptl-timeline {
        padding: 22px 18px;
    }

}

縦線と丸印も少し小さくしているため、スマホでも窮屈になりにくくなります。

11 専用のクラス名を使う理由

タイムラインの年月に .year、文章に .text といった短いクラス名を付ける方法もあります。

ただし、WordPressではテーマやプラグインが同じ名前を使用している可能性があります。

そこで今回は、

  • .ptl-timeline
  • .ptl-date
  • .ptl-text

のように、タイムライン専用のクラス名を使用しています。

他のCSSと名前が重なりにくくなり、WordPressサイトでもデザインが干渉しにくくなります。

12 どんなページに使える?

このタイムラインは、経歴以外にもいろいろな用途に使えます。

  • 代表者プロフィール
  • 会社の沿革
  • 資格取得歴
  • 受賞歴
  • サービス開始までの流れ
  • プロジェクトの進行履歴

「いつ、何があったのか」を順番に見せたいページに向いています。

13 完成サンプル

実際に表示すると、次のようなタイムラインになります。

  • 地域密着型ペットショップに入社し、犬・猫・小動物のケアや販売管理を担当。

  • ペットの健康相談サービスを開始し、飼い主サポートを強化。

  • 店長就任。地域のペットと家族の幸せづくりに専念。

14 まとめ

HTMLとCSSだけでも、プロフィールや会社沿革を見やすいタイムライン形式で表示できます。

今回の方法では、左側に縦線と丸印を表示し、その右側に年月と内容を配置しています。

経歴を追加するときも、<ul> の中へ新しい <li> を追加するだけです。

文章や年月を変更すれば、個人プロフィール、企業サイト、士業サイト、店舗紹介など、さまざまなWordPressサイトに応用できます。