
テーブルデザインよりスタイルシートに挑戦しているものです。
素人なりに下記のソースを作成してみたのですがもっとスマートなソースはどのようなものになりますか?
作りたいものは三枚の画像を使い上部、中部、下部で
一つのわくのなかに文字(この場合h1、h2、p要素)を表示させたいです。しかしこの場合、それぞれの要素にマージンを指定しないと画像の先端と重なってしまいます。divに空きを指定すると背景画像で指定した中部がずれてしまいました、、、
<div class="test">
<img src="top.gif" height="30" width="500" alt=""><BR>
<h1>あいうえお</h1>
<h2>あいうえお</h2>
<h3>あいうえお</h3>
<p>あいうえお</p>
<p>あいうえお</p>
<img src="bottom.gif" height="30" width="500" alt=""></div>
.test {
width:500px;
background-image: url(middle.gif);
background-repeat:repeat-y;
}
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
補足をお願いします。
>それぞれの要素にマージンを指定しないと画像の先端と重なってしまいます。
とありますが、具体的にどの要素のどの方向にマージンが必要なんですか?また、画像の先端とは画像のどの部分ですか?画像がないので最終的にどのようなデザインにしたいのかわかりません。
まず、1つの画像を3つに分ける理由から教えていただけませんか?
No.2
- 回答日時:
ちょっと邪道かもしれませんが、以下の様な感じでできないでしょうか…
<div id="top"></div>
<div id="content">
<h1>あいうえお</h1>
<h2>あいうえお</h2>
<h3>あいうえお</h3>
<p>あいうえお</p>
<p>あいうえお</p>
</div>
<div id="footer"></div>
h1, h2, h3, p, div {
margin: 0px; padding: 0px;
}
p {
padding-bottom: 10px; }
#top {
height:30px; width:500px;
background: url(top.gif) no-repeat;
}
#content {
margin: 0px; padding: 10px;
width:500px;
background: url(middle.gif) repeat-y;
}
#footer {
height:30px; width:500px;
background: url(footer.gif) no-repeat;
}
これだと、スタイルシートが効かない場合、画像は全く表示されません。
しかし、上下の画像も意味の無いただの飾りなら、情報は伝わると思われます。
No.1
- 回答日時:
まず、根本的な考え方が間違っています。
HTML では文章のみを記述し、デザインに関する一切は全てスタイルシートで行うのです。(文章と見た目の分離)
ご質問にある例では三つの画像を組み合わせることで一つのデザインができるはずなのに、三つのうち二つが HTML に、一つがスタイルシートにあり、情報が分散してしまっています。これでは絶対にうまくいきません。
文章と見た目の分離がちゃんと行われていれば、三つの画像に関する情報はすべてスタイルシートに書かれているはずです。
もう一つの間違いは、テーブルデザインでやっていたことをスタイルシートで (正確には CSS で) 再現しようとしていることです。
テーブルデザインでできたことがすべて CSS でもできるとは限りません。
例えば (今回の質問のように) 複数の画像を組み合わせて枠を作るということはテーブルデザインではよく行われていましたが、今の CSS ではこのようなことはできません。(なぜできないのかという理由はここでは割愛します)
できないことを無理やりやろうとして悪戦苦闘していては「スタイルシートは難しい、、、」というのも当然でしょう。
はっきり言って、今の CSS のデザイン能力はテーブルデザインに劣ります。それでもなぜスタイルシートが勧められるのかというと、文章と見た目の分離による作業能率の向上、アクセシビリティの向上などのメリットがあるからです。
CSS でテーブルデザインよりもかっこいいデザインが出来ると思っているならそれは間違いです。CSS でできるのは「賢い」デザインです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
クリッカブルマップのタップし...
-
lightbox2で画像を天地左右中央...
-
background-sizeでcontainする...
-
LightBoxの矢印の出し方
-
【Webサイト】画像が小さく表示...
-
【至急お助け!】チェックボッ...
-
<hr>の縦バージョンはありますか?
-
画像とその下にあるテキストの...
-
同じ画像 複数回使用
-
格子状(チェック柄?グリッド...
-
HTMLです 店主のこだわりという...
-
background-repeat CSS で切れ...
-
スクロールすると追従する画像...
-
CSS 配置 Absolute、Margin
-
CSSで背景画像に指定されている...
-
背景画像のサイズ
-
PDFの保存ボタンが表示されません
-
Photoshopで画像解像度が300dpi...
-
画像貼り付け、URLに飛べる軽い...
-
透過背景画像のビットマップ形...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
画像とその下にあるテキストの...
-
<hr>の縦バージョンはありますか?
-
【至急お助け!】チェックボッ...
-
【Webサイト】画像が小さく表示...
-
background-sizeでcontainする...
-
iframe内をクリックさせない方...
-
画像の上にテキスト配置で、拡...
-
同じ画像 複数回使用
-
background-repeat CSS で切れ...
-
ページごとに背景画像を変更し...
-
IMGタグで画像の繰り返し使用は…
-
ホームページの背景について・・
-
要素の幅をいろんな写真の幅に...
-
画像上に文字を表示するとiPhon...
-
コーディング中、右側に謎の余...
-
cssで画像と文字を同じ位置にす...
-
HP作成 作成した画像を動画の上...
-
lightbox2で画像を天地左右中央...
-
ネットスケープでのスタイルシ...
-
CSSでスクロールバー
おすすめ情報