見出しがついたボックス(パネル)を作成したい

最終更新日

ツールパネルのような形状のボックスを作成し、そのボックスの四辺の角を丸くします。一見単純なデザインですが、ちょっとしたCSSのコツがいります。

パネル作成のコツ

見出しのテキストのデフォルトCSSのマージンを「0」に

親要素に<div>、その子要素に見出しの<h2>とテキストの<p>を使用してボックスを作成しています。この構造のとき、<h2>と<p>のマージンを「0」にして、デフォルトCSSをキャンセルしておきます。そうしておかないと<h2>と<p>がくっつきません。

解説

ボックスのボーダーと角丸四辺形は、見出しとテキストで個別に設定する

ボックスを囲むボーダーと四辺を丸くする角丸四角形は、<h2>と<p>に、それぞれ個別に設定します。ボーダーと角丸四辺形も、一見親要素の<div class=”info”>に設定すればよさそうですが、それはできません。<h2>に背景色を適用すると、角丸の外まで塗りつぶされてしまうからです。

解説

サンプル

このサンプルでは、<div class=”info”>~</div>をひとつのパネルとして合計二つのパネルを表示しています。

<!DOCTYPE html>
<html lang="ja">
  <head>
    <title>サンプルページ</title>
    <meta charset="uft-8">
    <style>
      .info{
        margin-bottom:20px;
        width: 298px;
      }
      .info h2{
        margin:0;
        border: 1px solid #6bc5e2;
        padding: 5px;
        border-radius: 10px 10px 0 0;
        background:#6bc5e2;
        text-align: center;
        font-size: 18px;
        color:#ffffff;
      }
      .info p{
        margin:0;
        padding: 20px;
        border:1px solid #6bc5e2;
        border-radius: 0 0 10px 10px;
      }
    </style>
  </head> 
  <body>
    <div class="info">
          <h2>診療時間</h2>
          <p>(月)~(金)<br>
            9:00~12:00/15:00~18:00<br>
            土・日・祝日休診
          </p>
    </div>
    <div class="info">
      <h2>診療科目</h2>
      <p>内科・整形外科<br>
        皮膚科(月・水・金のみ診療)
      </p>
</div>
   </body>
</html>

実行結果

実行結果