アプリ版:「スタンプのみでお礼する」機能のリリースについて

文章での質問で恐縮ですが、

html例に記載のような形で、レイアウトを作っています。
ヘッダーとフッター、左右のBOXとベタな構成かと思ってますが、
右ボックス(div right-box)内のテーブルの行が増えた際(運用上、可変で増えます)に、
tableがdiv構成(wrap-1,wrap-2,right-box,footer)からはみ出して、bodyの領域に出てしまいます。

スタイルシートでは左右のボックスをfloat left、float rightしていて、
テーブルの行が可変なので、left-box以外にはheightは指定していないです。
※left-boxのheight指定は100%

heightを指定しなければ、基本的に行追加に合わせて、可変で動くような気がしているのですが、
どうもうまくいかないです。
left-boxにheightを指定しているのは、left-box内に定義している要素があり、
heightの指定がない場合に、その要素の高さになってしまうので、
right-boxと同じ高さになるように、100%を指定しています。

分かりにくい質問で申し訳ないですが、
right-boxのheightをtableの行追加に合わせて可変にする方法はないでしょうか?

本来、heightなしで可変になるのであれば、
可変にならない原因の推測をお願いします。

---ここからhtml例---
<html>
<head>
</head>
<body>

<div id="wrap-1">

<div id="header">;
</div>

<div class="wrap-2">

<div id="left-box">
</div>

<div id="right-box">
<table id="table">
<tr>
<td><textarea></textarea></td>
</tr>
<tr>
<td><textarea></textarea></td>
</tr>
<tr>
<td><textarea></textarea></td>
</tr>
<tr>
<td><textarea></textarea></td>
</tr>
<tr>
<td><textarea></textarea></td>
</tr>
<tr>
<td><textarea></textarea></td>
</tr>
</table>
</div>

</div>

<div class="footer clear"> </body>
</div>

</div>

</body>
</html>

A 回答 (1件)

floatを使わない。

floatを使うと、その要素は他から独立してしまいます。
そもそもHTMLおかしいし・・・
textareaがあるということは、formですか?table使う必要がありますか?
left-boxとかright-boxとか、端末によって下に回したりとかしたら名前と整合が取れなくなる。
所詮、メインはtableですからその後に記述したので良い。
 スタイルシートを利用できない端末や、検索エンジンにはこの情報はtableの後でよいはずです。floatを使うと文書の順番も変える必要が出てくる。

[サンプル]HTML4.01strict+CSS2.1
★The W3C Markup Validation Service( http://validator.w3.org/#validate_by_input )
★W3C CSS 検証サービス( http://jigsaw.w3.org/css-validator/#validate_by_ … )
 で検証済み!!のウェブ標準です。
※タブは_に置換してある。★必ず戻すこと★
1) tableはstaticのままですから、それを含むsection(本文)はあわせて伸縮します。
2) 本文セクションのナビの高さはsectionの高さに合わせて伸縮します。
 section{position:relative} + div.section div.nav{position:absolute;}なので
3) 将来navを上にしようが、左にしようが下にしようが・・自在にデザインできます。
4) 分かりやすいように背景は黄色にしてあります。
5) HTML5にするときは、そのままclass名を要素名に
 <div class="header"></div>→<header></header>
 class名と使い道はHTML5に合わせてある。section,nav,footerも

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="ja">
<head>
_<meta http-equiv="content-type" content="text/html; charset=Shift_JIS">
_<title>サンプル</title>
_<meta name="author" content="ORUKA1951">
_<meta http-equiv="Content-Style-Type" content="text/css">
_<link rev="made" href="mailto:oruka1951@hoge.com" title="send a mail" >
_<link rel="START" href="../index.html">
_<style type="text/css">
<!--
html,body{margin:0;padding:0;}
div.header,div.section,div.footer{width:80%;margin:0 auto;min-width:640px;max-width:800px;}
/* ここから */
div.section{
position:relative;min-width:0;
min-height:100px;/* section navに最低限必要な高さ */
}
div.section h2,
div.section table[summary="form"]{
margin-left:200px;/* 左をあける */
width:auto;
}
div.section div.nav{
position:absolute;
top:0;
width:200px;
background-color:yellow;
height:100%;
}
div.section div.nav h3{margin-top:10px;}


-->
_</style>
</head>
<body>
_<div class="header">
__<h1>タイトル</h1>
__<p>このページでは・・・・</p>
_</div>
_<div class="section">
__<h2>本文</h2>
__<form action="./">
___<table summary="form">
____<tbody>
_____<tr>
______<th abbr="name">お名前</th>
______<td><input type="text" name="name" size="20" value=""></td>
_____</tr>
_____<tr>
______<th abbr="message">メッセージ</th>
______<td><textarea rows="10" cols="40" name="m1"></textarea></td>
_____</tr>
_____<!-- 自由に加減してください。 -->
_____<tr>
______<th abbr="message">メッセージ</th>
______<td><textarea rows="10" cols="40" name="m1"></textarea></td>
_____</tr>
_____<tr>
______<th abbr="message">メッセージ</th>
______<td><textarea rows="10" cols="40" name="m1"></textarea></td>
_____</tr>
____</tbody>
___</table>
__</form>
__<div class="nav">
___<h3>その他の情報</h3>
__</div>
_</div>
_<div class="footer">
__<h2>文書情報</h2>
__<dl class="documentHistry">
___<dt id="FIRST-PUBLISHED">First Published</dt>
___<dd>2012-08-10</dd>
___<dt id="LAST-MODIFIED">Last Modified</dt>
___<dd>2012-08-10 12:00:00 (JST)</dd>
__</dl>
__<address>&copy; ORUKA1951 2012 - 2016 All Rights Reserved mailto:*****</address>
_</div>
</body>
</html>
    • good
    • 0

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