【CSS】calcを使ってカードリストを作る方法

CSS

calcを使ってカードリストを作る方法についてのメモ。

デモサイトはこちら

【CSS】calcを使ってカードリストを作る方法

HTML

画像とテキストは自由に変えてください。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
<!-- カードリスト -->
<div class="box">
<div class="box__item">
<img src="./image/1.JPG" alt="">
<div class="box__text">
<h2>タイトル</h2>
<p>文章が入ります。文章が入ります。文章が入ります。文章が入ります。文章が入ります。文章が入ります。</p>
</div>
</div>
<div class="box__item">
<img src="./image/1.JPG" alt="">
<div class="box__text">
<h2>タイトル</h2>
<p>文章が入ります。文章が入ります。文章が入ります。文章が入ります。文章が入ります。文章が入ります。</p>
</div>
</div>
<div class="box__item">
<img src="./image/1.JPG" alt="">
<div class="box__text">
<h2>タイトル</h2>
<p>文章が入ります。文章が入ります。文章が入ります。文章が入ります。文章が入ります。文章が入ります。</p>
</div>
</div>
<div class="box__item">
<img src="./image/1.JPG" alt="">
<div class="box__text">
<h2>タイトル</h2>
<p>文章が入ります。文章が入ります。文章が入ります。文章が入ります。文章が入ります。文章が入ります。</p>
</div>
</div>
<div class="box__item">
<img src="./image/1.JPG" alt="">
<div class="box__text">
<h2>タイトル</h2>
<p>文章が入ります。文章が入ります。文章が入ります。文章が入ります。文章が入ります。文章が入ります。</p>
</div>
</div>
<div class="box__item">
<img src="./image/1.JPG" alt="">
<div class="box__text">
<h2>タイトル</h2>
<p>文章が入ります。文章が入ります。文章が入ります。文章が入ります。文章が入ります。文章が入ります。</p>
</div>
</div>
<div class="box__item">
<img src="./image/1.JPG" alt="">
<div class="box__text">
<h2>タイトル</h2>
<p>文章が入ります。文章が入ります。文章が入ります。文章が入ります。文章が入ります。文章が入ります。</p>
</div>
</div>
<div class="box__item">
<img src="./image/1.JPG" alt="">
<div class="box__text">
<h2>タイトル</h2>
<p>文章が入ります。文章が入ります。文章が入ります。文章が入ります。文章が入ります。文章が入ります。</p>
</div>
</div>
</div>
<!-- カードリスト --> <div class="box"> <div class="box__item"> <img src="./image/1.JPG" alt=""> <div class="box__text"> <h2>タイトル</h2> <p>文章が入ります。文章が入ります。文章が入ります。文章が入ります。文章が入ります。文章が入ります。</p> </div> </div> <div class="box__item"> <img src="./image/1.JPG" alt=""> <div class="box__text"> <h2>タイトル</h2> <p>文章が入ります。文章が入ります。文章が入ります。文章が入ります。文章が入ります。文章が入ります。</p> </div> </div> <div class="box__item"> <img src="./image/1.JPG" alt=""> <div class="box__text"> <h2>タイトル</h2> <p>文章が入ります。文章が入ります。文章が入ります。文章が入ります。文章が入ります。文章が入ります。</p> </div> </div> <div class="box__item"> <img src="./image/1.JPG" alt=""> <div class="box__text"> <h2>タイトル</h2> <p>文章が入ります。文章が入ります。文章が入ります。文章が入ります。文章が入ります。文章が入ります。</p> </div> </div> <div class="box__item"> <img src="./image/1.JPG" alt=""> <div class="box__text"> <h2>タイトル</h2> <p>文章が入ります。文章が入ります。文章が入ります。文章が入ります。文章が入ります。文章が入ります。</p> </div> </div> <div class="box__item"> <img src="./image/1.JPG" alt=""> <div class="box__text"> <h2>タイトル</h2> <p>文章が入ります。文章が入ります。文章が入ります。文章が入ります。文章が入ります。文章が入ります。</p> </div> </div> <div class="box__item"> <img src="./image/1.JPG" alt=""> <div class="box__text"> <h2>タイトル</h2> <p>文章が入ります。文章が入ります。文章が入ります。文章が入ります。文章が入ります。文章が入ります。</p> </div> </div> <div class="box__item"> <img src="./image/1.JPG" alt=""> <div class="box__text"> <h2>タイトル</h2> <p>文章が入ります。文章が入ります。文章が入ります。文章が入ります。文章が入ります。文章が入ります。</p> </div> </div> </div>
<!-- カードリスト -->
<div class="box">
    <div class="box__item">
        <img src="./image/1.JPG" alt="">
        <div class="box__text">
            <h2>タイトル</h2>
            <p>文章が入ります。文章が入ります。文章が入ります。文章が入ります。文章が入ります。文章が入ります。</p>
        </div>
    </div>
    <div class="box__item">
        <img src="./image/1.JPG" alt="">
        <div class="box__text">
            <h2>タイトル</h2>
            <p>文章が入ります。文章が入ります。文章が入ります。文章が入ります。文章が入ります。文章が入ります。</p>
        </div>
    </div>
    <div class="box__item">
        <img src="./image/1.JPG" alt="">
        <div class="box__text">
            <h2>タイトル</h2>
            <p>文章が入ります。文章が入ります。文章が入ります。文章が入ります。文章が入ります。文章が入ります。</p>
        </div>
    </div>
    <div class="box__item">
        <img src="./image/1.JPG" alt="">
        <div class="box__text">
            <h2>タイトル</h2>
            <p>文章が入ります。文章が入ります。文章が入ります。文章が入ります。文章が入ります。文章が入ります。</p>
        </div>
    </div>
    <div class="box__item">
        <img src="./image/1.JPG" alt="">
        <div class="box__text">
            <h2>タイトル</h2>
            <p>文章が入ります。文章が入ります。文章が入ります。文章が入ります。文章が入ります。文章が入ります。</p>
        </div>
    </div>
    <div class="box__item">
        <img src="./image/1.JPG" alt="">
        <div class="box__text">
            <h2>タイトル</h2>
            <p>文章が入ります。文章が入ります。文章が入ります。文章が入ります。文章が入ります。文章が入ります。</p>
        </div>
    </div>
    <div class="box__item">
        <img src="./image/1.JPG" alt="">
        <div class="box__text">
            <h2>タイトル</h2>
            <p>文章が入ります。文章が入ります。文章が入ります。文章が入ります。文章が入ります。文章が入ります。</p>
        </div>
    </div>
    <div class="box__item">
        <img src="./image/1.JPG" alt="">
        <div class="box__text">
            <h2>タイトル</h2>
            <p>文章が入ります。文章が入ります。文章が入ります。文章が入ります。文章が入ります。文章が入ります。</p>
        </div>
    </div>
</div>

CSS

Scssを使っています。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
.box {
max-width: 1000px;
margin: 0 auto;
display: flex;
flex-wrap: wrap;
align-items: center;
.box__item {
width: 30%;
margin: calc(10%/4);
@include sp {
width: 100%;
}
&:nth-child(3n) {
margin-right: 0;
@include sp {
margin: calc(10%/4);
}
}
&:nth-child(3n+1) {
margin-left: 0;
@include sp {
margin: calc(10%/4);
}
}
.box__text {
padding: 15px;
background-color: #efefef;
h2 {
font-size: 25px;
margin-bottom: 20px;
}
p {
font-size: 17px;
line-height: 1.5;
}
}
}
}
.box { max-width: 1000px; margin: 0 auto; display: flex; flex-wrap: wrap; align-items: center; .box__item { width: 30%; margin: calc(10%/4); @include sp { width: 100%; } &:nth-child(3n) { margin-right: 0; @include sp { margin: calc(10%/4); } } &:nth-child(3n+1) { margin-left: 0; @include sp { margin: calc(10%/4); } } .box__text { padding: 15px; background-color: #efefef; h2 { font-size: 25px; margin-bottom: 20px; } p { font-size: 17px; line-height: 1.5; } } } }
.box {
    max-width: 1000px;
    margin: 0 auto;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    .box__item {
        width: 30%;
        margin: calc(10%/4);
        @include sp {
            width: 100%;
        }
        &:nth-child(3n) {
            margin-right: 0;
            @include sp {
                margin: calc(10%/4);
            }
        }
        &:nth-child(3n+1) {
            margin-left: 0;
            @include sp {
                margin: calc(10%/4);
            }
        }
        .box__text {
            padding: 15px;
            background-color: #efefef;
            h2 {
                font-size: 25px;
                margin-bottom: 20px;
            }
            p {
                font-size: 17px;
                line-height: 1.5;
            }
        }
    }
}