【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言

こちらの質問と同じです。
http://oshiete1.goo.ne.jp/qa4888659.html

IEにおいて、隣に結合したセルがあり、中央の高さを固定したいという状態です。
条件として、”基本HTMLは変更しない”が重要です。
テーブルの変わりにdivにする、などは求めていません。

■HTML
<table>
<tr>
<td></td>
<td rowspan="3">結合セル</td>
</tr>
<tr>
<td>高さを固定</td>
</tr>
<tr>
<td></td>
</tr>
</table>

HTMLで高さを指定しても、CSSでheightやmax-heightで指定しても伸びてしまいます。
何か方法はあるでしょうか?

A 回答 (6件)

かなり邪道な気がしますが、後から、スクリプトでセルの高さを設定して回る方法。


あまりお勧めではありませんが、できないことはないと言う例示の意味で。
CSSなどでうまい設定がないもんかなぁ…(←あまり詳しくないのでわかりません)

サンプルでは2行目の高さを固定。
(テーブルの構成によって、若干違ってきますのであくまでも例示です。
高さの計算もちょっといい加減。)
(スクリプトを別ファイルにすれば、HTMLに追加1行でいけると思う。ただしスクリプトをオフにしていると効果はありません。)
<html>
<head>
<script type="text/javascript">
window.onload = function() {
var t, r, n, i, h=12; //←固定値
t = document.getElementsByTagName('TABLE')[0];
r = t.getElementsByTagName('TR');
t = (t.offsetHeight-h)/(r.length-1);
for (i=0; i<r.length; i++) r[i].getElementsByTagName('TD')[0].style.height = (i==1)?h:t;
}
</script>

</head>
<body>
<table border=1>
<tr>
<td></td>
<td rowspan="3">
結合セル
<p>このセルは
<p>長さが長く
<p>なっていったり
<p>文字がいろいろ
<p>はいっていたり
<p>画像なんかも
<p>いれてみたり
</td>
</tr>
<tr>
<td>高さを固定</td>
</tr>
<tr>
<td></td>
</tr>
</table>
</body>
</html>
    • good
    • 0
この回答へのお礼

なるほど…

HTMLやCSSではIEのブラウザの仕様上、どうしようもないと思っているのですが、
なにか裏技的なもので無理矢理にでも固定できれば…と思い質問しました。

試してみます!ありがとうございます。

お礼日時:2009/06/30 22:22

あぁ全然ダメでしたごめんなさい。


33%になっちゃうのか
    • good
    • 0

条件は「ie6-8で、真ん中のtdの高さを固定する」とのことなので


fontsizeをpxで指定だけでいいんじゃないですか?

リンク先の条件(2行2列)を踏まえても、2回目の質問の返答からも
「真ん中のtdを右の結合セルの中央に揃え、かつ高さを固定する」とは思えないし。
    • good
    • 0

HTMLもCSSも変更せずには無理。


況してや、Javascriptに頼るのは避けるべき。
    • good
    • 0

あと条件としてあげたらっしゃる「ソースを変更しない」を守った場合、真ん中のtdを指定することが出来ないのでどうする事もできないのでは?



結合セルの高さは増えたり減ったりして、中央のtdが固定で上と下のtdが結合セルの高さにあわせて伸縮するんですよね?

この回答への補足

基本…と分かりにくくかいていますが、
class指定をしたりは可能です。
ただテーブルをまるっきりdivにしたり、まったく別ものになってしまうと…
あくまでテーブルの状態で、隣が結合したセルがある場合、です。

補足日時:2009/06/30 22:20
    • good
    • 0

IEのバージョンは?

    • good
    • 0
この回答へのお礼

6~8です。

お礼日時:2009/06/30 22:20

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