HTMLのタグに記述する「id」と「class」は使い分けてる?使い方の違いに注意!
お店情報にGoogleマップを埋め込む
それではメインコンテンツの「お知らせ」と「メニュー」を制作しましたので、残りの「お店情報」を見ていきます。Googleマップの導入も簡単なのでぜひ押さえておいてください。
ひと昔前ならホームページに地図を表示するなら地図のイラストを作っていましたが、今ではGoogleマップの埋め込みが主流です。
こちらの「デモサイト」から実際のページを確認して頂けます。
お店情報をHTMLで構築する
まずはHTMLのコードを記述しますのでご確認ください。マップとお店の情報を横並びにする形でデザインしていきます。
index.html
- <section id="shop">
- <div class="inner">
- <div class="title">
- <h2>お店情報</h2>
- </div>
- <div class="shopWrap">
- <div class="map">
- <iframe src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d52430.6695921149!2d135.4922664590351!3d34.782868520671215!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x6000e4a6bda73c45%3A0x527cc777508a7d95!2z5aSn6Ziq5bqc5ZC555Sw5biC!5e0!3m2!1sja!2sjp!4v1630053102538!5m2!1sja!2sjp" width="800" height="600" style="border:0;" allowfullscreen="" loading="lazy"></iframe>
- </div>
- <div class="shopInfo">
- <dl>
- <dt>店舗名</dt>
- <dd>いやしのカレー サンプル</dd>
- </dl>
- <dl>
- <dt>所在地</dt>
- <dd>大阪府吹田市○○</dd>
- </dl>
- <dl>
- <dt>TEL</dt>
- <dd>06-○○○○-○○○○</dd>
- </dl>
- <dl>
- <dt>営業時間</dt>
- <dd>10:00 ~ 23:00<br>※ラストオーダー : 22:00</dd>
- </dl>
- <dl>
- <dt>店休日</dt>
- <dd>水曜日</dd>
- </dl>
- </div>
- </div>
- </div>
- </section>
タグを見てもらうとわかりますが、Googleマップは「iframe」タグの部分となります。マップを埋め込むHTMLタグはこれだけでOKです!
このコードの取得方法は次の「Googleマップの埋め込みと設定」でお話ししますので、ここではこのタグを貼り付けるだけでGoogleマップが埋め込めるようになるって事だけ理解しておいてください。
「お店情報」にもページ内リンクを設定しますのでsectionタグに「shop」のid名を付けています。今までの工程で「id」と「class」を付けてきましたが、簡単に違いを書いておきます。
1ページにひとつだけ指定できるのが「id」、1ページに複数指定できるのが「class」です。
例えばデモサイトでは「inner」というクラス名のdivをヘッダーやフッター、そしてこの「お店情報」の中など複数箇所で指定しています。
ですが「news」「menu」「shop」などのid名はそれぞれ1箇所にしか使用していません。このように同じid名は複数箇所で使用してはいけないというルールがあります。
まぁ、使い分けがイマイチわからないという方はすべて「class」で指定してもらっても構いません。ただし、ページ内リンクを設定できるのは「id」のみです。
こちらも見てください
Googleマップの埋め込みと設定
ではデモサイトと同じマップをこのページのサイズに合わせて表示してみます。
このマップを表示しているのが下記のiframeタグです。
- <iframe src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d52430.6695921149!2d135.4922664590351!3d34.782868520671215!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x6000e4a6bda73c45%3A0x527cc777508a7d95!2z5aSn6Ziq5bqc5ZC555Sw5biC!5e0!3m2!1sja!2sjp!4v1630053102538!5m2!1sja!2sjp" width="800" height="600" style="border:0;" allowfullscreen="" loading="lazy"></iframe>
今は「大阪府吹田市」と指定したマップなので広範囲の地図が表示されていますが、ちゃんと番地まで記述すれば指定の場所にピン付きで表示されます。
このコードを取得するのも簡単です。まずは「Google Map」のページに飛んでみてください。
そして上部にある検索ボックスに所在地を記入してその横にある虫メガネのアイコンをクリック、もしくはパソコンの「Enter」キーを押します。
これで指定の場所にピンが表示されたかと思います。次に検索ボックスの少し下の方を見ると「共有」というボタンがありますのでクリックします。すると「リンクを送信する」と「地図を埋め込む」と書かれたボックスが表示されます。
今回は埋め込みなので「地図を埋め込む」を選択して表示されるiframeタグをコピーすればOKです。この時に地図のサイズが小・中・大・カスタムサイズから選べるんですが、後で変更できるのでどれでも構いません。
Googleマップではこの他にもルート案内を記した地図の埋め込みも可能です。詳しくは「グーグルマップの埋め込み方法!ルート表示したアクセスマップも作成できる」で設定方法を紹介しています。
こちらも見てください
グーグルマップの埋め込み方法!ルート表示したアクセスマップも作成できる
お店情報をCSSで調整する
あとはお店情報のデザインをCSSで整えていきましょう。
style.css
- /* ------ shop ------ */
- #shop {
- padding-top: 80px;
- margin-top: -80px
- }
- #shop .inner {
- width: 1200px;
- text-align: center;
- padding: 80px 10px;
- margin: 0 auto
- }
- #shop h2 {
- font-size: 2.4rem;
- letter-spacing: 0.09em
- }
- #shop .shopWrap {
- font-size: 0;
- margin-top: 60px
- }
- #shop .shopWrap .map {
- width: 820px;
- vertical-align: middle;
- display: inline-block
- }
- #shop .shopWrap .shopInfo {
- width: 280px;
- font-size: 1.6rem;
- letter-spacing: 0.09em;
- vertical-align: middle;
- text-align: left;
- margin-left: 60px;
- display: inline-block
- }
- #shop .shopWrap .shopInfo dl {
- padding: 20px 0;
- border-bottom: 1px solid #c1c1c1
- }
- #shop .shopWrap .shopInfo dl:first-child { border-top: 1px solid #c1c1c1 }
- #shop .shopWrap .shopInfo dt {
- font-size: 1.3rem;
- letter-spacing: 0.09em;
- }
- #shop .shopWrap .shopInfo dd {
- font-size: 1.6rem;
- letter-spacing: 0.09em;
- margin-top: 10px
- }
- @media screen and (max-width: 768px) {
- #shop {
- padding-top: 60px;
- margin-top: -60px
- }
- #shop .inner {
- width: 100%;
- padding: 60px 4%;
- margin: 0 auto
- }
- #shop h2 { font-size: 2rem }
- #shop .shopWrap .map {
- width: 100%;
- display: block
- }
- #shop .shopWrap .map iframe {
- width: 100%;
- height: 400px;
- }
- #shop .shopWrap .shopInfo {
- width: 100%;
- margin-top: 60px;
- margin-left: 0;
- display: block
- }
- }
サインプルサイトはレスポンシブデザインで作っているため、Googleマップにもその設定をしないといけないので注意してください。
と言っても記述はめちゃめちゃ簡単で下記の1行を追加するだけです。上記のスマホデザイン部分にもこの指定があるのでご確認ください。
- iframe { width: 100% }
あとは「:first-child」の指定方法について説明すると、これは「疑似クラス」というもので同じ階層の要素を指定する際に記述します。
例えばliタグを5個記述したとします。そして疑似クラスをliタグに付けた場合、「li:first-child」で指定されるのは1つ目のliタグです。「ファースト」で一番目という意味になります。
これとは反対の意味となるのが「li:last-child」で、一番後ろのliタグが指定されます。今回はliタグを5個にしましたので5つ目のliタグという事です。
もうひとつの指定方法として「li:nth-child」というのもあります。「nth-child」の場合は後ろに具体的な値を記述して「li:nth-child(1)」とすれば「li:first-child」と同じく1つ目のliタグを指定できます。
- <ul>
- <li>「li:first-child」と「li:nth-child(1)」で指定</li>
- <li>「li:nth-child(2)」で指定</li>
- <li>「li:nth-child(3)」で指定</li>
- <li>「li:nth-child(4)」で指定</li>
- <li>「li:last-child」と「li:nth-child(5)」で指定</li>
- </ul>
記述したHTMLとCSSの確認
それでは最後に「お店情報」のHTMLとCSSを確認しておきましょう。
index.html
- <!DOCTYPE html>
- <html>
- <head>
- ~head内の記述省略~
- </head>
- <body>
- <header>
- ~headerの記述省略~
- </header>
- <main>
- ~スライダーの記述省略~
- ~お知らせの記述省略~
- ~メニューの記述省略~
- <section id="shop">
- <div class="inner">
- <div class="title">
- <h2>お店情報</h2>
- </div>
- <div class="shopWrap">
- <div class="map">
- <iframe src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d52430.6695921149!2d135.4922664590351!3d34.782868520671215!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x6000e4a6bda73c45%3A0x527cc777508a7d95!2z5aSn6Ziq5bqc5ZC555Sw5biC!5e0!3m2!1sja!2sjp!4v1630053102538!5m2!1sja!2sjp" width="800" height="600" style="border:0;" allowfullscreen="" loading="lazy"></iframe>
- </div>
- <div class="shopInfo">
- <dl>
- <dt>店舗名</dt>
- <dd>いやしのカレー サンプル</dd>
- </dl>
- <dl>
- <dt>所在地</dt>
- <dd>大阪府吹田市○○</dd>
- </dl>
- <dl>
- <dt>TEL</dt>
- <dd>06-○○○○-○○○○</dd>
- </dl>
- <dl>
- <dt>営業時間</dt>
- <dd>10:00 ~ 23:00<br>※ラストオーダー : 22:00</dd>
- </dl>
- <dl>
- <dt>店休日</dt>
- <dd>水曜日</dd>
- </dl>
- </div>
- </div>
- </div>
- </section>
- </main>
- ~JSファイルの読み込み省略~
- </body>
- </html>
style.css
- ~共通デザイン省略~
- ~headerデザイン省略~
- ~navデザイン省略~
- ~スライダーデザイン省略~
- ~お知らせデザイン省略~
- ~メニューデザイン省略~
- /* ------ shop ------ */
- #shop {
- padding-top: 80px;
- margin-top: -80px
- }
- #shop .inner {
- width: 1200px;
- text-align: center;
- padding: 80px 10px;
- margin: 0 auto
- }
- #shop h2 {
- font-size: 2.4rem;
- letter-spacing: 0.09em
- }
- #shop .shopWrap {
- font-size: 0;
- margin-top: 60px
- }
- #shop .shopWrap .map {
- width: 820px;
- vertical-align: middle;
- display: inline-block
- }
- #shop .shopWrap .shopInfo {
- width: 280px;
- font-size: 1.6rem;
- letter-spacing: 0.09em;
- vertical-align: middle;
- text-align: left;
- margin-left: 60px;
- display: inline-block
- }
- #shop .shopWrap .shopInfo dl {
- padding: 20px 0;
- border-bottom: 1px solid #c1c1c1
- }
- #shop .shopWrap .shopInfo dl:first-child { border-top: 1px solid #c1c1c1 }
- #shop .shopWrap .shopInfo dt {
- font-size: 1.3rem;
- letter-spacing: 0.09em;
- }
- #shop .shopWrap .shopInfo dd {
- font-size: 1.6rem;
- letter-spacing: 0.09em;
- margin-top: 10px
- }
- @media screen and (max-width: 768px) {
- #shop {
- padding-top: 60px;
- margin-top: -60px
- }
- #shop .inner {
- width: 100%;
- padding: 60px 4%;
- margin: 0 auto
- }
- #shop h2 { font-size: 2rem }
- #shop .shopWrap .map {
- width: 100%;
- display: block
- }
- #shop .shopWrap .map iframe {
- width: 100%;
- height: 400px;
- }
- #shop .shopWrap .shopInfo {
- width: 100%;
- margin-top: 60px;
- margin-left: 0;
- display: block
- }
- }
「お店情報」はGoogleマップの埋め込みが必要ですが、埋め込みコードを取得して貼り付けるのもCSSで設定するのも簡単です。サクッとできたかと思います。
そして次のfooter部分はさらに簡単です(笑)。ここを仕上げればトップページが完成しますのでこの勢いでやってしまいましょう。
よく読まれている記事
おすすめの記事
電験三種の「理論」で重要な公式一覧!問題を解くのに必要な公式をご紹介
電気主任技術者
ConoHa WINGは初心者にオススメのレンタルサーバー!特徴と料金プランは?
サーバー・ドメイン
FTPソフトで悩んだらコレ!初心者でも簡単に操作できるFTPソフトを3つご紹介
サーバー・ドメイン
レンタルサーバー会社を一覧でご紹介!ホームページに合わせたサーバー選び
サーバー・ドメイン
独学で第二種電気工事士の技能試験に合格した時の勉強方法と使用した工具
電気工事士
HTMLのコメントアウトって?ブラウザに表示したくない情報の書き方と注意点
HTML
「.HEIC」の画像をJPGに変換するツールをご紹介!iPhoneの写真を使う方法
用意するもの
国家資格のウェブデザイン技能検定の合格率は?独学で合格するための勉強方法
資格・試験
鬼滅の刃の和柄をCSSで表現!竈門家は市松模様のカラーパターンが豊富
CSS