http://okwave.jp/qa5450892.html
にて、CSSの段組に関する疑問が無事に解決されました。
が、実はもう一つ、新たに表示に際して困ったことが起きています。
現在のデザインは、<div id="menu">の右側に<div id="contents">を表示させるようになっておりまして、メニューブロック及びコンテンツブロックは、コンテンツブロックの表示法をもう少し改良するくらいで大丈夫な段階まできました。
さて。
このページに、新たにフッタを追加したいと考え、<div id="contents">の下に、幅100%のフッタを、<div id="head">のような感じでつけてみたいと考えているのですが、実際にそのようにしてみようとしたところ、
<div id="contents">のさらに右側にfooterが表示されるようになります。
この状態を、コンテンツブロックそのものに<br>が入るような感じでフッタを表示させようとする場合、スタイルシートでは、どのように記せばいいのでしょうか。
もちろん、フッタを排除してヘッダ部分にいろいろと書いておくのが簡単な方法ではあるのですが。
ご指導、よろしくお願いします。
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
画像、拝見しました。
HTML本体のほうから、まだ草案の段階ですが、将来勧告に移行すると思われるHTML5の考え方--HTML4.01で足りなかった部分--を考慮して将来要素名の変更も考えると
<body>
<div class="header"><!-- HTML5ではheader要素 -->
<h1>見出し</h1>
<div class="article"><!-- HTML5ではarticle要素 -->
</div>
</div>
<div class="section"><!-- HTML5ではsection要素 -->
<div class="menue">
</div>
<div class="body">
<!-- 本文 -->
<img src="" class="figure" /><!-- HTML5ではfigure要素 -->
<hr />
</div>
<div class="footer"><!-- HTML5ではfooter要素 -->
</div>
</div>
このようなごくシンプルで、スタイルシートなしでも--古い携帯とか--でも情報が得やすく、SE(サーチエンジン)も適切な情報が得られやすいものにしておきます。
ここで、menueをfloatにした場合、<div class="body">の最後に<hr />を入れておかないと、もしmenueのほうが長い場合、<div class="body">が早い段階で終了してしまうため、背景色を指定していた場合図のようになってしまいます。
No.3
- 回答日時:
画像は後からアップしたのでしょうか?
それだけなら、あまり難しくするよりも単純に
#footer{ clear:both;}
として表示確認してください。
幅などの隙間問題があるのなら、clearfixで対応すれば良い。
NO.2さんの hrを入れて hr{clear:both; visibility:hidden;}
で良いのですが・・・
--------------------------
幅を%でこだわる方もいますが、最近は固定幅でも良い流れです。
それよりも、http://okwave.jp/qa5450892.html
にてW3Cに準拠と書いていますが、該当ページは、それどころではありませんね・・・ それらも見直しを。
この回答への補足
画像は後からアップしました。
今のところ、#footer{ clear:both;}と入れておいて…ってことでいいような感じですね。
で、該当ページがW3C基準になってない…?
Another HTML Lintでチェックして、とりあえず100点取れればいいかという感じでやってましたので、それじゃ足りないみたいですね…う~ん…
No.2
- 回答日時:
>現在のHTML記述をあえて崩さずに行える方法が何かあれば
それは難題ですね。
というのは、私の記述したHTMLは、文書構造(システマチック的(物理構造的)にもセマカテック的(意味的)にもごく一般的なもので、(初心者が陥りやすい)デザインのために構造化したものではないようにしてあるからです。例示したHTMLを読み直してください。きわめて簡単なものです。
今のページが、何ページであろうと、必ず破綻して将来的にはもっと肥大したページをすべて書き換えることになります。・・私はそれを何度もさせられた・・・
とは言っても、きちんと書かれたHTMLなら、ファイルから置換機能を持つテキストエディタの置換処理でソースを開かなくても大部分は修正できる。
★下記のソース中タブは全角スペースに置き換えてあります。
>コンテンツブロックそのものに<br>が入るような感じでフッタを表示させようとする場合、
はすでに示しましたが、
hr{
clear:both;
visibility:hidden;
}
で対応できるはず。
Body要素直下のhrのみclearを適応するなら
body>hr{
clear:both;
visibility:hidden;
}
とするか
body hr{
clear:both;
visibility:hidden;
}
body * hr{
clear:none;
visibility:visible;
}
とすればよいです。
とにかく、基本的な継承度や子孫セレクタ、隣接セレクタなどのセレクタをきちんと理解してシンプルで、デザインの大幅な改定にも対処できるHTMLを作ってください。
デザインのためにHTMLを書くのではなく、文書構造、文書の意味構造にあったHTMLを書き、必要なら最低限のDIVやclass,idを加える。
例】
<div id="content">
<div id="menue">
<h2>目次</h2>
なら、
div#content div#menue h2{display:none;}
で、div.menue内の<h2>だけ非表示になるけど、他のh2は影響を受けない。
floatを特定のhrのみ有効にして、あるけど見えないようにするには
適切なセレクタhr{
clear:both;
visibility:hidden;
}
【参考サイト】
画像にfloatを指定すると別ボックスと重複してしまいます - 教えて!goo
http://oshiete1.goo.ne.jp/qa5365813.html
この回答への補足
分からない言葉がいろいろと出てきておりますので、今、必死になって回答の意味が分かるように調べ回っています^^;
ページレイアウト…要するに見栄えそのものについては、HTMLを追加して、CSSをいじくった状態で…
しかし、回答をいただいているような指摘を受けているということは、個人的に気に入らない。なので、全ページ改訂ということで確定ですね。
スタイルシートも、それに伴い改変。フッタのスタイルシートに、float位置を初期化する命令を組み込んでおけば大丈夫だったということで、hrをあえて使う必要はなさそう…だけれど、説明を見ると、使ったほうが良さそうな印象も…。
可能な限り、現レイアウトを崩さず、その上でHTMLとスタイルシートを変更する…となると、かなりの作業になるでしょうけれど、基本さえ確定しておけば、そう難しい作業ではなさそうです。
問題は、具体的に、現存のものをどのように変更するかですが…。スペルミスはともかくとして、ブロックの中にブロックを入れて云々…ということになりそうですね。ちとイメージ図を作って、画像をこちらに後ほどアップしてみます。
まだHTMLの読解中ではありますが…
一応<div>にてブロック分けするイメージについて、簡単な図を作成してアップしてみましたが、こんな感じになるでしょうか。
もう一つ大きなブロックで複数のブロックを囲んだほうがいいのだろうかとも思いますが、ともあれ、まずはブロック分けから今一度考え直して、それから…といった感じです。
No.1
- 回答日時:
そもそも最初の解決方法というものはおかしい。
ためしに、ウィンドウの幅を半分くらいにしてみると良くわかる。
訪問者がどの幅のウィンドウで見ているかわからないので、幅は基本的には%で指定すべき。
IEは、親ブロックの幅を間違えるので
HTML自体は、次のような形
<div id="BodyText"><!-- 本文 -->
<div id="content">
<!-- contentは単数形ですでに複数の意味があるので複数形はない -->
<div id="menue">
<h2>目次</h2>
<ol>
<li></li>
</ol>
</div>
</div>
<hr />
<div id="documentInfo">
</div>
CSS
body div#content{
position:relative;
margin:0.5em 20%;
}
body div#content div#menue{
position: absolute;
top: 0px;
left: -36%;
width: 30%;
font-size: 0.8em;
}
body div#content div#menue h2{
display:none;
}
とすれば、本来用途が違う、扱いにくいfloatを使わなくてすむ。
floatは画像などの周囲に文章を回りこませるためです。
floatを使うなら、
CSSで、
hr{
clear:both;
visibility:hidden;
}
この回答への補足
width幅の指定は、こちらも一応%で指定しています。menu枠はpxですけれど。このあたりも修正しなければならないでしょうね。
今使用しているHTMLの記述と、お答えいただいたHTML表記とは、ちと差異がありますので、HTMLとCSSを、意味を調べながらチェックしてみますが…
この文例から言うと、現在のHTMLを大幅に改訂しなければならないようですね。
外部CSSの修正だけで大丈夫だろうかと思っていたのですが、floatを使用しないとなると、ご指摘の方法を採用する場合、HTMLの修正を行なわなければならない、しいては60ページ以上すべて記述を変更しなければならない、ということになりそうです。
変更するのは、時間をかければいいだけですが、現在のHTML記述をあえて崩さずに行える方法が何かあればいいのですが…。
記載していただいたHTMLをCSSを、内部CSSとしてサンプルを作ってみました。
かなり大ざっぱに作っただけですが…
このサンプルでは、IEとFirefoxでは全く違う表示となるため、残念ながら使うことができません。現状のままのほうがまだましだということになります。
となると、floatの回り込みを解除する命令を使用したほうがいい、ということになりますので、こちらを採用することになりますが…
<hr>を使用する必要はありますか? 平行線はあまり使わない方がいいなんて話を聞いたような気がしましたが…。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/12】 急に朝起こしてきた母親に言われた一言とは?
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・好きな「お肉」は?
- ・あなたは何にトキメキますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
htmlのolやulなどlistにtitleや...
-
html5にて水平線の引き方は?
-
拡大すると背景色が消える
-
divの中に外部のHTMLを埋め込む
-
HTML属性での「""」 「''」違い
-
html の divとtable の役割
-
<div id="container">の使いか...
-
background-imageを徐々変化さ...
-
ヘッダーとフッターだけ背景を...
-
複数のボタンを等間隔に、かつ...
-
div要素が重なってします
-
<!-- #BeginLibraryItemとは
-
1時間30分を簡単に表したいで...
-
htmlの文字が縦書きになる
-
idの中のid指定
-
含む含まないという概念自体の...
-
liタグの中に<p>タグやら<dl>を...
-
smallにtext-allignが効かない
-
【ヒトの神秘】美男美女から何...
-
リストの並べ替え
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
htmlのolやulなどlistにtitleや...
-
HTML属性での「""」 「''」違い
-
html の divとtable の役割
-
複数のボタンを等間隔に、かつ...
-
<div id="container">の使いか...
-
1時間30分を簡単に表したいで...
-
div要素が重なってします
-
min-heightとheightの違いについて
-
ヘッダーを左右に二分割する方...
-
スペースを使わず文字位置を揃...
-
ヘッダーとフッターだけ背景を...
-
divとpの使いわけ
-
hタグの右横に画像を表示
-
html5でheaderの中にnav
-
h1に自分自身へのリンクを張...
-
3カラムレイアウトで「常に残り...
-
h1のテキストサイズよりh2の方...
-
CSSで、contentsがfooterに重な...
-
divの中に外部のHTMLを埋め込む
-
グリッドレイアウトで"auto-fit...
おすすめ情報