CSSで画面の枠に沿って文字を表示してみた!

Web開発
この記事は約4分で読めます。

こんにちは、@Manabu です。

とあるWebサイトで、デザインの要望の一つに「画面の枠に沿って文字を表示したい」というものがあったので、実装してみました。

詳しい話は特にしませんが、こういった方法で実装できるよ、という参考例として残しておきます。

完成例

今回作ろうとしているのは、以下のページのようなイメージです。

枠に文字列を表示

枠に沿って、文字列を表示させています。

実装したコード

今回、使用したコードは以下です。

参考にして下さい。

<head>
<style>
  body {
    margin: 0;
    padding: 0;
    height: 100vh;
    display: flex;
    justify-content: center;
    align-items: center;
    box-sizing: border-box;
    position: relative;
  }

  .border-with-text {
    position: relative;
    width: 100%;
    height: 100%;
    border: 20px solid #ff6347; /* 枠線の太さと色 */
    box-sizing: border-box;
  }

  .border-with-text::before , .border-with-text::after {
    content: "test test test test test test test test test test";
    position: absolute;
    width: 100%;
    text-align: center;
    font-size: 16px;
    color: #fff; /* 文字の色(必要に応じて変更) */
    font-family: Arial, sans-serif;
  }

  /* 上の枠に文字を配置 */
  .border-with-text::before {
    top: -20px; /* 枠線の上に配置 */
    left: 0;
  }

  /* 下の枠に文字を配置 */
  .border-with-text::after {
    bottom: -20px; /* 枠線の下に配置 */
    left: 0;
  }

  /* 左の枠に文字を配置 */
  .left-text {
    position: absolute;
    writing-mode: vertical-lr; /* 縦書きにする */
    text-align: center;
    left: -20px; /* 枠線の外側に配置 */
    top: 0;
    height: 100%;
    font-size: 16px;
    color: #fff;
    font-family: Arial, sans-serif;
    transform: rotate(180deg); /* 内側に向かって回転 */
    transform-origin: center center; /* 回転の基準を中心に設定 */
  }

  /* 右の枠に文字を配置 */
  .right-text {
    position: absolute;
    writing-mode: vertical-rl;
    text-align: center;
    right: -20px; /* 枠線の外側に配置 */
    top: 0;
    height: 100%;
    font-size: 16px;
    color: #fff;
    font-family: Arial, sans-serif;
  }
</style>
</head>
<body>
  <div class="border-with-text">
  <!-- 左右の縁用 -->
    <div class="left-text">test test test test test test</div>
    <div class="right-text">test test test test test test</div>
  </div>
</body>

まとめ

使用したソースを共有しただけの記事です。

イメージを掴んで、カスタマイズしてみてください。