
初めまして。お世話になります。
現在、ホームページを作成していますが、
分からない事がありますので、質問させて頂きました。
ホームページビルダーで、表(tableタグ)を使ったレイアウトを作成中です。
表の幅(width)と高さ(height)を共に100%で指定し、
表の中をセル(td)で細かく仕切り、その中に画像やテキストを配置し、
レイアウトしたいと思っています。
表のサンプルソースはこんな感じです。細かくてすみません…。
<TABLE border="0" cellpadding="0" cellspacing="0" width="100%" height="100%">
<TR>
<TD height="20" colspan="5"></TD>
</TR>
<TR>
<TD height="1" bgcolor="#cccccc" colspan="5"></TD>
</TR>
<TR>
<TD height="30" colspan="5"></TD>
</TR>
<TR>
<TD height="1" bgcolor="#cccccc" colspan="5"></TD>
</TR>
<TR>
<TD colspan="5" height="5"></TD>
</TR>
<TR>
<TD rowspan="3"></TD>
<TD rowspan="3" bgcolor="#0000ff" width="1"></TD>
<TD height="1" width="700" bgcolor="#0000ff"></TD>
<TD rowspan="3" bgcolor="#0000ff" width="1"></TD>
<TD rowspan="3"></TD>
</TR>
<TR>
<TD width="700"></TD>
</TR>
<TR>
<TD width="700" height="1" bgcolor="#0000ff"></TD>
</TR>
</TABLE>
上記のソースでは表の中に、幅700pxの青色の四角いスペースを作っています。
しかし、ブラウザで見え方を確認しますと。
InternetExplorer、Opera、Sleipnirではうまく表示できますが、
Firefox、Lunascapeではうまく表示できません。
高さは大丈夫なのですが、
<TD height="1" width="700" bgcolor="#0000ff"></TD>
<TD width="700"></TD>
<TD width="700" height="1" bgcolor="#0000ff"></TD>等の、
width="700"が無視され、青色の四角いスペースまでもが、100%表示になってしまいます。
どのようなタグを書けば、どのブラウザでも正しく表示できるようになるのでしょうか?
また、Firefox、Lunascapeのバージョンが古いのですが、
これらの影響もあるのでしょうか?
Firefoxがバージョン1.5.0.2で、Lunascapeがバージョン3.5.4です。
よろしくお願いいたします。
No.3ベストアンサー
- 回答日時:
ごく簡単な例を書いてみました。
それぞれを文字コードShift_JSで同じフォルダーに入れて、sample2.htmlを表示してみてください。★ウィンドウの幅を小さくしても崩れないか?
色々なサイズのディスプレイを持つ訪問者に対応できるか?
★スタイルシートを切り替えるとどうなるか
firefoxの場合:表示→スタイルシートで「スタイルシートを使用しない」「標準」「大きい」を切り替えてみる。(目次とメモが逆になる--おまけ)
★携帯端末での表示は?
携帯用のスタイルシートは無いけど、スタイルシートのない状態で表示されるはず。もちろん携帯用のスタイルシートを用意しておけば、それが適用される。
★<head></head>内のリンク<link rel=**>を変えずに、色々なページを作っても良いsample3.htmlでは文章を変えるとか
★HTMLのソースが以下に小さいか、ソースを表示してみる。
☆標準スタイルシート(standard.css)は無いので、作って遊んでごらん???
sample2.html______________
<!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>サンプル2</title>
<meta name="author" content="ORUKA1951">
<meta http-equiv="Content-Style-Type" content="text/css">
<link rel="stylesheet" type="text/css" media="screen" href="./sample2.css">
<link rel="Alternate StyleSheet" type="text/css" media="screen" href="./standard.css" title="標準">
<link rel="Alternate StyleSheet" type="text/css" media="screen" href="./big.css" title="大きい">
</head>
<body>
<h1 id="Top">サンプル2</h1>
<h2>スタイルシートで配置</h2>
<div class="body">
<div id="index" class="note">
<h2>目次</h2>
<ol>
<li><a href="tosa">土佐日記</a></li>
<li><a href="kage">蜻蛉日記</a></li>
<li><a href="isum">和泉式部日記</a></li>
<li><a href="mura">紫式部日記</a></li>
</ol>
</div>
<div id="text">
<p>
ここに本文を書く。段落は<p></p>で囲もう。---ソースのこの部分に適当な文章を入れる。----
</p>
<p>
ここにも適当な文章を入れる。
</p>
<p class="wide">
間を空けてみるここにも適当な文章を入れる。
</p>
</div>
<div id="memo" class="note">
<p>
ここにも書いておこう。
</p>
</div>
</div>
<hr>
<p class="pageNavi"><a href="#TOP">TOP</a></p>
<hr>
</body>
</html>
sample2.css___________________
@charset "Shift_JIS";
body {
line-height: 1.4em;
padding: 10px;
background-color: rgb(220,220,220);
}
p{
text-indent: 1em;
margin: 0.4em 0em;
}
body>h1,body>h2{ text-align: center;}
h1 {font-size: 200%;}
h2 {font-size: 170%;}
hr{ display: none;}
#index h2{display: none;}
div.body{
position:relative;
margin: 0px 20%;
border: solid blue 30px;
background-color: white;
}
div.body div#text{
padding: 1em;
}
div.body div#text p.wide{
margin-top: 10em;
padding-top: 5em;
border-top: solid 1px red;
color: green;
}
div.note{
position: absolute;
top: 0px;
width: 25%;
border: 6px rgb(160,255,160) solid;
font-size: 0.8em;
padding: 10px;
}
div.body div#index{
/*left: -37%; */
right: 109%;
border-style: outset;
}
div.body div#memo{
left: 109%;
border-style: inset;
}
p.pageNavi{
margin: 10px 20%;
text-align: center;
}
big.css___________________
@charset "Shift_JIS";
body {
font-size: 16pt;
background-color: white;
}
body>h2{
font-size: 10pt;
}
div.body{
border-color: pink;
}
div.body div#text{
padding: 0.5em;
}
div.body div#text p.wide{
margin-top: 5em;
padding-top: 2em;
}
div.body div#index{
right: 109%;
}
div.body div#memo{
left: 109%;
}
ORUKA1951さん、回答ありがとうございます。
サンプルを試してみました。
CSSでは色々なことができるのですね。
おまけに、ソースが少なくページも軽そうです。
自分なりに調べてみて、
http://www.2step-css.com/や、http://css.uka-p.com/のサイトを見つけました。
どのようにCSSでレイアウトするのかが、なんとなく見えてきました。
サンプルも参考にさせて頂きます。
ただ、テーブルレイアウトとは全く異なるので、
一つのページを作るのが大変そうです。後々は楽そうですが…。
テーブルレイアウトは「良くない」「古い」という意見が多いようですし、
もう少しCSSを勉強し、脱テーブルレイアウトを目指します。
たいへん勉強になりました。
サンプルまで作って頂いて、ありがとうございました。
No.2
- 回答日時:
>スタイルシートは簡単な、フォントの装飾などに使用していますが、
>複雑なデザインを作ることができるのでしょうか?
というか、HTMLでは、そもそもデザイン用に作られているものではない(科学分野)ので、込み入ったデザインをしようとすれば、HTML本来の文書構造はそっちのけで、ブラウザ独自のタグを使ったり、表でもないのに<table>を使ったり、画像を文字代わりに使ったり、間を空けるために意味のない<br>や<p>や空白を使ったり・・・しなければなりません。
スタイルシートは、HTMLは文書構造にしたがってきちんと書き、スタイルシートでデザインするということですから、
『複雑なデザインをするためにスタイルシートはある』
なのです。
暇なとき、サンプルを作ってみますね。
No.1
- 回答日時:
そもそも、表でないものをtableを使うのは避けてください。
_______________
14.1 スタイルシートの概説( http://www.asahi-net.or.jp/~sd5a-ucd/rec-html401 … )より
・・・・・・略・・・・・・・ Webページのプレゼンテーションを向上させようという志は素晴らしいものではあったが、そのためのテクニックには思わぬ副産物があった。こうしたテクニックは、特定の人々、特定の時代状況でしか成り立たず、すべての人々、すべての時代状況において成り立つものではないのだ。こうしたテクニックの例を挙げよう。
* メーカー独自拡張のHTMLを使う。
* テキストを画像に置き換えて表現する。
* 余白制御のために画像を用いる。
★ ページレイアウトの目的で表を用いる。★
* ・・・略・・・
_____________________
11.1 表の概説( http://www.asahi-net.or.jp/~sd5a-ucd/rec-html401 … )
非視覚系メディアでのレンダリングに際して問題を起こすことがあるため、単に文書内容を整形する目的だけで表を用いるべきでない。・・・略・・・こうした問題を最小限に押さえるため、著者は文書の整形には表ではなくスタイルシートを用いるべきである。
_________________
<TABLE>をどうしよう( http://www.asahi-net.or.jp/~wq6k-yn/konomac.html … )より
・・・略・・・「表であることが自然な場合」にtableを使いたいと思うのはもっともなことです【レイアウトのためにtableを使うなどは論外】。
____________________
耳にタコができるほど、散々聞かされているはずなのに、いまだにtableタグを使ってデザインしようとする人がいるとは、驚きです。ホームページビルダーが最も攻撃される部分かも。
HTMK4.01 Strictで試したところ、IEのみ、表示されて他のブラウザは崩れます。(SleipnirはレンダリングにIEを使っているので評価できない)。IEは、配置に関しては特にウェブ標準とは異なった挙動をするためIEのあわせて作成したらダメ。IE8以降はIEのウェブ標準に移行する。
★仕様書にも書かれているように、tableは逐次表示を手助けするための方法を取らないといけません。内容サイズによって伸縮します。ですから、この表では、FurefoxやLunascape、Operaの表示が正しい。
★もう、長い間tableを使って配置したことはないのですが、スタイルシートを使えばたちどころに完結するし、HTMLとしても正しい。
回答ありがとうございます。
多くの人が、tableでレイアウトをしていると思いますが、まさかいけないこととは、全く知りませんでした…。
スタイルシートでレイアウトするのがベストなのですね。
スタイルシートは簡単な、フォントの装飾などに使用していますが、
複雑なデザインを作ることができるのでしょうか?
なんか技術が必要そうです。
その辺がよく分からないので、調べてみます。
また、IEを基準に作成してはダメとは…。たしかに、IEにはバグが多いみたいです。
IEを使う人が多いので、IEを基準に作っていましたが、これからは他のブラウザを基準にしてみます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS テーブルタグのセルの幅の一部だけを指定 1 2023/03/12 12:02
- Visual Basic(VBA) Selenium.ChromeDriverの使い方について 7 2022/09/22 06:43
- JavaScript EasyUIのSubGrid(jquery)におけるObjectに入れた連想配列について 1 2022/05/02 11:21
- HTML・CSS 自身のHPにYouTube動画を貼り付けるのが出来なくなり困ってます 1 2022/11/11 10:44
- JavaScript jQueryで同じクラス名のものを別物として扱いたい 1 2022/06/17 14:14
- HTML・CSS 【CSS】:hasで可能? imgを含むtr要素を選択したい 1 2022/11/17 14:36
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- PHP htmlで複数の個数入力欄を表示させるには 1 2022/09/20 03:11
- MySQL SQL任意に並び替えをしたい 2 2023/08/28 10:47
- Perl PERL 1 2022/04/26 14:15
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
CSSについて
-
表の幅・高さ100%表示が、...
-
SEO対策について-<h1>タグ-そ...
-
CSSのtransform: translate(-50...
-
*{margin:0px;padding:0px;}と...
-
2カラムの黄金比?レイアウト...
-
<pre>で折り返させる方法を教え...
-
paddingを指定するとwidthやhei...
-
macとwindowsのレイアウト崩れ...
-
divの違い
-
hrをCSSで装飾
-
インラインフレームの表示位置...
-
<h1>タグの後の行間を詰めたい。
-
テキストボックスの文字を右揃...
-
excel初心者です。 セルの色変...
-
Excelの列や行の幅を表示...
-
エクセルでサイズに合ったもの...
-
昼間 ずっとゴロゴロと横になっ...
-
ホームページビルダーで横幅に...
-
HTMLでクロス抽出したい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
CSSのtransform: translate(-50...
-
aタグに直接style=""で:hoverを...
-
text-alignの解除の方法
-
なぜ左に寄っているの?
-
端から端まで横線を引きたい
-
<h1>タグの後の行間を詰めたい。
-
FireFoxで見るとブラウザの幅に...
-
HTMLフォームのSELECTの幅を一...
-
INPUT TEXT内の文字位置を指定...
-
macとwindowsのレイアウト崩れ...
-
インラインフレームの表示位置...
-
chromeだけbody直下に空白が開く
-
htmlのタグ間の謎の空白
-
iPhone用のサイトの文字がずれ...
-
ホームページビルダー 空白の...
-
CSSの設定
-
CSSでh1とその下の文字との行間...
-
外部CSSがFireFoxで反映されません
-
表をページ中央に表示
-
topmarginをネスケで
おすすめ情報