プロが教えるわが家の防犯対策術!

CSSで段組デザインのwebを作っているのですが、ページの一番下にcopyrightを表示するクラスを作ったのですが、うまくいきません。

<div class="menu">
...
</div>
<div class="main">
....
</div>

ページは↑のような構成になっていて(absoluteで位置指定しています)、
.copy {
bottom : 10px ;
position : absolute ;
}

のようなクラスを作ったところ、スクロールが必要なページの場合、ページの途中にコピーライトが書かれてしまいます。つまり、ページの今見えている部分の一番下にかかれてしまいます。

ページ全体の一番下に書かれるようにするにはどうしたらよいでしょうか?

A 回答 (6件)

メニューの長さは一定ですか?


同じメニューならば、たぶんできると思いますが…。
mainに高さを設定してあげればいけると思います。
2つのページを参考までに、それぞれでファイルを作ってみてください。同じスタイルシートでうまくできてると思いますが。(今回メニューの高さを500pxで考えました

<html>
<head>
<title>メインが短い</title>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<style type="text/css">
<!--
.main { position:relative;top:-500px;left:100px;margin-bottom:-500px; height:500px; }
address { width:400px; text-align:center;border:solid 1px black;margin-top:10px;padding:5px;}
-->
</style>
</head>

<body bgcolor="#FFFFFF" text="#000000">

<table width="80" border="0" cellspacing="0" cellpadding="0" height="500">
<tr>
<td bgcolor="#990066"> </td>
</tr>
</table>
<div class="main">

<table width="300" border="0" cellspacing="0" cellpadding="0" height="300" >
<tr>
<td bgcolor="#9933CC"> </td>
</tr>
<tr>
<td bgcolor="#990066"> </td>
</tr>
</table>
</div>

<address>コピーライト</address>

</body>
</html>

---------------

<html>
<head>
<title>メインが長い</title>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<style type="text/css">
<!--
.main { position:relative;top:-500px;left:100px;margin-bottom:-500px; height:500px; }
address { width:400px; text-align:center;border:solid 1px black;margin-top:10px;padding:5px;}
-->
</style>
</head>

<body bgcolor="#FFFFFF" text="#000000">

<table width="80" border="0" cellspacing="0" cellpadding="0" height="500">
<tr>
<td bgcolor="#990066"> </td>
</tr>
</table>
<div class="main">

<table width="300" border="0" cellspacing="0" cellpadding="0" height="800" >
<tr>
<td bgcolor="#9933CC" height="500"> </td>
</tr>
<tr>
<td bgcolor="#990066" height="300"> </td>
</tr>
</table>
</div>

<address>コピーライト</address>

</body>
</html>

この回答への補足

No4の補足に書いたとおり、main,menuの長さにかかわらず、という方法を考えています。
また、tableを使えばもともとできていたので、tableはデザインには使わずにやりたいのです。

いろいろ検索してみたりしたのですが、やっぱり無理ですかね…

補足日時:2004/10/06 02:00
    • good
    • 0

前回のテーブルに関しては、わざわざHP作るのも面倒ですし、表示上のダミーでして、テーブルを使ってデザインしてくださいってことではないんですが…。



しかし、メニューの長さが変わるっていうことなら、ちょっと私にはわからないですね。

この回答への補足

すみません。main,subとcopyをtableで分けてるのかと思ってしまいました。

補足日時:2004/10/08 01:35
    • good
    • 0

No.3です。


メニューとメインはそのままに、コピーだけを変更してみるとできそうかな?HTMLもちょっと変更。

.copy{ position:relative:left:-100px; width:???px}
※幅の値はメインの幅+100pxでいいと思いますが。
あと、ココにかかれている状況だと、ページのマージンが生きていて微妙に違ったことになるかもしれませんが、その辺はご自分で調整してみてください。

<div class="menu">
...
</div>
<div class="main">
....
 <div class="copy">
  ....
 </div>
</div>

ポイントとしては、メインの中にコピーが入ったってところでしょうか。

あと、どうせ作り直すのなら、コピーライトはHTMLのaddressタグで作ったほうがいいと思いますが。

この回答への補足

この場合ですと、menuのほうがmainより長くなってしまった場合に、copyがmenuにかぶってしまいます。
main,menuの長さにかかわらず常に一番下に表示する方法はないでしょうか?

補足日時:2004/10/03 21:30
    • good
    • 0

全体の構成がわからないのでなんともいえないところですが、position定義するのを止めて、ページのマージンを左に10px設定しておいたらどうでしょうか。


もしくは、menu、main、copyのpositionはけして、新しく一つ定義したので、ページ全体をくくるとか。

.all {
 position:absolute;left:10px;
}

<div class="all">
 <div class="menu">
 ...
 </div>
 <div class="main">
 ....
 </div>
 <div class="copy">
 ....
 </div>
</div>

この回答への補足

すみません。1の補足、間違ってました。

.main{
left:100;
position:absolute;
}
.menu{
position:absolute;
}

のようにして、左にメニュー、右にメインコンテンツがくるようにして、一番下にコピーライトを書きたかったのです。

↓のような感じです。■の部分がメニュー、□の部分がメインコンテンツです。

■■■□□□□□□□
■■■□□□□□□□
■■■□□□□□□□
■■■□□□□□□□
■■■□□□□□□□
■■■□□□□□□□
=======copy========

補足日時:2004/10/03 13:05
    • good
    • 0

<br clear="ALL">


してやる

フレームでわける

テーブルでわける(段組する)(COLSPANする)

この回答への補足

説明不足でしたが、今回のページはテーブルを使っていたものをもとにCSS化しようとしています。デザインにかかわるところはCSSだけで行うようにしたいのです。

補足日時:2004/10/03 13:03
    • good
    • 0

単純に、


<div class="copy"></div>
を一番最後に書いて、
bottom : 10px ;
position : absolute ;
は、やめる。

この回答への補足

できません。

念のため、mainとmenuは以下のような感じで宣言して、段組をしています。

.main{
left:100;
position:absolute;
}
.menu{
left:100;
position:absolute;
}

補足日時:2004/10/02 21:16
    • good
    • 0

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