CSSサンプル集
CSS Grid レイアウト
2次元レイアウトに最適なCSS Gridの実装例です。
実装例
Header
Sidebar
Main Content
Footer
HTML
<div class="css-grid-demo">
<div class="grid-item item-1">Header</div>
<div class="grid-item item-2">Sidebar</div>
<div class="grid-item item-3">Main Content</div>
<div class="grid-item item-4">Footer</div>
</div>
CSS
.css-grid-demo {
display: grid;
grid-template-areas:
"header header"
"sidebar main"
"footer footer";
grid-template-columns: 200px 1fr;
grid-template-rows: 60px 1fr 60px;
gap: 1rem;
height: 300px;
}
.item-1 { grid-area: header; background: #007bff; color: white; }
.item-2 { grid-area: sidebar; background: #17a2b8; color: white; }
.item-3 { grid-area: main; background: white; }
.item-4 { grid-area: footer; background: #343a40; color: white; }
Flexbox レイアウト
1次元レイアウトに適したFlexboxの使い方です。
実装例
Item 1
Item 2 (2倍幅)
Item 3
CSS
.flexbox-demo {
display: flex;
gap: 1rem;
}
.flex-item {
flex: 1;
padding: 2rem;
background: #007bff;
color: white;
text-align: center;
border-radius: 0.375rem;
}
.flex-item:nth-child(2) {
flex: 2; /* 2倍の幅 */
background: #28a745;
}
CSS アニメーション
ホバー時のアニメーション効果の実装例です。
実装例(ホバーしてみてください)
Bounce
Fade
Rotate
CSS アニメーション
/* ホバー時のアニメーション */
.bounce-demo:hover i {
animation: bounce 0.6s ease-in-out;
}
.fade-demo:hover {
animation: fadeInOut 1s ease-in-out;
}
.rotate-demo:hover i {
animation: rotate 1s ease-in-out;
}
/* キーフレーム定義 */
@keyframes bounce {
0%, 20%, 60%, 100% { transform: translateY(0); }
40% { transform: translateY(-20px); }
80% { transform: translateY(-10px); }
}
@keyframes fadeInOut {
0%, 100% { opacity: 1; }
50% { opacity: 0.3; }
}
@keyframes rotate {
from { transform: rotate(0deg); }
to { transform: rotate(360deg); }
}