質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

1回答

159閲覧

960px 幅でイメージソースを用いて作成したMenuの上下を100%の水平線で挟んで表示させることは可能ですか?

ft_ft

総合スコア9

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2020/01/09 05:16

前提・実現したいこと

960px 幅でイメージソースを用いて作成したMenuの上下を100%の水平線で挟んで表示させることは可能ですか?

例えば、下記のサイトのように、メニュー自体に色をつけることはできますが、このメニューの色を変えずにメニューの上下に水平線をいれたいです。
http://sakichin.com/chapter03/chapter03_step01_03.html

イメージを使わないで下記のようなHTMLのリストのみでメニュー作成した場合はhrタグでメニューを挟むだけで、想定通りに表示されています。

<div class ="select"> <li><a href="homepage.html">Homeム</a></li> <li><a href="page/About_This_Site.html">About this site</a></li> <li><a href="contact.html">Contact</a></li> <li><a href="JoinUs.html">JoinUs</a></li> <li><a href="Gallery.html">Gallery</a></li>

発生している問題・エラーメッセージ

hrで水平線を引くと、メニューの上の部分は想定どおり表示されますが、メニュー下にhrを設定すると、メニュー画面の最後のイメージ(Gallery)の後ろから水平線が始まり、幅が100%になりません。

<br>で改行すると、一応は下も100%で表示されるようになりましたが、余計なスペースがはいってしまい見た目が良くないです。

該当のソースコード

HTML:(メニューの字は192px幅でイメージを作成し、5つで960px幅で丁度収まるように作成しています。高さは100pxで作成しています。)

<div class ="menu"> <hr class="gold_line"/> <div class ="select"> <li><a href=""><img src="HOME_Logo.png"></a></li> <li><a href=""><img src="About_Logo.png"></a></li> <li><a href=""><img src="Contact_Logo.png"></a></li> <li><a href=""><img src="JoinUs_Logo.png"></a></li> <li><a href=""><img src="Gallery_Logo.png"></a></li> </div> </div> <hr class="gold_line"/>

CSS:
.menu{
width:100%;
height:100px;
}

.select{
margin:0 auto;
padding:0px;
width:960px;
}

.select li{
float:left;
list-style-type:none;
font-size: 20px;
}

.gold_line{
border-color:gold;
border-width:0.5px;
margin:0;
padding:0;
}

試したこと

2つ目のhrの前に<br>を入れると、一応は100%水平線で挟まれるようになりましたが、余計なスペースが入ってしまい。想定の見た目になりません。

補足情報

説明がわかりにくいかもしれませんが、よろしくお願いいたします。
説明が不十分な点はご指摘頂けましたら助かります。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

hr は削除して、border-top border-bottom に色を付けるのが簡単でしょう。

css

1.menu{ 2 width:100%; 3 height:100px; 4 border-top: 1px solid gold; 5 border-bottom: 1px solid gold; 6}

投稿2020/01/09 05:41

hatena19

総合スコア33715

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ft_ft

2020/01/09 08:45

ありがとうございます!完全に解決できました!! そして自分の頭の固さに落ち込みますね。 2日くらい悩んでたのですが、質問して良かったです。
hatena19

2020/01/09 08:53

ついでなので補足しておくと、 float:left; で横並びにするのはもう古い手法です。今回のように後の要素に影響を与えるのでCSSが複雑になりがちです。 flexboxで横並びにすると後に影響を与えないし、いろいろ融通がきいてCSSがシンプルになります。 今回の場合は、select に display: flex; を設定すれば横並びになり、hr も幅100%になります。
ft_ft

2020/01/09 09:00

float: leftは古いのですね! 勉強中なので、いろんなサイトからのコードを切り貼りしており、FloatとFlexboxが混在したりしていました。これからはflexboxに統一して作成してみます。 丁寧にいろいろありがとうございます!!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問