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

CSSでチャットメッセージを作成する方法をわかりやすく解説

CSSを使えば、LINEやMessengerのようなチャットメッセージ画面を簡単に作成できます。この記事では、プロフィール画像・吹き出し・タイムスタンプ付きのチャットUIを実装する方法を、実際のコード例とともに解説します。

コード例

以下は、CSSでチャットメッセージを作成するための完全なコードです。

<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
   body {
      margin: 0 auto;
      max-width: 800px;
      padding: 0 20px;
      font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
   }
   .message {
      font-size: 18px;
      font-weight:500;
      border: 2px solid #dedede;
      background-color: #55e4a8;
      color:rgb(0, 0, 0);
      border-radius: 12px;
      padding: 10px;
      margin: 10px 0;
   }
   .darker {
      border-color: #ccc;
      background-color: rgb(111, 25, 182);
      color:white;
   }
   .message::after {
      content: "";
      clear: both;
      display: table;
   }
   .profilePic{
      width: 100%;
   }
   .message img {
      float: left;
      max-width: 60px;
      width: 100%;
      margin-right: 20px;
      border-radius: 50%;
   }
   .message img.right {
      float: right;
      margin-left: 20px;
      margin-right:0;
   }
   .timeStampRight {
      float: right;
      color: rgb(0, 0, 0);
      font-weight: bold;
   }
   .timeStampLeft {
      float: left;
      color: rgb(255, 255, 255);
      font-weight: bold;
   }
</style>
</head>
<body>
<h1>Chat Messages Example</h1>
<div class="message">
<img class="profilePic" src="https://i.picsum.photos/id/295/200/200.jpg">
<p>Hello. How are your holidays going?</p>
<span class="timeStampRight">9:00</span>
</div>
<div class="message darker">
<img class="profilePic" src="https://i.picsum.photos/id/255/200/200.jpg">
<p>They are going pretty good.Thanks for asking!</p>
<span class="timeStampLeft">9:05</span>
</div>
<div class="message">
<img class="profilePic" src="https://i.picsum.photos/id/295/200/200.jpg">
<p>Are you visiting somewhere in holidays?</p>
<span class="timeStampRight">9:07</span>
</div>
<div class="message darker">
<img class="profilePic" src="https://i.picsum.photos/id/255/200/200.jpg">
<p>Yes! Thinking of going to Disneyland.</p>
<span class="timeStampLeft">9:10</span>
</div>
</body>
</html>

出力結果

上記のコードをブラウザで開くと、次のように表示されます。

CSSでチャットメッセージを作成する方法をわかりやすく解説

コードのポイント解説

1. メッセージの基本スタイル

.message クラスでは、border-radius: 12px を指定して角丸の吹き出し形状を作り、paddingmargin で余白を調整しています。背景色を変えるだけで、会話アプリらしい見た目になります。

2. 自分と相手のメッセージを色分け

.darker クラスを組み合わせることで、自分のメッセージには紫色の背景と白い文字を適用できます。送信者と受信者を視覚的に区別でき、会話の流れがひと目で分かります。

3. プロフィール画像の配置

画像には float: left を指定してメッセージの左側に配置し、border-radius: 50% で円形のアバターにしています。.right クラスを使えば、画像を右側に配置することも可能です。

4. floatの解除(clearfix)

.message::aftercontent: ""clear: bothdisplay: table を指定することで、floatによるレイアウト崩れを防いでいます。これは定番のclearfixテクニックなので、覚えておくと便利です。

5. タイムスタンプの表示

.timeStampRight.timeStampLeft を使い分けることで、メッセージの右側または左側に送信時刻を表示できます。文字色を背景に合わせて変えるのがポイントです。

このように、floatと擬似要素を組み合わせるだけで、JavaScriptに頼らずCSSのみで自然なチャット画面を作れます。ぜひ自分のプロジェクトに応用してみてください。

  1. CSSだけで作る!Webサイトの「About Us」ページの作り方【サンプルコード付き】

    「About Us(私たちについて)」ページは、企業の理念やチームメンバーの顔ぶれを訪問者に伝えるために欠かせないページです。本記事では、HTMLとCSSだけを使い、メンバーごとのプロフィールカードを並べたスタイリッシュなAboutページを作成する方法を、実際のコード例とともにわかりやすく解説します。 作成するページの概要 今回作成するAboutページには、以下の要素が含まれています。 濃い紫の背景に白文字の見出し(h1)を配置したページヘッダー メンバーごとの「顔写真・名前・役職・Contactボタン」をまとめたカード型デザイン 画面幅650px以下でカードが縦に並び替わるレスポンシブ対応

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

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