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

同じ幅指定のつもりなのに、ブラウザによって違ってしまう現象

まったくの初心者ですが、テンプレートを編集してホームページを作りました。
しかし、別の環境で見たところ、テーブルの表示が明らかにおかしいことに気づきました。
(Lunascapeというブラウザで、3種類のエンジンが選べるので他のエンジンにしてみたのです)
問題を極力単純化しようと余計な文章を省いたHTMLを用意しましたが、結果は変わりませんでした。

Tridentに合わせるとWebkitというエンジンで見た場合にはみ出すし、Webkitに合わせるとTridentで見たときにタイトルの幅が広すぎて間抜けなのです。

現状、この重大なエラーを残したまま公開している状態のため、急ぎ直したいのです。

画像は実行したときの症状を、下にはそのソースを載せます。
アドバイス、回答をよろしくお願いします。


<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html lang="ja">
<head>
<meta http-equiv="content-type" content="text/html; charset=Shift_JIS">
<meta http-equiv="content-style-type" content="text/css">
<title>テスト</title>
</head>
<body>
<style type="text/css">
<!--
table{
border-collapse: collapse;border-spacing: 0;
width: 60%;
margin-bottom: 30px;
border: 1px solid #DDD;
table-layout:fixed;
}
th{
border: 1px solid #DDD;
color: #333;
padding: 10px 20px;
}
td{
border: 1px solid #DDD;
color: #333;
padding: 5px;
}

.title{ width:12em;}
.compose,.long{ width:4em;text-align:center;}
.value{ width:6em;text-align:center;}

th.genre { background: #E5F2F8;}
-->
</style>
<table>
<tr><th class="title">タイトル</th><td class="long">こうもく1</td><td class="value"><span class="d">こうもく2</span></td><td>こうもく3は大切なこうもくです。ほんとうです。</td></tr>
<tr><th class="title">タイトル</th><td class="long">こうもく1</td><td class="value"><span class="d">こうもく2</span></td><td>こうもく3は大切なこうもくです。ほんとうです。</td></tr>
</table>

</body>
</html>

「同じ幅指定のつもりなのに、ブラウザによっ」の質問画像

A 回答 (3件)

この場合の幅というのは <table> の幅も含めていますか?


IE8, Google Chrome 5 で試したところでは <table> の幅は一致しますが、万全を期すならば

html, body { margin: 0; padding: 0; }

を指定した方が良さそうです。(デフォルトスタイルシートのリセット)
width: 60%; は親要素に対しての割合ですから、margin, padding がブラウザ毎に違うと <table> の幅が不統一になります。

> Tridentに合わせるとWebkitというエンジンで見た場合にはみ出すし、Webkitに合わせるとTridentで見たときにタイトルの幅が広すぎて間抜けなのです。
この辺りでしょうか。

・全てのtable関連要素に margin, padding, border を指定する (デフォルトスタイルシートのリセット)
・em を使いつつ、幅を完全に揃えたいのなら、font-size を指定する (代償にアクセシビリティが下がります。「幅を完全に統一にしたい」という要望なら避けられない問題ですが…。)

デフォルトスタイルシートはあてになりませんので、他にもあやしそうなプロパティを探してリセットしてみてください。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

言葉が不足していてすみませんでした。
テーブルの幅の違いも気になったのですが、実はこれは100%に指定しまうので3つのブラウザでの表示はあまり変わらないのです。

マージンやパディングには要注意なのですね。
今回は単位を直すことでなんとかなりましたが、覚えておきます。

またこのような初歩的なことをお尋ねするかもしれませんが、よろしくお願いします。
ありがとうございました。

お礼日時:2010/08/02 09:28

#2 です。



ふと気が付いたので補足を。

> IE8, Google Chrome 5 で試したところでは <table> の幅は一致しますが、
IE8 と Google Chrome 5 のウインドウサイズが異なれば、<table> の幅も一致しません。
ウインドウサイズに応じて可変するものなので、当たり前といえば当たり前ですが、念のため。
    • good
    • 0

tableのwidthを60%とされていますが、trには別に12emなどを指定されていたりと単位がバラバラな気がするのですが・・・


まずemにするか%にするかを決定された方が良いのではないでしょうか。
tableの場合はborderを使われるのでしたらpxをオススメしますが・・・
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

全体のデザインがパーセントによって指定されていたのですが、表の内側だけは○文字分と指定したかったのです・・・。
色々といじった結果、ご指摘のとおり単位にemを使ったのがまずかったらしく、パーセントに直すことでおおむね同じように表示されるようになりました。

ただ、どうしてそうなるのかは分かっていません(汗

とにかく、おかげさまで解決することができました!
ありがとうございました。

お礼日時:2010/08/02 09:20

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

このQ&Aを見た人はこんなQ&Aも見ています