プロが教える店舗&オフィスのセキュリティ対策術

質問させていただきます。

http://mydesign.mods.jp/about.html

上記ページなのですが、
コンテンツが少ないページに対して、CSSでフッターを下部固定させるようにしたのですが、

コンテンツの下部20pxが表示されず、常にスクロールバーが出てしまいます。

最下部まで(残り20px分)スクロールさせたら今度は最上部20pxが表示されなくなります。

コンテンツが少ないページを全て表示させスクロールバーを出さないようにしたいです。

ご教授よろしくお願いいたします。

質問者からの補足コメント

  • ここまで丁寧に指導していただけるとは。。目からウロコの内容でした。非常に感謝しております。ありがとうございます。

    当方CSSに関しては1ヶ月前から勉強しだした初心者なので、まだ全てを理解することはできませんが、サイトを手直ししながら少しずつ理解していきたいと思います。

    つきまして。もう少し理解の幅を拡げたいので、下記別ページの添削もお願いできませんか?
    http://mydesign.mods.jp/index.html
    http://mydesign.mods.jp/trip_thailand.html

    お手すきの際で結構です。何卒よろしくお願いいたします。

    No.3の回答に寄せられた補足コメントです。 補足日時:2015/12/13 21:16

A 回答 (5件)

質問内容が理解できないのですが、


 想像するに、ページのコンテントが少ない時はウィンドウの下端に、コンテントが多い時は下に伸びるということじゃないかと。
htmlやbodyのルート要素は背景やサイズで特殊な扱いを受けますから、全体を囲む要素を用意したほうが良いでしょう。
 良く書けたHTML/CSSですが、肝心なところで、ずいぶんとおかしな間違いがあるのでそれを修正してサンプル作ってみました。

重要な点から
★ HTML5ではDIVは原則使いません。
『Authors are strongly encouraged to view the div element as an element of last resort, for when no other element is suitable. Use of more appropriate elements instead of the div element leads to better accessibility for readers and easier maintainability for authors.( http://www.w3.org/TR/2014/REC-html5-20141028/gro … )』
 「他に適切な要素がない時の最後の手段としてdiv要素を使用することが強く奨励されます。div要素でなくより適切な要素を使用することは、読者のた​​めにはより良いアクセシビリティを、作者には容易な保守性につながります。」
★divを使う場合も、そのidやclass名は文書構造を示すものにします。
 HTML4.01(1999年勧告)以来
『DIV要素とSPAN要素は、id属性及び class属性と併用することで、文書に構造を付加するため( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html4 … )』
 これは、HTML5で新しい要素が追加された理由でもありますし、いまだにこのルールは生きています。
 新しい要素( http://standards.mitsue.co.jp/resources/w3c/TR/h … )

 <div id="container">     <article>でしょう。
 <div id="header_wrap">    不要です。
 <div id="head_center">    不要です。
head_icon" clearfix current content_wrap ttl_aria center txt_aria discript mb25 bold
 ・・・・その意味では、これらはすべて失格!!!デザインを示すものではなく、文書構造を示すものにしましょう。

【サンプル】
 こんなにシンプルでメンテナンスしやすい。SEO的にも完ぺきなものになります。

★Another HTML Lint - Gateway( http://www.htmllint.net/html-lint/htmllint.html# )
 で検証済みHTML5
 ★タブは_に置換してあるので戻すこと。
 ★http:// はhttp://に置換してあるので戻す。

<!DOCTYPE html>
<html lang="ja">
<head>
<title>ABOUT|MY DESIGN</title>
<link rel="shortcut icon" href="./images/favicon.ico">
<style media="screen">
<!--
/* この部分は外部スタイルーシートにするのが通常ですが、あえてここに書きます。
  次の回答で */
-->
</style>
<style media="screen">
<!--
body>article>header nav ul li a[href="/about.html"]{
_color:red;
_/* カレントの場合のプレゼンテーションはここに書く */
}
-->
</style>
</head>
<body>
_<article>
_<header>
__<h1><a href="/index.html">MY DESIGN</a></h1>
__<nav>
___<ul><!-- ナビゲーションリンクはルートからのパスにしておくと℃の階層にも移動できる -->
____<li><a href="/index.html">TOP</a></li>
____<li><a href="/trip.html">TRIP</a></li>
____<li><a href="/works.html">WORKS</a></li>
____<li><a href="/about.html">ABOUT</a></li>
____<li><a href="/contact.html">CONTACT</a></li>
___</ul>
__</nav>
__<aside><!-- 本文と関係ないのでaside -->
___<ul>
____<li>
_____<a href="https://www.facebook.com/masaki.yamagata.3" target="_blank"><img alt="facebook" src="http://mydesign.mods.jp/images/icon_fb.png"></a>
____</li>
____<li>
_____<a href="http://instagram.com/husky0502/" target="_blank"><img alt="instagram" src="http://mydesign.mods.jp/images/icon_insta.png"></a>
____</li>
___</ul>
__</aside>
_</header>
_<section><!-- これはsection -->
__<h2>ABOUT</h2>
__<section id="Self-introduction"><!-- HTM5では、sectionの階層で構造を示す -->
___<h3>当サイトについて。<br>また当サイト制作者のプロフィール。</h3><!-- sectionひとつにつき必ずheadingひとつ -->
___<p>
____当サイトは、制作者の趣味の一つである「旅」の記録を発表する場として、またそれと同時に、写真を見てそれぞれの国の良さを少しでも感じていただき、そして旅へ興味を持つきっかけになればと思い、制作しました。
___</p>
___<p>
____また旅の記録をメインコンテンツとして、他ページではデザイナーである当方の個人もしくは仕事上でのデザインを一部掲載しております。
___</p>
__</section>
__<section>
___<h3>PROFILE</h3>
___<dl id="profile"><!-- ここは内容的に定義リスト -->
____<dt>誰それだれべぇ</dt>
____<dd>WEBデザイナー / グラフィックデザイナー<dd>
____<dd>
_____<ul><!-- 内容でない■などは入れてはならない。検索エンジンやスクリーンリーダーのことも考える-->
______<li>1980:大阪府生まれ</li>
______<li>2006:某デザイン系専門学校卒業。</li>
______<li>卒業後、グラフィックデザイナーとして、プロダクションなどで数年勤める。</li>
______<li>20代後半から海外の空気にハマり、東南アジア、中東などを転々と旅する。</li>
______<li>30代に入り、かねてから興味のあったWEBの世界へ。</li>
_____</ul>
____</dd>
___</dl>
__</section>
_</section>
_<footer>
__<p><!-- 一つの段落は切らない -->
___当サイト内に掲載されているすべての文章・画像・写真・デザインの無断転載、転用は日本の著作権法によって禁じられています。</p>
__</p>
__<ul>
___<li><a href="./index.html">TOP</a></li>
___<li><a href="./trip.html">TRIP</a></li>
___<li><a href="./works.html">WORKS</a></li>
___<li><a href="./about.html">ABOUT</a></li>
___<li><a href="./contact.html">CONTACT</a></li>
__</ul>
__<address>Copyright(C) 2015 MY DESIGN All Right Reserved.</address>
_</footer>
_</article>
</body>
</html>
    • good
    • 0

こんにちは。


まだ解決まではしていないようなので、回答させていただきます。
http://mydesign.mods.jp/about.html
拝見しました。
一応上記サイトソースを見て、同じ構造でHTMLを組みましたので、このまま下記のCSSを追加すればフッター固定できると思います。

【HTML】質問者様のサイトと同じ構造です

<div id="container">

<header> ヘッダーの内容</header>

<div id="contentWrap">コンテンツの内容</div>

<footer>フッターの内容</footer>

</div>

【CSS】
html,body{height: 100%;}

#container{
position: relative;
min-height: 100%;
height: auto !important;
height: 100%;
}
#contentWrap{
padding-bottom: 170px;
/*適宜。下部固定のフッター分の高さ確保することで、ブラウザの高さを低くした時に重なりを回避するため*/
}
footer{
position: absolute;
bottom: 0;
height: 170px;/*適宜。フッターの高さを記述してください*/
}


この方法って適当にネットで「フッター固定 CSS」とか検索でめちゃくちゃたくさん出てくるので、
そういう記事もご自身で読んでいくと、ここで質問するより納得できるのではないかなと思います。
ここの回答より、記事のほうが詳細に書いてくれていますしね。

頑張ってください。
    • good
    • 0

どのページであれ基本的なHTMLとスタイルシートの書き方は同じです。


だから、文書構造とプレゼンテーションは分離しなければならない。
例えば、
http://mydesign.mods.jp/trip_syria.html
は、文書構造的には単純なリストとして、画像をリストアップしておいて、dispaly:inline-block;ないしfloatで並べればよい。右サイドのメニューは、section内にあるべきナビゲーションリスト--目次ですから、それはabsoluteでsectionの右に配置すればよい。そのとき、先の画像リストでは右側をその分paddinbで開ければよい。

たとえば、
class="nailthumb-container square-thumb thumb mbmr10 float_left"
こんなclass名なんてつけたらだめです。全く書かなくてよいし、書いてもせいぜい"Photo"と、あとあとメンテナンスするときのために、写真だとわかればよい。float_leftとしてあるけど、異なるデザイン--block--にしたいときはどうするの??
「id属性及び class属性と併用することで、文書に構造を付加する( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html4 … )」はdivに限りません。

 また、
<!-------- 写真2段目 -------->
 こんなことしてるけど、将来写真がなくなったり増えたらどうするの?
それよりは、
CSS 画像をたくさん並べたい時の方法- Webデザイン・CSS | 教えて!goo( https://oshiete.goo.ne.jp/qa/9126616.html )
で示したサンプルのようにウィンドウ幅で並べ替えたほうが良いですね。

そうすると
<li>
 <a href="./images/trip_photo/thailand/img04.jpg"><img width="128" height="128" alt="サムセン通り界隈 / バンコク" src="./images/trip_photo/thailand/img04.jpg"></a>
</li>
の単純なリストになる。

 このほうがよほど楽です。
a要素にtitle書いてもよいが、画像のaltも多くのブラウザでチップとして表示されるのでなくてもよい。★ただし画像のaltの値は、内容の追加としての利用はできない。なぜなら画像要素には内容がないから・・
    • good
    • 0

スタイルシート部分です。



★タブは_に、URLの:// は、:// i置換してあるので戻す。
★すべてのプロパティをリセットするのは感心しません。
 可能な限りデフォルトのスタイルは活用します。

★タブレットやスマホでも横スクロールなしで利用できるはずです。
  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄

<style media="screen">
<!--
html,body{
_padding:0;margin:0;font-size:14px;height:100%;
}
body>article{
_width:100%;min-height:100%;
_position:relative;
_width:100%;max-width:1000px;margin:0 auto;
}
body>article>section{
_width:80%;
_padding-bottom:80px;
}
h1{
_height:100px;width:142px;
_margin:20px auto;
_overflow:hidden;text-indent:100em;white-space:pre;
_background:url(http://mydesign.mods.jp/images/header_logo.png)
}
p{
_margin:0;line-height:1.6em;text-indent:1em;
}
header nav{
_width:100%;
_background-color:black;
}
header nav ul{
_list-style-type:none;
_text-align:center;
_font: 13px/3.7em "Ubuntu","century gothic",sans-serif;
_/* 総称ファミリ名はキーワードなので、引用符で括ってはいけません。*/
_line-height: 48px;height:48px;
_letter-spacing: 0.15em;
_margin: 0;padding: 0;
_position:relative;
}
header nav ul li{
_display:inline-block;
_width:18%;
}
header nav ul li a{
_display:block;width:100%;height:100%;
_color:white;
_text-decoration:none;
}
header nav ul li a:hover{
_color:orange;
_background-color:rgb(30,30,80);
}
header aside{
_position:absolute;
_right:20px;top:20px;
}
header aside ul{
}
header aside ul li{
_list-style-type:none;
_width:20px;height:20px;
_overflow:hidden;
_display:inline-block;
}
section h2{
_font-size:79px;
_font-family:"Oswald","century gothic",sans-serif;
_letter-spacing: -0.02em;
_margin:0;
_text-align:center;
}
section h2:first-letter{
_color:rgb(255,200,0);
}
section#Self-introduction h3{
_width:16em;
_margin:5px auto;
_text-align:center;
_font-weight:normal;
_font-size:14px;
_white-space:pre;
_padding-bottom:14px;
_background: url("http://mydesign.mods.jp/images/stroke.gif") repeat-x bottom;
}
#profile dd ul li{list-style:none;
_margin:0.4em 0;
_padding:0;
}
#profile dd ul li+li+li:before{
_content:"■ ";
}
body>article>footer{
_position:absolute;
_bottom:0;
_left:auto;
_background-color:rgb(220,220,220);
}
body>article>footer p{
_width:50%;max-width:1000px;margin:0 auto;
_padding-right:50%;
}
footer ul{
_position:absolute;
_right:0;top:5px;
_width:50%;
_text-align:center;
}
footer ul li{
_list-style:none;
_display:inline-block;
}
footer ul li+li:before{
_content:" | ";
}
footer ul li a{
_text-decoration:none;
_color:gray;
}
footer address{
_text-align:right;
}
-->
</style>
この回答への補足あり
    • good
    • 0

facebookのURLだけ修正



【サンプル】
★Another HTML Lint - Gateway( http://www.htmllint.net/html-lint/htmllint.html# )
 で検証済みHTML5
 ★タブは_に置換してあるので戻すこと。
 ★http://、https:// は、それぞれ http://、http:// に置換してあるので戻す。

<!DOCTYPE html>
<html lang="ja">
<head>
<title>ABOUT|MY DESIGN</title>
<link rel="shortcut icon" href="./images/favicon.ico">
<style media="screen">
<!--
/* この部分は外部スタイルーシートにするのが通常ですが、あえてここに書きます。
  次の回答で */
-->
</style>
<style media="screen">
<!--
body>article>header nav ul li a[href="/about.html"]{
_color:red;
_/* カレントの場合のプレゼンテーションはここに書く */
}
-->
</style>
</head>
<body>
_<article>
_<header>
__<h1><a href="/index.html">MY DESIGN</a></h1>
__<nav>
___<ul><!-- ナビゲーションリンクはルートからのパスにしておくと℃の階層にも移動できる -->
____<li><a href="/index.html">TOP</a></li>
____<li><a href="/trip.html">TRIP</a></li>
____<li><a href="/works.html">WORKS</a></li>
____<li><a href="/about.html">ABOUT</a></li>
____<li><a href="/contact.html">CONTACT</a></li>
___</ul>
__</nav>
__<aside><!-- 本文と関係ないのでaside -->
___<ul>
____<li>
_____<a href="https://www.facebook.com/masaki.yamagata.3" target="_blank"><img alt="facebook" src="http://mydesign.mods.jp/images/icon_fb.png"></a>
____</li>
____<li>
_____<a href="http://instagram.com/husky0502/" target="_blank"><img alt="instagram" src="http://mydesign.mods.jp/images/icon_insta.png"></a>
____</li>
___</ul>
__</aside>
_</header>
_<section><!-- これはsection -->
__<h2>ABOUT</h2>
__<section id="Self-introduction"><!-- HTM5では、sectionの階層で構造を示す -->
___<h3>当サイトについて。<br>また当サイト制作者のプロフィール。</h3><!-- sectionひとつにつき必ずheadingひとつ -->
___<p>
____当サイトは、制作者の趣味の一つである「旅」の記録を発表する場として、またそれと同時に、写真を見てそれぞれの国の良さを少しでも感じていただき、そして旅へ興味を持つきっかけになればと思い、制作しました。
___</p>
___<p>
____また旅の記録をメインコンテンツとして、他ページではデザイナーである当方の個人もしくは仕事上でのデザインを一部掲載しております。
___</p>
__</section>
__<section>
___<h3>PROFILE</h3>
___<dl id="profile"><!-- ここは内容的に定義リスト -->
____<dt>誰それだれべぇ</dt>
____<dd>WEBデザイナー / グラフィックデザイナー<dd>
____<dd>
_____<ul><!-- 内容でない■などは入れてはならない。検索エンジンやスクリーンリーダーのことも考える-->
______<li>1980:大阪府生まれ</li>
______<li>2006:某デザイン系専門学校卒業。</li>
______<li>卒業後、グラフィックデザイナーとして、プロダクションなどで数年勤める。</li>
______<li>20代後半から海外の空気にハマり、東南アジア、中東などを転々と旅する。</li>
______<li>30代に入り、かねてから興味のあったWEBの世界へ。</li>
_____</ul>
____</dd>
___</dl>
__</section>
_</section>
_<footer>
__<p><!-- 一つの段落は切らない -->
___当サイト内に掲載されているすべての文章・画像・写真・デザインの無断転載、転用は日本の著作権法によって禁じられています。</p>
__</p>
__<ul>
___<li><a href="./index.html">TOP</a></li>
___<li><a href="./trip.html">TRIP</a></li>
___<li><a href="./works.html">WORKS</a></li>
___<li><a href="./about.html">ABOUT</a></li>
___<li><a href="./contact.html">CONTACT</a></li>
__</ul>
__<address>Copyright(C) 2015 MY DESIGN All Right Reserved.</address>
_</footer>
_</article>
</body>
</html>
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!