![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
質問初投稿で、現在webデザインを勉強中の者です。
あまり慣れていないので文章の拙さはご容赦ください。
現在自主制作中のWebサイトがあるのですが、
ナビゲーションをposition:fixedで固定に画面の下に配置するように設定しています。
そのまま上部に画像を配置しようと、margin-left;などで調節していたのですが、
ナビゲーションの位置がズレてしまい不自然な空白や、ナビゲーションそのものが消えるという状態になってしまいました。
margin-leftを1pxでも入れると右端から消えてしまいます。
paddingやposition:absoluteなどの別の方法も試してみましたがmarginと同じ状態になってしまいます。
もしかしたら別の画像を上に配置しているので、それが原因かもしれません。
どうしても自分では解決できないので、解決方法を教えていただきたいです。
画像はmargin-leftに数値を入力した時のものです。
#footer
{
margin: 0px;
padding: 0px;
position: fixed;
left: 0%;
bottom: 20px;
width: 100%;
height:44px;
}
#item{
margin-left:34px;
margin-right:34px;
margin-top:34px;
}
#fruits{
margin-left:34px;
}
![「marginとナビゲーションの位置がずれ」の質問画像](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/c/1826385_5497cb411af63/M.jpg)
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
htmlソースがわからないので、何が#footerで何が#itemなのか?など、全くわからず想像の域を出ませんが、
>margin-leftを1pxでも入れると右端から消えてしまいます。
という現象が起きるという事は、もしかしたら#footerのposition:fixedとは関係ないのではないでしょうか?
単純に「1px」幅が大きくなる事によって、画像を配置している親ボックスの幅より内容物のトータル幅が大きくなってしまい、溢れて内容物の最後の画像が下の段に移動してしまっているのではないかと考えました。
並べる画像や親ボックスに、paddingやborderなどを指定していませんか?paddingやborderは幅(width)にプラスされてしまいます。
例えば、画像が
width : 100px;
padding : 3px;
border : 1px solid black;
等とCSSで指定されていたら、この画像を配置するのに必要なwidthは108pxとなります。
(画像自体の幅="100px"+左右の余白"3px×2=6px"+左右のボーダーライン"1px×2=2px")
また、親ボックスにpaddingが指定されている場合もトータル幅からpadding分を引かないと溢れてしまいます。
この辺の解釈or計算ミスではありませんか?
と…、想像からお返事してみましたが、的外れになる可能性も存分にありますがどうでしょう?
的外れだった場合…
それほど難しい質問ではなさそうですので、htmlも質問文に追加すると的確な答えが得られると思いますよ。各IDやクラスを何に対応させているのか?positionの親要素等がわからないとこの質問に的確な答えは返せないと思います。
この回答への補足
情報不足で申し訳ないです;
htmlの記述はこうなっております。
別のページを制作している時は問題無かったのですが、
全体のmarginで調節してしまっているのが原因な気がします・・・。
見やすいように調節してありますのでご了承ください。
<div class="footer">
<a href="***.html"onmouseout="MM_swapImgRestore()"onmouseover="MM_swapImage('home','','***.jpg',1)"><img src="***jpg" alt="home" name="home" width="210" height="63" border="0" id="home" /></a>
<a href="***.html" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('about','','***.jpg',1)"><img src="***.jpg" alt="about" name="about" width="210" height="63" border="0" id="about" /></a>
<a href="#" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('***','','***.jpg',1)"><img src="***.jpg" alt="fruits"
name="fruits" width="210" height="63" border="0" id="fruits" /></a>
<a href="#" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('***','','***.jpg',1)"><img src="***.jpg" alt="recipe" name="recipe" width="210" height="63" border="0" id="recipe" /></a>
<a href="#" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('***','','***.jpg',1)"><img src="***.jpg" alt="onlineshop" name="onlineshop" width="210" height="63" border="0" id="onlineshop" /></a>
<a href="#" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('access','','***.jpg',1)"><img src="***.jpg" alt="access" name="access" width="210" height="63" border="0" id="access" /></a>
</div>
<div id="item">
<img src="***.png" width="500" height="54" alt="おすすめ商品" />
</div>
<div id="fruits">
<a href="#" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('***','','img/***jpg',1)"><img src="***.jpg" alt="***" name="***" width="297" height="147" border="0" id="***" /></a><a href="#" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('***','','***.jpg',1)"><img src="***.jpg" alt="***" name="***" width="297" height="147" hspace="15" id="***" /></a>
</div>
No.1
- 回答日時:
スタイルシートと言うよりHTMLの文書構造自体がおかしいのでは???
書かれている一意セレクタを見る限り、デザインのためにHTMLを書かれているように見受けられます。
それでは、スタイルシートを導入して「文書構造とプレゼンテーションの分離」をする意味が全くなくなってしまいます。
#footerだと、HTML内にひとつしか書けませんが、footerは一塊の完結した記事には必ず存在すると思われますから、classセレクタでfooterと指定するほうが良いです。
ナビゲーションですからfooterには書かなくて良いものです。footerには他のページへのリンクはあるのが普通ですから・・
positionをstatic以外に指定すると、その子孫要素はその位置を基準にします。
。。正確にはブロック要素は直近のstatic以外の親コンテナブロックを基準にします。
セレクタは基点となるセレクタから書き始めましょう。
[例]
⇒ナビゲーションリストを様々にデザインしてみよう。( http://www.ichiya.com/WebService/Howto/sample/HT … )
で、ブラウザの表示メニューからスタイルシートへ進み、[ウィンドウの下部固定下]を選択した状態を希望されているのだと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- オープンソース cssで中央寄せ 1 2023/05/19 06:25
- HTML・CSS ヘッダーの画像にメインエリアがかぶってしまいます 1 2022/11/28 14:06
- HTML・CSS 吹き出し 下記の吹き出しのスタイルシートについて 下記のスタイルシートは左側にアイコンがでる使用にな 1 2022/11/12 17:55
- PHP style.cssのjQuery条件付きcssが機能しない 4 2022/07/17 18:27
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/30 09:10
- JavaScript vertical sliderをautoplayしたい 2 2022/08/25 14:47
- HTML・CSS 書籍を見つつサイト造りの練習をしているのですが、見た目が一致しません 2 2022/11/28 15:00
- HTML・CSS htmltとcssのコードで 1 2022/11/26 13:37
- JavaScript ソースコードのいじる場所が分かりません。 1 2022/12/23 02:06
- その他(プログラミング・Web制作) 物理の斜方投射で目盛りに数値を入れたい 2 2023/05/27 06:32
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
htmlの文字が縦書きになる
-
footer を横幅いっぱいに広げる...
-
W3Cのソースコードの検証サービ...
-
【HTML&CSS】フッター下部の余...
-
【HTML】【CSS】【Swiper】 元...
-
widthやheightの数値に単位(px...
-
画像イメージの上下左右、欲し...
-
<li>の黒い点を消したい。
-
CSS テキストフィールドの文字...
-
css初心者 フレックスボックス...
-
HTMLのiframeの入れ子について
-
背景が下まで表示されないんです。
-
CSSのposition値の上書き(打消...
-
marginとナビゲーションの位置...
-
定義リストに下線をつけたいと...
-
iPhoneのSafariで動くCSSを書き...
-
CSSでボックスのheightが0になる
-
CSSがなぜかfont-sizeだけ効か...
-
CSSを使ってウェブサイトがペー...
-
CSSで指定した背景画像にリンク...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
htmlの文字が縦書きになる
-
widthやheightの数値に単位(px...
-
画像イメージの上下左右、欲し...
-
css初心者 フレックスボックス...
-
CSSでボックスのheightが0になる
-
CSS、width100%でもできる余白
-
CSS:animation開始位置の設定
-
スクロールボックスを中央に配...
-
form input テキストを上下中央...
-
表示倍率を変えるとレイアウト...
-
W3Cのソースコードの検証サービ...
-
<div>と<div>の間の10px程の...
-
CSSで背景画像を一番下にもって...
-
CSSがなぜかfont-sizeだけ効か...
-
table周辺の隙間をなくしたい。
-
footer を横幅いっぱいに広げる...
-
【CSS】ヘッダーの高さが不明の...
-
CSS3で角丸写真にシャドーを付...
-
定義リストに下線をつけたいと...
-
Media Queries 4 で 非推奨とな...
おすすめ情報