コピペOK!Bloggerでスマホ対応の吹き出し会話形式の作り方

吹き出し会話形式のブログをよく見かけますよね。会話形式にすることで単純に文字を読むより、メリハリができるので、使ってみたいと思いました。スマホとPCで見やすいサイズの吹き出しになるように考慮して最終的にはこのような形でできました。

Bootstrapを使うことで、初心者でも簡単にスマホ対応の吹き出しデザインを作れます。
今回は作り方とBloogerならではの注意点等説明していきます。

準備を始めよう!Bootstrapを導入しよう

PCとスマホでアイコンや吹き出しのサイズを変更するためにBootStrapを使っています。
事前に導入してください。Bloogerの人はJetThemeというテンプレートを導入するとBootStrapが導入されていますので、最初にJetThemeのテンプレートを適用してください。
導入方法はこちら

HTMLで吹き出し構造を理解しよう

Bootstrapのグリッドシステムを使うことで、画面サイズに合わせて柔軟にレイアウトを調整できます。今回の例では、スマホサイズではアイコンを画面の1/4で吹き出しが3/4サイズにして、PCサイズでは、アイコンを画面の1/6で吹き出しが3/4、残りが余白にしています。
HTML
<div class="container">
  <!--左側の会話-->
  <div class="row left-side">
    <div class="col-3 col-sm-2 icon">
      <img alt="左のアイコン" src="★画像★" />
      <p>アイコン名</p>
    </div>
    <div class="col-9 bubble">
      <p>これは左側の吹き出しです。長い文章の場合改行されます。</p>
    </div>
    <div class="col-0 col-sm-1"></div> <!--右側のスペース-->
  </div>

  <!--右側の会話-->
  <div class="row right-side">
    <div class="col-0 col-sm-1"></div> <!--左側のスペース-->
    <div class="col-9 bubble">
      <p>これは右側の吹き出しです。</p>
    </div>
    <div class="col-3 col-sm-2 icon">
      <img alt="右のアイコン" src="★画像★" />
      <p>アイコン名</p>
    </div>
  </div>
</div>

HTMLの詳細解説

  • [col-*]:Boostrapのグリッドシステムの設定値です。画面を12分割して*の数字まで確保します。次のcol-sm-*の画面サイズ以外(つまりスマホの時)はこの値が使われます。
  • [col-sm-*]:スマホサイズより大きいの時のグリッドシステムの設定値です。
  • container:グリッドシステムを使うときの記載で会話形式の枠になります。全体で1つだけ書きます。
  • row: 1行を示します。この中に書いたものは1行に並びます。1つの吹き出しごとに書きます。
  • img src:★画像★にアイコン画像を設定します。

画像の保存先

Bloggerの画像は「MediaManager」に格納されます。アクセスしてアイコンにしたい画像のURLを調べます。直接記事に画像をコピペするとエラーになることがあるのですが、このMediaManagerには格納されていることがあります。    

CSSでデザインをカスタマイズしよう

CSSを使って、吹き出しの形、背景色、文字色など調整します。CSSはほかの方がたくさん記事にされているのでそちらを利用してもよいです。Bootstrapでレスポンシブデザインにするために幅や高さのpx指定を以下のようにしてなくしています。
    width: 70%;  
    height: auto; /* 幅に合わせて高さを自動調整 */
BloggerのCSSの反映方法はこちら。

CSS
.left-side,
.right-side {
    display: flex;
    align-items: flex-start; /* アイコンと吹き出しを上部で揃える */
    margin: 20px 0;
}
/* アイコンのスタイル */
.icon {
    text-align: center;
}
.icon img {
    width: 70%;  
    height: auto; /* 幅に合わせて高さを自動調整 */
    border: solid 1px #FFFFFF;
    border-radius: 50%;
}
.icon p {
    margin: 0;
    word-wrap: break-word;
    text-align: center;
    font-size: 1rem; /* フォントサイズを限りなく小さく設定 */
}

/* 吹き出しのスタイル */
.bubble {
    padding: 10px; /* 内側の余白を設定 */
    border-radius: 10px;
    background: #DBE6E0;
	border: 2px solid #DBE6E0;
    position: relative;
    display: flex; /* 吹き出し内の要素をフレックスで整列 */
    width: fit-content; /* 吹き出しの幅を文字列に合わせる */
    max-width: 70%; /* colの中で最大70%まで拡張 */
    word-wrap: break-word; /* 長い単語を折り返す */
    box-sizing: border-box; /* パディングとボーダーを含めて幅を計算 */
}
.bubble p {
    margin: 0; /* テキスト要素のマージンを削除 */
}
.bubble::before {
    content: &quot;&quot;;
    width: 0;
    height: 0;
    border: 10px solid transparent;
    position: absolute;
}
/* 左側表示のスタイリング */
.left-side .bubble {
    margin-left: 0px; /* アイコンとの間に余白を設ける */
}
.left-side .bubble::before {
    top: 15px;
    left: -20px;
    border-right-color: #DBE6E0;
}

/* 右側表示のスタイリング */
.right-side {
    justify-content: flex-end; /* 右側の吹き出しを右寄せにする */
}
.right-side .bubble {
    margin-right: 0px; /* アイコンとの間に余白を設ける */
}
.right-side .bubble::before {
    top: 15px;
    right: -20px;
    border-left-color: #DBE6E0;
}

レスポンシブデザインの実現

@mediaクエリを使って、画面サイズに合わせてデザインを調整できます。BootstrapのHTMLの定義で576px以下からレイアウトを変えるように設定しているのでCSSでもmax-width:576pxに設定して、CSSをカスタマイズします。画面が小さくなるので余白と文字サイズを調整しています。

CSS
/* スマホ対応のスタイル */
@media screen and (max-width: 576px) {
  .left-side .bubble {
      margin-left: 1px; /* アイコンとの間に余白を設ける */
  }
  .right-side .bubble {
      margin-right: 1px; /* アイコンとの間に余白を設ける */
  }
  .icon img{
      width: 100%;  /* モバイルでは幅を100%に */
  }
  .icon p {
    font-size: 0.8rem; /* フォントサイズを限りなく小さく設定 */
  }
}

Bloggerの特有の注意点:カバー画像

吹き出し会話形式はこれで作成できたのですが、Bloggerでは記事の一番最初の画像が記事のアイキャッチ記事になります。つまり、アイコンの画像がアイキャッチになる可能性があります。そのため、記事の先頭に最初にアイキャッチ画像を挿入して、記事には表示したくない場合は、HTMLビューで「style="display:none"」を設定して非表示にしてください。私はこの画像で記事表示が遅くなるのも嫌なので「loading="lazy"」も設定して画像読込されなくても記事が先に表示されるようにしています。

まとめ

Bootstrapを活用して、誰でも簡単に吹き出し会話形式の記事を作成できることを解説しました。HTMLの構造、CSSでのデザインのカスタマイズ、そしてBloggerへの反映方法/注意点まで、具体的な手順とコード例を交えて詳しく解説しました。分からないことがあれば気軽にコメントいただければと思います。

Next Post Previous Post
No Comment
Add Comment
comment url