生活情報オンライン

ITエンジニアが役立つ情報を発信します。

HTML5/CSS3 だけで「吹き出し」を作る方法

今回の記事では、HTML5/CSS3 だけで「吹き出し」を作る方法をご紹介します。


記事下にあるソースコードをコピー&ペーストすると、このような「吹き出し」が出来ます。画像を使うよりも軽量かつサイズ操作が簡単なのでおススメです。


ここに吹出に入れたい文章を入力してください。
吹出内の文章は複数行にすることもできます。



上記の吹き出しにも書いてあるように、span要素の balloonMsgクラスに表示させたい文字を入力するだけでサイズ操作が自動で行われます。


それではソースコードの公開です。

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>吹き出し</title>
<style>
.formBalloon {
    padding-bottom: 13px;
    display: block;
}
.formBalloon .formBalloonContent {
    border-radius: 3px;
    padding: 6px 5px;
    width: auto;
    position: relative;
    color: #fff;
    background: #101177;
    font-size: 12px;
    box-shadow: 0px 0px 6px #888;
    -moz-box-shadow: 0px 0px 6px #888;
    min-width: 210px;
}
.formBalloon .formBalloonArrow {
    width: 15px;
    height: 15px;
    position: absolute;
    bottom: 0;
    left: 20px;
    z-index: 1;
}
.formBalloon .formBalloonArrow div {
    margin: 0 auto;
    display: block;
    height: 1px;
    background: #101177;
    box-shadow: 0px 2px 3px #888;
    -moz-box-shadow: 0px 2px 3px #888;
}
.formBalloon .formBalloonArrow .line10 {
    width: 19px;
}
.formBalloon .formBalloonArrow .line9 {
    width: 17px;
}
.formBalloon .formBalloonArrow .line8 {
    width: 15px;
}
.formBalloon .formBalloonArrow .line7 {
    width: 13px;
}
.formBalloon .formBalloonArrow .line6 {
    width: 11px;
}
.formBalloon .formBalloonArrow .line5 {
    width: 9px;
}
.formBalloon .formBalloonArrow .line4 {
    width: 7px;
}
.formBalloon .formBalloonArrow .line3 {
    width: 5px;
}
.formBalloon .formBalloonArrow .line2 {
    width: 3px;
}
.formBalloon .formBalloonArrow .line1 {
    width: 1px;
}
.balloonMsg {
    padding-bottom: 1px;
    display: block;
    line-height: 1.4;
    text-indent: 0;
}
</style>
</head>
<body>
<div class="formBalloon" style="position: absolute; z-index: 2;">
  <div class="formBalloonContent">
    <span class="balloonMsg">
      ここに吹出に入れたい文章を入力してください。<br>
      吹出内の文章は複数行にすることもできます。
    </span>
  </div>
  <div class="formBalloonArrow">
    <div class="line10"></div>
    <div class="line9"></div>
    <div class="line8"></div>
    <div class="line7"></div>
    <div class="line6"></div>
    <div class="line5"></div>
    <div class="line4"></div>
    <div class="line3"></div>
    <div class="line2"></div>
    <div class="line1"></div>
  </div>
</div>
</body>
</html>