こんにちは。
ゆうや(@yuyaphotograph)です!
この記事では、
- HTML、CSSでカードデザインパーツのコーディングをする方法が知りたい
- Webサイト制作案件でよくある少し複雑なカードパーツのサンプルコードが見たい
- なんとも言えない横幅の画像とカードが重なり合うカードパーツを実装したい
という方のお悩みを解決します!
今回、紹介するサンプルコードはぼくがかつて、実際のWebサイト制作案件で使用したものです。
これまでこなしてきたカードコーディングの中で最も苦戦した、と言っても過言ではないデザイン、それをコピペで実現できるようサンプルコードをご用意いたしました!
同じ様なパーツのコーディングで躓いている方の助けになれれば幸いです!!
完成イメージ
今回紹介するコードで実現できるカードデザインはこちら!
▼▼▼
、、、見るからに手強そうなデザインですね(泣)
デザインデータをもらった時は「ふぁ!!!?」と叫びそうになりましたね笑
さて、こちらのデザイン、画像とテキストブロックがほんの少し重なり合っているのが特徴です。
display:flexやmargin-left:-◯◯pxを駆使して実装します。
コーポレートサイトで、サービス紹介部分をオシャレに見せたい時に使用されそうなデザインとなります。
以下で紹介するコードをお使いいただければ、とりあえず見た目だけは秒で再現できます!
それでは見ていきましょう〜〜
カードデザインのサンプルコード
こちら、CodePenで作った見本です!
レスポンシブでは、折り返して1カラムになるよう実装しております。
この画面だと本来のPCサイズで表示されないので、ぜひCodePenのページへ行って確かめてみていただきたいでありんす。
See the Pen
BajdYXw by 石森裕也 (@yuyaphotograph)
on CodePen.
HTML
こちら、今回のカードデザインのHTML構造です!
カードブロックの数を増やしたい場合は、「Card」の塊を増やしてあげればOK!
<div class="Inner">
<div class="Card">
<div class="Card-Img">
<img src="画像URL" alt="">
</div>
<div class="Card-Content">
<p class="Card-Content-Title">タイトル</p>
<p class="Card-Content-SubTitle">サブタイトル</p>
<div class="Card-Content-Border"></div>
<p class="Card-Content-Text">テキストテキストテキストテキストテキストテキスト</p>
</div>
</div>
<div class="Card">
<div class="Card-Img">
<img src="画像URL" alt="">
</div>
<div class="Card-Content">
<p class="Card-Content-Title">タイトル</p>
<p class="Card-Content-SubTitle">サブタイトル</p>
<div class="Card-Content-Border"></div>
<p class="Card-Content-Text">テキストテキストテキストテキストテキストテキスト</p>
</div>
</div>
</div>
CSS
こちらスタイリングです!
文字サイズや文字色、画像の横幅サイズ、テキストブロックの横幅などはよしなに変更してお使いください。
実際に使用する時は、タブレット表示の際にデザイン崩れを起こしそうなので要注意です。
そのデザイン崩れもよしなに修正してくださいまし。
p{
margin: 0;
padding: 0;
}
img{
width: 100%;
height: auto;
}
.Inner{
margin-left: auto;
margin-right: auto;
max-width: 1200px;
}
.Card{
position: relative;
margin-bottom: 48px;
display: flex;
align-items: flex-start;
}
.Card-Img{
width: 36%;
box-shadow: 0 0px 20px rgba(0,0,0,0.2);
}
.Card-Content{
margin-top: 80px;
padding-top: 120px;
padding-bottom: 100px;
width: 56%;
display: flex;
flex-direction: column;
align-items: center;
background: #000;
color: #fff;
z-index: 1000;
}
.Card:nth-child(1) .Card-Content{
margin-left: -100px;
}
.Card:nth-child(2){
justify-content: flex-end;
}
.Card:nth-child(2) .Card-Content{
margin-right: -100px;
order: -1;
}
.Card-Content-Title{
font-weight: bold;
font-size: 32px;
}
.Card-Content-SubTitle{
font-size: 24px;
}
.Card-Content-Border{
margin-top: 24px;
width: 120px;
height: 1px;
background: #fff;
}
.Card-Content-Text{
margin-top: 24px;
font-size: 18px;
}
@media screen and (max-width: 480px){
.Card{
position: static;
flex-wrap: wrap;
margin-bottom: 0;
}
.Card-Img{
width: 100%;
}
.Card-Content{
margin-top: 0;
padding-top: 48px;
padding-bottom: 48px;
width: 100%;
}
.Card:nth-child(1) .Card-Content{
margin-left: 0;
}
.Card:nth-child(2) .Card-Content{
margin-right: 0;
order: inherit;
}
}
まとめ
以上、実務でよく使われる少し複雑なカードデザインのコーディングのサンプルコード⑨を紹介しました。
コーポレートサイトの制作案件をする際に必ずや!役立つスキルとなりますのでぜひ覚えていきましょう〜!
コーディングスキルアップシリーズはこちら!