CSSだけで作る!テーブを貼ったようなメモ型囲み枠

@ハクト 2023-07-14 12:14:48に投稿

CSSだけでテーブを貼ったようなメモ型の囲み枠を作る方法について解説します。

テープには「repeating-linear-gradient」を使用しストライプを入れ、「rotate」関数で少し回転させてます。

大事なポイントを解説する際などにご活用ください。

枠を付ける

「border」プロパティで枠を入れ、「border-radius」で角丸にします。

<div class="box">
    <p>テーブを付けてメモ風にしたCSS囲み枠</p>
</div>
 .box {
    position: relative;
    padding: 1.5rem 1rem 0.6rem;
    border-radius: 5px;
    border: 0.7rem solid #FFBFBF;
    background-color: white;
}

.box p {
    color: #333;
    line-height: 2.3;
}

罫線を入れる

before疑似要素の「repeating-linear-gradient」で罫線を入れます。

.box {...}

.box::before {
    position: absolute;
    top: 3.5rem;
    left: 1rem;
    width: calc(100% - 2rem);
    height: calc(100% - 2rem);
    background-image: 
      repeating-linear-gradient(
        #ffe8e8 0 1px, 
        transparent 1px 37px
       );
    content: '';
}

.box p {...}

ストライプのテープを入れる

after疑似要素でサイズ・位置を調整し「repeating-linear-gradient」でストライプのテープを作成。「border-left」「border-right」で破線にし、切れ目が入ったようにしています。

.box {...} .box::before{...}

.box::after {
  position: absolute;
  top: -2rem;
  left: 50%;
  width: 60px;
  height: 30px;
  background-image: repeating-linear-gradient(-45deg, rgba(124, 249, 249, .5) 0 5px, transparent 5px 10px);
  border-left: 2px dashed rgba(0, 0, 0, .1);
  border-right: 2px dashed rgba(0, 0, 0, .1);
  box-shadow: 0 0 5px rgba(0, 0, 0, .2);
  padding: 0.25em 2em;
  color: #65513f;
  transform: translateX(-50%) rotate(-5deg);
  content: '';
}
.box p {...}

全てのコード

コードを表示

<div class="box">
    <p>テーブを付けてメモ風にしたCSS囲み枠デザイン。テーブを付けてメモ風にしたCSS囲み枠デザイン。テーブを付けてメモ風にしたCSS囲み枠デザイン。</p>
</div>

 

.pic-background {
    background-image: var(--pic-image-data, none);
    background-size: cover;
    background-position: center;
}

.box {
    position: relative;
    padding: 1.5rem 1rem 0.6rem;
    border-radius: 10px;
    border: 1rem solid #535353;
    background-color: white;
}

.box::before {
    position: absolute;
    top: 3.5rem;
    left: 1rem;
    width: calc(100% - 2rem);
    height: calc(100% - 2rem);
    background-image: repeating-linear-gradient(#ffe8e8 0 1px, transparent 1px 37px);
    content: '';
}

.box::after {
    position: absolute;
    top: -2rem;
    left: 50%;
    width: 60px;
    height: 30px;
    background-image: repeating-linear-gradient(-45deg, rgba(124, 249, 249, .5) 0 5px, transparent 5px 10px);
    border-left: 2px dashed rgba(0, 0, 0, .1);
    border-right: 2px dashed rgba(0, 0, 0, .1);
    box-shadow: 0 0 5px rgba(0, 0, 0, .2);
    padding: 0.25em 2em;
    color: #65513f;
    transform: translateX(-50%) rotate(-5deg);
    content: '';
}

.box p {
    color: #333;
    line-height: 2.3;
}

@ハクト

サービス作り・デザイン好き。70年代生まれのWEBエンジニア。WEBパーツをCSSでカスタマイズしてコピペできるサービスを運営中「Pa-tu」。実装したWEBパーツやツールを利用してWEB情報やライフハックを発信してます。

Twitter