【CSS】【HTML】横並びメニューについて
ホームページに上画像のような4つボタンのある横並びメニューを作りました。
ぼかしている部分と赤と黄色の棒を背景とし、その上にボタン部分となる各4つの画像を重ねています。
しかし4つの画像をピクセルで位置のの指定をしているため、ページ全体をセンタリングすると、各ボタン画像が背景について行かず下の画像のようになります。
ページ全体をセンタリングした場合も上画像のようにするためにはどうしたら良いのでしょうか?
ページは1000px程度で考えています。
さらにこのページを1920pxまで横に伸ばした場合に余白部分に赤と黄色の棒部分を表示させる方法があれば教えていただきたいです。(メニューから端まで同じデザインが続く感じ)
イメージはhttp://www.kumamoto-med.jrc.or.jpのホームページのような感じです。
ちなみにボタンはa:hoverで切り替えています。
No.2ベストアンサー
- 回答日時:
ソース拝見しました。
画像を横並びにする方法は色々ありますが、position: absolute;を使うケースはほとんどありません。
position: absoluteを使うにしても、position:relativeで、起点となる親要素を指定するのが重要です。
今回、画像がずれるという現象も、それに起因しています。
(1) floatとclearfixを用いる方法(floatとその解除)
(2) インライン要素に変えて並べる方法(ブロック要素とインライン要素)
既に古いですが、古いと言っても、この2つがレイアウトの基本です。
これができなければCSSを自身で記述してWebサイトを作るのは無理です。
ただ、今どきは、CSSフレームワークといって、CSSを自身で記述できなくとも、
特定のルールに沿ってクラス名を付与していけば、簡単にレイアウトが組める方法がありますので、
そちらのやり方をオススメします。
"Bootstrap 使い方"で検索してみてください。
こちらをぜひ使いこなして、カッコいいサイトを作ってみてください。
No.1
- 回答日時:
こんばんは。
HTML/CSSの書き方は、10人いれば10通りあります。
画像を使うといっても、<img>なのか、background: url(...) としているのかで、全然記述が変わってきますので、
質問者さまの質問の意図に沿ったソースは書けません。
こういう質問はご自身のソースを添付しておくと、回答が付きやすいですよ(HTML/CSSとも)。
現象としては、position: absoluteを使っているのかな??(推測です)
だったら親要素である<li>に、position:relativeを指定していますか??
あるいは、top, leftなどの指定をしないままだと、予期せぬ表示になります。
(当たり前だ!ということならすみません)
レスポンシブじゃないなら、やはり画像はbackgroud: url(...)で読み込んで、
repeat-xを付けてやるか、
あらかじめ画像のサイズを合わせておくかするのが、
昔ながらのやり方ではないですか??
もしかして、hoverしたときに、元の赤帯を上下にはみ出して画像を表示させるとしたら、
top: -〇〇pxとか、margin-top: -〇〇pxとかしてはどうでしょうか。
その辺も果たして、box-sizing: border-box;などリセットしているか否かで、回答が変わってきます。
赤帯を画面両端まで伸ばすのは、<ul>をラップする要素の幅と、その全ての親要素にwidth:100%を指定してください。
そしてbackgroudプロパティで背景画像をrepeat-xをつけて読み込みます。
ここまで、回答になった部分はありましたでしょうか??
質問者さんの求めるデザインは、画像を使われなくても、CSSだけでも結構できます。
参考までに、僕が似せて作ったデザインのソースを記述しておきます。
コピペしてブラウザで見ていただけたら幸いです。
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Test Page</title>
<style>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
ol, ul {
list-style: none;
}
.container {
width: 100%;
margin: 120px auto;
}
.nav-wrap {
width: 100%;
background: linear-gradient(#e77, #c33);
}
.nav {
width: 960px;
margin: 0 auto;
}
.nav-item {
position: relative;
float: left;
width: 192px; /*960 / 5*/
height: 60px;
line-height: 60px;
font-size: 1.5em;
text-align: center;
}
.nav-item a {
color: #fff;
text-shadow: 1px 1px 3px #333;
text-decoration: none;
}
.nav-item:hover {
background: linear-gradient(#f88, #d44);
}
.nav-item:hover::before {
content: "";
position: absolute;
top: -6px; /*border分*/
left: 0;
width: 180px; /*親width - border分*/
height: 100%;
border: 6px solid #dd4;
border-radius: 4px;
}
.nav-item:hover a {
color: #ffe;
}
.clearfix {
zoom: 1;
}
.clearfix:before, .clearfix:after {
display: table;
content: "";
}
.clearfix:after {
clear: both;
}
</style>
</head>
<body>
<div class="container">
<div class="nav-wrap">
<ul class="nav clearfix">
<li class="nav-item"><a href="#">Menu1</a></li>
<li class="nav-item"><a href="#">Menu2</a></li>
<li class="nav-item"><a href="#">Menu3</a></li>
<li class="nav-item"><a href="#">Menu4</a></li>
<li class="nav-item"><a href="#">Menu5</a></li>
</ul>
</div>
</div>
</body>
</html>
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
<hr>の縦バージョンはありますか?
-
htmlかcssで背景の白い枠をなく...
-
lightbox2で画像を天地左右中央...
-
同じ画像 複数回使用
-
【ウェブ構築】DIVの背景を斜め...
-
画像とその下にあるテキストの...
-
【至急お助け!】チェックボッ...
-
ネスケで表示されないテーブル背景
-
CSSで背景画像をランダムに表示...
-
スクロールすると追従する画像...
-
ページごとに背景画像を変更し...
-
画像上に文字を表示するとiPhon...
-
コーディング中、右側に謎の余...
-
リストビューのTextBackground...
-
LightBoxの矢印の出し方
-
background-repeat CSS で切れ...
-
IE7の背景の移動について
-
Winで見たときfloatさせたメニ...
-
iframe内をクリックさせない方...
-
ページの上下に白い横線が入る
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
<hr>の縦バージョンはありますか?
-
画像の上にテキスト配置で、拡...
-
background-sizeの背景で最小値...
-
【Webサイト】画像が小さく表示...
-
画像とその下にあるテキストの...
-
background-repeat CSS で切れ...
-
【至急お助け!】チェックボッ...
-
iframe内をクリックさせない方...
-
lightbox2で画像を天地左右中央...
-
要素の幅をいろんな写真の幅に...
-
IMGタグで画像の繰り返し使用は…
-
background-sizeでcontainする...
-
同じ画像 複数回使用
-
コーディング中、右側に謎の余...
-
particles.jsの背景の上にテキ...
-
背景画像が半分しか表示されない
-
htmlかcssで背景の白い枠をなく...
-
LightBoxの矢印の出し方
-
画像の上に
-
gif画像でたまに背景がグレーに...
おすすめ情報
https://www.fastpic.jp/viewer.php?file=439737358 …
こちらにコードが載っております