こんにちは。
WEBページ作成の初心者で、CSSとHTMLを使ったちゃんとしたHTMLを書き始めてからまだ3~4ヶ月といったところの者です。
(高校一年です)
質問内容は題のとおりです。
現在の状況を簡単に説明すると、
HTMLの記述がヘッダ⇒左メニュー⇒真ん中のコンテンツ⇒右カラム⇒フッタ
という感じになっています。
で、左メニューとコンテンツと右カラムにフロートを設定してます。
↑の一番の問題点は、h1タグの次にh3タグが着てしまうことだと思います。
そこで、これじゃまずいと思い、TOPページからいじり始めました。
しかし、この方法でよいのかがわからないので、すべてのページに反映する前に質問させてください。
http://wingnovel.web.fc2.com/
↑ここのサイトです。
TOPページのみ(と作者についてのページ)は、コンテンツを『左右のmarginをautoに指定』してセンタリングし
左右のカラムをpositionプロパティでうまく持ってきています。
しかし、これだと問題があり、コンテンツのたての幅が左右のカラムよりも短いと、左右のカラムがフッタに突き刺さってしまいます。。。(作者についてのページが若干そうなっています…実際にはフッタの前に広告があるのでたいした問題ではなさそうですが)
ただ、実際のところ、小説の長さが左右のカラムよりも短いということはありえなさそうなので…このサイトに関してはこの方法でも大丈夫だと思うのですが、他のサイトに流用できそうにもないので…
他にも、SEO的に[最悪]という点がこのサイトにおいてありましたら、教えていただけないでしょうか?
ひとつきになるのですが、h1のような重要なタグに画像を指定してしまうのは大丈夫なのでしょうか?alt属性はもちろん指定してあるのですが…
<h1><img src=/date/**.png" alt="**" width="**" height="**"></h1>という感じになっているはずです…
なにかよい方法を教えていただけないでしょうか。
No.2ベストアンサー
- 回答日時:
なら、実際に初歩的なサンプルを、スマホ・幅広ディスプレイ対応、印刷時は別のスタイル。
・・もっとも基本的なヘッダー・3カラムのセクション・フッターの5カラム構成です。
左右に来るブロックが本文ブロックより長くなる可能性があれば、本文ブロックにmin-heightを指定しておけば良いです。
<!doctype html>
<head>
_<meta charset="utf-8">
_<title>サンプル</title>
_<meta name="author" content="IRUKA">
<style media="screen">
<!--
html,body{margin:0;padding:0;background-color:gray;}
body>header,body>section,body>footer{
width:80%;min-width:480px;max-width:800px;
margin:0 auto;
background-color:silver;
}
h1,h2,h3,p{margin:0 1em;line-height:1.5em;}
p{text-indent:1em;}
pre{width:90%;margin:0 auto;background-color:white;padding:0.2em;}
body>section{position:relative;min-height:400px;}
section section{margin:0 20%;min-width:0;}
#contentTable,
body>section>aside{
_position:absolute;
_top:0;
_width:19%;height:100%;
_margin:0;
_background-color:yellow;
}
#contentTable{left:0;}
body>section>aside{right:0;}
address{text-align:right;}
-->
</style>
<style media="print">
p{margin:0 1em;text-indent:1em;line-height:2em;}
</style>
</head>
<body>
_<header id="Top">
__<h1>サンプル</h1>
_</header>
_<section>
__<section id="question">
___<h2>質問</h2>
___<p>
____HTMLの記述がヘッダ⇒左メニュー⇒真ん中のコンテンツ⇒右カラム⇒フッタという感じになっています。
___</p>
___<p>
____で、左メニューとコンテンツと右カラムにフロートを設定してます。
___</p>
___<p>
____↑の一番の問題点は、h1タグの次にh3タグが<del>着て</del><ins>来て</ins>しまうことだと思います。
___</p>
___<p>
____そこで、これじゃまずいと思い、TOPページからいじり始めました。しかし、この方法でよいのかがわからないので、すべてのページに反映する前に質問させてください。
___</p>
___<p>
____しかし、これだと問題があり、コンテンツのたての幅が左右のカラムよりも短いと、左右のカラムがフッタに突き刺さってしまいます。。。(作者についてのページが若干そうなっています…実際にはフッタの前に広告があるのでたいした問題ではなさそうですが)
___</p>
___<p>
____ただ、実際のところ、小説の長さが左右のカラムよりも短いということはありえなさそうなので…このサイトに関してはこの方法でも大丈夫だと思うのですが、他のサイトに流用できそうにもないので…
___</p>
__</section>
__<section id="answer">
___<h2>回答</h2>
___<pre> <heqder>
<h1>文書の見出し<h1>
<div class="abstract">要約</div>
</header>
<section>
本文
目的
操作
結果
考察
結論やまとめ
<div class="references">参考文献</div>
<div class"contentTable">インデックス</div>
</section>
<footer>
あとがき
</footer></pre>
___<p>
____この文書構造にしたがってスタイルシートでデザインしていきますから、
___</p>
___<pre>/*本文は・・*/
body>section{position:relative;}
body>section>*{margin:0 20%;}
/* 本文中の参考文献と目次は */
section div.references,section div.contentTable{
width:20%;height:100%;
position:absolute;top:0;
}
section div.references{left:0;}
section div.contentTable{right:0;}</pre>
___<p>
____だけでよいはずです。
___</p>
__</section>
__<section id="contentTable">
___<ul>
____<li><a href="#Top">トップ</a></li>
____<li><a href="#question">質問</a></li>
____<li><a href="#answer">回答</a></li>
___</ul>
__</section>
__<aside>
___<h3>付録</h3>
___<p>
____ここには、本文と直接関係ない記事などを書いておく
___</p>
__</aside>
_</section>
_<footer>
__<h2>文書情報</h2>
__<dl class="documentHistry">
___<dt id="FIRST-PUBLISHED">First Published</dt>
___<dd>2005-06-10</dd>
___<dt id="LAST-MODIFIED">Last Modified</dt>
___<dd>2005-06-10 12:00:00 (JST)</dd>
__</dl>
__<address>© ORUKA1951 2001 - 2004 All Rights Reserved mailto:*****</address>
_</footer>
</body>
</html>
No.1
- 回答日時:
SEOとは、検索エンジンがそのページの内容を正確に把握できるよう、その文書構造をマークアップすることに他なりません。
そもそもHTMLは、それを構成する要素をタグを使ってマークアップするものですから・・デザインは一切考えないというか、最初にメモ帳だけで書かれた文章を作って御覧なさい。そうすれば
[論文]でしたら・・
文書の見出し
要約
本文
目的
操作
結果
考察
結論やまとめ
参考文献
インデックス
あとがき
が定型ですよね。それが、他の分野の文章であっても基本的には同じはずです。そして、それぞれの要素をタグを使ってマークアップすることになります。HTML5では、文書構造をより明確にするため新しい要素 ( http://standards.mitsue.co.jp/resources/w3c/TR/h … )が加わったので
<heqder>
<h1>文書の見出し<h1>
<div class="abstract">要約</div>
</header>
<section>
本文
目的
操作
結果
考察
結論やまとめ
<div class="references">参考文献</div>
<div class"contentTable">インデックス</div>
</section>
<footer>
あとがき
</footer>
とかね。HTML4.01でしたら、
<div class="heqder">
<h1>文書の見出し<h1>
<div class="abstract">要約</div>
</div>
<div class="section">
・・・【中略】・・・
</div>
<div class="footer">
あとがき
</div>
これをLynxで見てみます。
『ほとんどの検索エンジンのスパイダーには Lynx で見えるようにサイトが映ります ( http://support.google.com/webmasters/bin/answer. … )』
※検索エンジン最適化はここまで・・
この文書構造にしたがってスタイルシートでデザインしていきますから、
/*本文は・・*/
body>section{position:relative;}
body>section>*{margin:0 20%;}
/* 本文中の参考文献と目次は */
section div.references,section div.contentTable{
width:20%;height:100%;
position:absolute;top:0;
}
section div.references{left:0;}
section div.contentTable{right:0;}
だけでよいはずです。
HTMLも、後で見直しても、人が見ても、検索エンジンが見てもわかりやすいですよね。検索エンジンはこれらのclass名は理解してますよ。
もちろんスタイルシートもHTML見なくても、参考文献やインデックスが、どのようにデザインされているかがわかるでしょう。
><h1><img src=/date/**.png" alt="**" width="**" height="**"></h1>という感じになっているはずです…
Lynxで見れば一目瞭然・・・
<h1><img src=/date/**.png" alt="見出し" width="**" height="**"></h1>
もちろん、その画像に意味がないのでしたら
<h1>見出し</h1>
としてマークアップして、スタイルシートで画像を指定するほうが良いでしょう。
回答ありがとうございました。
div class="section"の中に左右カラムを記述するということですが、
なんか、上のソースだとおかしくなる気が…
ちょっと書いてみたんですが、うまくいかないです…
あと、左右のカラムにheight:100%;を設定すると、フッターを突き抜けてページの一番下まで伸びますね…
どうすればいいんでしょうか?
Lynxは以前インストールしたので使ったことはありました。
確認してみたところ、画像に相当する部分にちゃんとalt属性の内容が表示されていました。
画像に意味はないといえばないです…
単なるタイトル画像なだけですが、文字列を記入するとそれが表示されてしまいますが、その文字列を見えなくすると(インデントを-1000文字にしたり)それはそれでスパム扱いにならないかな・という情報がありましたので…
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- MySQL PHPとMySQLを使った掲示板の作り方 1 2022/06/02 13:00
- HTML・CSS HTMLとcssでページを作っています。右図のような形にしたいのですが、margin topで指定す 3 2023/06/08 23:39
- その他(プログラミング・Web制作) google formsを使ったタスク依頼フォーム作成におけるご相談 1 2023/06/22 15:55
- HTML・CSS ヘッダーの画像にメインエリアがかぶってしまいます 1 2022/11/28 14:06
- 神社・寺院 御朱印帳!やってはいけないこと!? 2 2023/02/22 05:51
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- その他(プログラミング・Web制作) google formsで回答者をスプレッドシートに記載する方法 1 2023/06/23 11:22
- HTML・CSS テキストを画面の真ん中に配置したいです。 2 2022/11/25 16:11
- HTML・CSS トリミングで表示した画像をクリックで元どおりにしたい 3 2022/12/16 18:49
- docomo(ドコモ) 商品購入等のWeb口座振替。(ドコモ) 1 2022/04/14 01:17
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
htmlのolやulなどlistにtitleや...
-
div要素が重なってします
-
HTML属性での「""」 「''」違い
-
<div id="container">の使いか...
-
一括で全体を右にずらす
-
divとpの使いわけ
-
1時間30分を簡単に表したいで...
-
divを追加すると下に隠れてしまう
-
複数のボタンを等間隔に、かつ...
-
スペースを使わず文字位置を揃...
-
インラインフレームのページ内...
-
ブラウザの表示幅で100%指定が...
-
iframeを使わずに上下50%ずつに...
-
body>div{}の意味を知りたい
-
html の divとtable の役割
-
hタグの右横に画像を表示
-
divタグの名前の付け方
-
reuterのScraypingで不思議な現...
-
<DIV> と </DIV> の間が空です。
-
HTMLのJIS規格について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
htmlのolやulなどlistにtitleや...
-
div要素が重なってします
-
HTML属性での「""」 「''」違い
-
複数のボタンを等間隔に、かつ...
-
ヘッダーとフッターだけ背景を...
-
html の divとtable の役割
-
<div id="container">の使いか...
-
divとpの使いわけ
-
min-heightとheightの違いについて
-
HTML5 iframe の代わり
-
divの中に外部のHTMLを埋め込む
-
3カラムレイアウトで「常に残り...
-
ヘッダーを左右に二分割する方...
-
画面を縮小するとカラムが落ち...
-
reuterのScraypingで不思議な現...
-
htmlの見出しタグ(<h1>)の次...
-
1サイト内にHTML5とXHTMLが混在...
-
inline-blockをネストすると表...
-
html5でheaderの中にnav
-
<!-- #BeginLibraryItemとは
おすすめ情報