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

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

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

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

解決済

1回答

1585閲覧

A.html(共通ヘッダー用,position;fixedで固定)がB.html(load:A.html&C.html)とD.html(load:A.html)で文字位置がずれる問題について

espil

総合スコア19

CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2020/05/14 01:57

編集2020/05/14 02:52

初心者です。宜しくお願いします。ソースは以下になります。

A.html(ヘッダー用)

<!doctype html> <html> <head> <meta charset="utf-8"> <title>A.html</title> <link href="**A.css**" rel="stylesheet" type="text/css"> </head> <body> <header> <div class="title"> <h1>title</h1> </div> <div class="menu"> <a href="**B.html**">**home**</a> <a href="**C.html**">**collection**</a> </div> </header>

** A.css**

html{
height:100%;
width: 100%;
background-image:url("〇〇.JPG");
background-size: 100%;
background-attachment: fixed
}
header{
position: fixed;
top:0%;
left:0%;
width: 100%;
height: 20%;
text-align: center;
background: white
}
.title{
color:#124334;
font-family:"Arial Black", Gadget, "sans-serif";
font-size: 150%
}
a{
margin-right: 30px;
color: black
}
div.menu{
margin-top:20px;
font-family:"Arial Black", Gadget, "sans-serif";
color: black;
font-size: 110%;
}

B.html(homeになるhtmlファイル、A.htmlのヘッダーとC.htmlのコンテンツを使用)

<html> <head> <meta charset="utf-8"> <title>B.html</title> <link href="**B.css**" rel="stylesheet" type="text/css"> <script src="jquery-3.4.1.js" type="text/javascript"></script> <script src="AAAAA.js" type="text/javascript"></script> </head> <body> <div id="A.html"></div> <div id="C.html"></div> </body>

B.css

div.C.html{
margin-top:15%;
}

B.Jquery

$(function(){
$("#A.html").load("A.html.html");
});
$(function(){
$("#C.html").load("C.html.html");
});

C.html(B.htmlのメインコンテンツ)

<html> <head> <meta charset="utf-8"> <title>C.html</title> <link href="C.css" rel="stylesheet" type="text/css"> </head> <body> <h1>Pick up title!!(画像をクリック)</h1> <div class="**iiiii**"> <a href="" class="attention"><img src="WWW.png"></a> <a href="" class="attention"><img src="XXX"></a> <a href="" class="attention"><img src="YYYY.png"></a> </div> <div class="youtube"> <iframe width="700" height="400" src="youtube></iframe> </div> </body> </html>

C.css

.iiiii{
width:100%;
height: 400px;
text-align: center;
}
.attention{
padding-left:5%;
}
.youtube{
position: relative;
text-align: center;
}
h1{
text-align: center
}

D.html(B.htmlからのリンク先のファイル、ヘッダーはA.htmlを共通)

<html> <head> <meta charset="utf-8"> <title>Collection</title> <link href="D.css" rel="stylesheet" type="text/css"> <script src="jquery-3.4.1.js" type="text/javascript"></script> <script src="AAAAA.js" type="text/javascript"></script> </head> <div id="**A.html**"></div> <body> <div class="lp-2"> <h1>Collection</h1> <a href="">コンテンツ1</a> <a href="">コンテンツ2</a> <a href="">コンテンツ3</a> <a href="">コンテンツ4</a> </div> </body> </html>

D.css

.lp-2{
margin-top:15%;
text-align: center
}
html{
width: 100%;
}

D.jQuery

$(function(){
$("#A.html").load("A.html.html");
});

//D.htmlでは読み込まない(上のA.html:ヘッダーのみ読み込む)//
$(function(){
$("#C.html").load("C.html.html");
});

問い合わせ内容

長くなりましたが
指南頂きたいこと、問題を以下に私なりにまとめます。

B.htmlのページにloadしたA.htmlの<a>からD.htmlにリンクした際に、
共通ヘッダーとしてjQueryで読み込んでいるA.htmlの要素が少しずれてしまいます。(リンク前、リンク後:以下のような感じです)
■B.html(jQueryでloadしているA.html;header)➡ D.html(jQueryでloadしているA.html:header)
リンク前:B.htmlのページ位置(header)➡          title
リンク後:D.htmlのページ位置(header)➡         title

1.この上記のようなズレを解消できる記述をご教示願います。

2.以下もしよろしければ(必須ではありません!)
よく見る企業ホームページなどで、リンクした瞬間の挙動がヘッダーは途切れることなく(一瞬消えない)固定されるのを見ますが、
毎回一瞬消えてしまうのを避ける方法をよろしければご教示願います。

以上、宜しくお願い致します。

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

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

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

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

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

Lhankor_Mhy

2020/05/14 02:32

1について、「B.htmlからD.htmlに内リンク?した際」について、詳しくお願いいたします。内リンクするとは、どのような操作ですか? 2について、Ajaxで読み込んでいるヘッダーが消えないページの例を挙げてください。
Lhankor_Mhy

2020/05/14 02:49

質問の変更拝読。 「D.htmlにリンクした際」について、詳しくお願いいたします。リンクするとは、どのような操作ですか? リンクされているテキストをクリックし、ページ移動する、という解釈で合っていますか?
espil

2020/05/14 02:56

Lhankor様 ありがとうございます。 おっしゃる通り、Bのページで(A.htmlのテキスト)をクリック➡D.htmlへ移動になります。 この時、BのページとDのページで、共通としているはずのA,htmlの位置が少しずれてしまいます。
espil

2020/05/14 02:58

Lhankor様 参考としては、ファナックのホームページのようなヘッダーです。 それにスクロールしてもの固定された状態にするイメージで取り掛かっています。
Lhankor_Mhy

2020/05/14 03:04

> ファナックのホームページ ここですか? https://www.fanuc.co.jp/ これでしたら、Ajaxを使っていません。どのページにも同じヘッダー部分のHTMLが出力されているだけです。
Lhankor_Mhy

2020/05/14 03:07

「この時、BのページとDのページで、共通としているはずのA,htmlの位置が少しずれてしまいます」とのことですが、「この時」以外は位置がずれないのでしょうか? つまり、 B→D 位置がずれる ?→D 位置がずれない という解釈で正しいですか? それともBとDのヘッダーの位置ずれは、「リンクする」操作にかかわらず常に起きているのですか?
espil

2020/05/14 03:29

>同じヘッダーの共通部分 はい、そのページです。 構造教えていただきありがとうございます。 ヘッダーを修正したとき、ページごとに同じ修正を加えなければいけなくなるということですね。 2についてAjaxやってみます! >B-D , D-B D➡Bも同じようにずれます。 リンクしていない状態で比べてみたら、ずれていました。 ➡単純ですが、スクロールバーがあるかないかの違いのようでした。 D.htmlの縦を長くし、スクロール表示にしたとこと、 B.htmlとズレがなくなりました! 1についてこんなところでかなり躓いていました。 お恥ずかしい限りです。 スクロールはページの幅に含まれないとばかり。。。 おかげ様でたどり着けました。
Lhankor_Mhy

2020/05/14 03:42

>ヘッダーを修正したとき、ページごとに同じ修正を加えなければいけなくなるということですね。 いえ、普通のWeb担はそんな手間をかけないです。 「CMS」でググってみることをおすすめします。
guest

回答1

0

自己解決

上記コメントの通り、解決しました!

投稿2020/05/14 05:17

espil

総合スコア19

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問