CSS
 Computer >> コンピューター >  >> プログラミング >> CSS

CSSで作るレスポンシブな「Meet The Team(チーム紹介)」ページの実装方法

企業サイトやコーポレートページでよく見かける「Meet The Team(チーム紹介)」セクション。HTMLとCSSだけでも、デバイス幅に応じてレイアウトが切り替わるレスポンシブなデザインを簡単に実装できます。

この記事では、メディアクエリfloatレイアウトを組み合わせて、3名のチームメンバーを横並びで表示し、画面幅が狭くなると自動的に縦並びへ切り替わるページの作り方を解説します。

実装コード(完全版)

以下が、レスポンシブな「Meet The Team」ページをHTMLとCSSで構築するためのコード全体です。

<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
html {
   box-sizing: border-box;
}
body{
   font-family: monospace,serif,sans-serif;
}
img{
   height: 300px;
   width: 100%;
}
*, *:before, *:after {
   box-sizing: inherit;
}
.teamColumn {
   float: left;
   width: 33.3%;
   margin-bottom: 16px;
   padding: 0 8px;
}
@media screen and (max-width: 650px) {
.teamColumn {
   width: 100%;
   display: block;
}
}
.teamCard {
   background-color: rgb(162, 162, 255);
   text-align: center;
   font-size: 20px;
}
.personContainer {
   padding: 0 16px;
}
.personContainer::after, .teamContainer::after {
   content: "";
   clear: both;
   display: table;
}
.Designation {
   color: rgb(15, 0, 100);
   font-weight: bolder;
   font-size: 40px;
}
.contact {
   border: none;
   outline: 0;
   display: inline-block;
   padding: 12px;
   color: white;
   font-weight: bolder;
   background-color: rgb(78, 0, 102);
   text-align: center;
   cursor: pointer;
   width: 100%;
}
.contact:hover {
   background-color: #555;
}
</style>
</head>
<body>
<h1 style="text-align: center;">Responsive Meet the team example </h1>
<div class="teamContainer">
<div class="teamColumn">
<div class="teamCard">
<img src="https://images.pexels.com/photos/839011/pexels-photo-839011.jpeg?auto=compress&cs=tinysrgb&dpr=1&w=500" >
<div class="personContainer">
<h2>Jane Doe</h2>
<p class="Designation">CTO</p>
<p><button class="contact">Contact</button></p>
</div>
</div>
</div>
<div class="teamColumn">
<div class="teamCard">
<img src="https://images.pexels.com/photos/614810/pexels-photo-614810.jpeg?auto=compress&cs=tinysrgb&dpr=1&w=500">
<div class="personContainer">
<h2>Mike Ross</h2>
<p class="Designation">Front End Developer</p>
<p><button class="contact">Contact</button></p>
</div>
</div>
</div>
<div class="teamColumn">
<div class="teamCard">
<img src="https://images.pexels.com/photos/736716/pexels-photo-736716.jpeg?auto=compress&cs=tinysrgb&dpr=1&w=500">
<div class="personContainer">
<h2>John Doe</h2>
<p class="Designation">FullStack Developer</p>
<p><button class="contact">Contact</button></p>
</div>
</div>
</div>
</div>
</body>
</html>

表示結果

上記コードをブラウザで開くと、以下のような画面が表示されます。

CSSで作るレスポンシブな「Meet The Team(チーム紹介)」ページの実装方法

コードのポイント解説

1. メディアクエリによるレスポンシブ対応

この実装の核となるのが次の部分です。

@media screen and (max-width: 650px) {
.teamColumn {
    width: 100%;
    display: block;
}
}

通常時は各カードが33.3%の幅で横に3列並びますが、画面幅が650px以下になると各カードが100%の幅に変わり、縦に1列で積み重なるようになります。

2. floatとclearfixによるレイアウト

.teamColumnにはfloat: left;を指定してカードを横並びにしています。floatを使った場合は親要素の高さが崩れるため、::after疑似要素を使ったclearfixで回り込みを解除しています。

3. box-sizingによるサイズ計算の統一

box-sizing: border-box;を全体に適用することで、paddingやborderを含めた状態でwidthが計算されるため、意図しないはみ出しを防げます。

まとめ

HTMLとCSSだけで、JavaScript不要のシンプルなレスポンシブチーム紹介ページを作成できました。よりモダンな実装を目指す場合は、floatではなくCSS GridFlexboxを使うことで、さらに柔軟で保守しやすいレイアウトを実現できますので、ぜひ試してみてください。

  1. CSSだけで作る!レスポンシブ対応のセクションカウンターの実装方法

    CSSを使えば、JavaScriptに頼ることなく、ダウンロード数やパートナー数などの統計情報を視覚的にアピールする「セクションカウンター」を簡単に作成できます。ここでは、Font Awesomeのアイコンと組み合わせて、レスポンシブ対応のセクションカウンターを実装する方法を解説します。 実装コード例 <!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1"> <l

  2. CSSでレスポンシブなブログレイアウトを作成する方法【完全なコード例付き】

    CSSを使ってレスポンシブなブログレイアウトを作成するには、viewportメタタグの設定と、デバイスの画面幅に応じて柔軟に調整されるレイアウト構造の定義がポイントになります。以下に、ナビゲーションバー・ブログ本文・サイドリンク・フッターを備えた、ブログサイトの完全なコード例を紹介します。 コード例 <!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1" /> <