
お世話になっております。
制作しているWEBで、ページ内リンクを使用しているのですが、いざリンクへ飛ばすとずれが起こり固定ヘッダーの部分と画像が被って困っています。
http://depthcode.com/2011/02/header-fixed.html
上記のサイトを参考にアンカーの位置を調整したところヘッダーに被らず画像もぴったり収まったのですが、こちらの要望としてはリンクで飛んだあとも添付画像のように画像とヘッダーの間を常に空けた状態にしておきたいのです。
どのように設定すれば良いかご教授お願い申し上げます。

No.2ベストアンサー
- 回答日時:
補足いただきましてありがとうございます。
いただいたCSSを元にHTMLを作成してみたのですが、
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitio …
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta name="keywords" content="" />
<meta name="description" content="" />
<title></title>
<style type="text/css">
<!--
#top {
margin-top: 0px;
margin-right: auto;
margin-bottom: 0px;
margin-left: auto;
padding-top: 70px;
background: red;
}
#work {
width: 840px;
margin-top: -70px;
margin-right: auto;
margin-left: auto;
padding-top: 70px;
background: green;
}
#contact {
width: 840px;
margin-top: 0px;
margin-right: auto;
margin-bottom: 0px;
margin-left: auto;
padding-top: 70px;
background: blue;
}
-->
</style>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9. …
<script type="text/javascript">
$(function(){
$('a[href^=#]').click(function(){
var speed = 500;
var href= $(this).attr("href");
var target = $(href == "#" || href == "" ? 'html' : href);
var position = target.offset().top;
$("html, body").animate({scrollTop:position}, speed, "swing");
return false;
});
});
</script>
</head>
<body>
<div id="top">top</div>
<div id="work">work</div>
<div id="contact">contact</div>
<div style="background: pink; height: 2000px;" ><a href="#top">to top</a><br /><a href="#work">to work</a><br /></div>
<div style="background: yellow;" ><a href="#top">to top</a><br /><a href="#work">to work</a></div>
</body>
</html>
このHTMLだと私の環境では、きっちりと各タグの先頭にページ内リンクできました。
(FireFox 最新版、GoogleChrome最新版、IE7~10)
この動作がshiopple様がお考えの挙動と相違無いとすると、
ヘッダーを固定するスクリプトと何か干渉している可能性がありますでしょうか・・・??(・・;)
可能であれば、現状のHTML、Javascript、CSSなどをもう少し仔細にお伝えいただければ、
解決の糸口を示すことができるかもしれません。
ご確認の程、何卒よろしくお願いいたします。
この回答への補足
お礼が遅れてしまいまして大変申し訳ございませんでした。
丁寧なご回答ありがとうございます。
現状としましては、こちらの都合でWEBサイトの制作を急がなくてはならなくなり、ページ内リンクを使わずにひとまずWEBサイトを完成させました。
ご呈示頂いたHTMLをそのまま打ち込んでみたのですが、これは何かおかしいですよね・・・?
http://sampleeeeee.web.fc2.com/sample.html
ヘッダー固定のjsが
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8 … type="text/javascript"></script>
<script type="text/javascript">
jQuery(function($) {
var nav = $('#header'),
offset = nav.offset();
$(window).scroll(function () {
if($(window).scrollTop() > offset.top) {
nav.addClass('fixed');
} else {
nav.removeClass('fixed');
}
});
});
</script>
ヘッダー部分のhtmlは
<div id="header">
<ul class="navi">
<li class="top"><a href="#top">top</a></li>
<li class="work"><a href="#work">work</a></li>
<li class="contact"><a href="#contact">contact</a></li>
</ul>
<br clear="all" />
</div>
CSSは
#header {
background-color: #143259;
height: 80px;
width: 100%;
}
ul.navi {
float: left;
position:relative;
left:50%;
list-style-type: none;
}
.navi li.top a {
display: block;
height: 30px;
width: 100px;
font-family: Arial, Helvetica, sans-serif;
font-size: 18px;
font-weight: bold;
color: #F2EBD5;
letter-spacing: 0.2em;
text-decoration: none;
text-align: center;
margin-top: 24px;
}
.navi li.top a:hover {
border-bottom: solid 5px #D98B84;
}
.fixed {
position: fixed;
top: 0;
width: 100%;
z-index: 10000;
}
となっております。
No.1
- 回答日時:
現状は、こちらの参考サイトの「CSSでアンカー位置をずらす」のように、
margin-topに負の値を設定した状態でしょうか・・・?
であれば、もう少しだけ数値を負の方向に大きく(-100px → -200px)のような形で、
微調整することで位置調整することはできませんでしょうか??
ご参考になれば幸いです。
この回答への補足
ご回答ありがとうございます。
説明しづらいので現在のCSSを記載させていただきます。
#top {
margin-top: 0px;
margin-right: auto;
margin-bottom: 0px;
margin-left: auto;
padding-top: 70px;
}
#work {
width: 840px;
margin-top: -70px;
margin-right: auto;
margin-left: auto;
padding-top: 70px;
}
#contact {
width: 840px;
margin-top: 0px;
margin-right: auto;
margin-bottom: 0px;
margin-left: auto;
padding-top: 70px;
}
仰られているように負の数値を大きくすると、空間が狭まってしまったので正の方を大きくしています。
現在この状態で、#topと#contactは正常に空間が維持されたままリンクに飛びます。
(ですが、#topもスクロールバーが一番上にある状態で#topのリンクへ飛ぶと画像部分がヘッダーと被ります)
スクロールバーが一番上にある状態で#workに飛ぶと画像が全てヘッダーと被り、
スクロールバーが一番下にある状態で#workに飛ぶとヘッダーに若干画像の上部が被るという状況です。
ちなみに下記のサイトで紹介されているjQueryを使用しています。
http://klutche.org/archives/536/
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS リンクバナーのHTMLタグ。画像を変えたり、設置位置を変えるとバナー貼付け側はどう見える? 2 2023/02/01 12:01
- その他(パソコン・スマホ・電化製品) Webページ印刷時にヘッダー・フッターをつけたい 1 2022/04/25 21:35
- HTML・CSS 画像が分割されて切り替わる、ループアニメーションが作りたい 7 2023/05/27 17:12
- その他(ブログ) シーサーブログのタイトル文字位置とブログ説明文字位置の変更方法 2 2022/09/22 20:55
- WordPress(ワードプレス) WordPressのメニューについて 1 2022/10/22 01:10
- Excel(エクセル) Excel2019 マクロを使用し画像を貼り付けした際のリンク切れについて 2 2022/11/15 16:14
- その他(ネットショッピング・通販・ECサイト) 画像の製品が欲しいのですが、 こちらの型番ならびに販売しているショップなどご存知の方がおりましたらご 2 2022/03/24 10:08
- その他(ブログ) なぜ、ホームページが削除されても、そのホームページ上の画像のリンク先がリンク切れになる場合 5 2023/07/15 10:24
- その他(クラウドサービス・オンラインストレージ) firestorage_androidスマホでダウンロードできない 1 2022/10/25 08:18
- HTML・CSS svgクリップパスの応用コーディング方法 2 2022/04/09 09:07
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
htmlの文字が縦書きになる
-
横のTableタグのヘッダを...
-
form input テキストを上下中央...
-
CSSがなぜかfont-sizeだけ効か...
-
cssで「下よせ」ってどうやって...
-
CSSと<dl><dd>で間隔をあけて1...
-
[CSS]<ul>タグのスタイル指定に...
-
画像イメージの上下左右、欲し...
-
safariでの横並びリスト(List...
-
Internet Explorer 6、7のレイ...
-
CSSで横の段組-センタリングす...
-
スタイルシートの適応のやり方
-
W3Cのソースコードの検証サービ...
-
dl,dt,ddタグでdtに対して、row...
-
この場合のCSSの記述を教えてく...
-
CSSで画面サイズを縮小するとレ...
-
ページ内リンクがずれてしまう
-
余分な縦スクロールバーが出て...
-
画像リンクの下に文字を付けた...
-
CSSで謎の空白ができてしまいま...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
htmlの文字が縦書きになる
-
widthやheightの数値に単位(px...
-
form input テキストを上下中央...
-
<div>と<div>の間の10px程の...
-
【CSS】ヘッダーの高さが不明の...
-
余分な縦スクロールバーが出て...
-
CSSがなぜかfont-sizeだけ効か...
-
css初心者 フレックスボックス...
-
W3Cのソースコードの検証サービ...
-
表示倍率を変えるとレイアウト...
-
div内に外部のurlを表示させたい
-
画像イメージの上下左右、欲し...
-
table周辺の隙間をなくしたい。
-
divで囲まれたpaddingの指定を...
-
CSSで背景画像を一番下にもって...
-
HTMLのiframeの入れ子について
-
footer を横幅いっぱいに広げる...
-
CSSでボックスのheightが0になる
-
テーブル内の画像をマウスオー...
-
スクロールボックスを中央に配...
おすすめ情報