- ベストアンサー
ボックスの高さ指定についての質問
- baseのボックスに背景画像を設定していますが、boxの高さに合わせて背景画像と仕切り線を延長させたい場合、どうすれば良いでしょうか?
- HTMLとCSSでbase要素内に3つのbox要素を配置しています。box左には画像、box真ん中には仕切り線、box右にはテキストが入っています。
- box右(テキストの高さ)に合わせて、baseの背景画像とbox真ん中の仕切り線を延長させる方法を教えてください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
うーん、結局テーブル思考から離れる気はないのかな?テーブル思考から離れないと教えてもらっても受け取れないよ。#1さん#2さんの話も受け取ってないよね? 例:★本文★ 上の例で星がイラストとした場合、テーブル思考の人は「★と本文と★」を出てきた順にhtmlに書く。 css思考の人の場合、★の内容が本文の図解など、内容に関わる場合は「★2つと本文」をhtmlに描く。もし★が、デザイン上の飾りだったら、「本文」だけしか書かない。★は「本文」ブロックの背景としてcssで表示される様にデザインする。 今回の事は私は <div> <a href="#"><img src="#" alt=""></a> <ul> <li>ああああ</li> <li>いいいい</li> <li>うううう</li> <li>ええええ</li> <li>おおおお<a href="#">かかか</a></li> </ul> </div> でhtmlはいけると思う。罫線の引き方も知っているんだしとりあえずcssの考え方を当てはめてやってみない?罫線やパデイングやマージンは知っているんだし、ULというブロック。divというブロックとかたまりとしてみて、それぞれに背景や罫線や空間を当てはめてみない?何も諦める必要はないよ あっと、対象ブラウザによってhtmlも少し補正しないだめかもしれない難しいデザインだから、対象ブラウザも教えてくださいね。代わりにソースを書く気はないけど、添削ならするから。がんばってね
その他の回答 (3)
- DrFell
- ベストアンサー率55% (305/551)
<div class="box2_line"><img src="images/spacer.gif" width="1" height="1" alt=""></div> box2_line? これはないんじゃないかな?cssに「spacer.gif」の発想はちょっと……。 box2_lineって線を引く為にボックスを作るんですか?テーブルを直接置き換えても、どんどんややこしくなるだけですよ?cssは別の思考法で考えましょう。まず、思考のスイッチを変える必要があります。 急いでおられるなら、テーブルでいいんじゃないの?急いでおられるけど、他の場所は解決されても締め切られないし、急いでいるけど、貰った回答は長時間放置だし、ソースはテーブルレイアウト思考そのものだし。 cssだとね、 図とテキストのボックスを並べる。 テキストのボックスの左側に線を引く指定をする。 っていうふうに考えないと。
お礼
ご回答ありがとうございます。 やはりspacer.gifはいけないですよね。他にも使ってしまっています。 divにid又はclassで画像の指定をしている空タグ(box)だとうまく表示されないので、spacer.gifを入れてみたところうまく表示されたので使ってしまいました。cssの指定は、background-image又はborderと合わせてwidth(height)/margin:0 auto;/padding; 0;の数値を入れているのですが何か原因があるのでしょうか? 質問した高さの問題はテキストの背景を諦めればすんなりいくかもしれません。試してみます。
- goldfox
- ベストアンサー率49% (123/249)
box2の仕切り線とやらは、box3の左枠線を利用すればいいと思います。 baseの背景は、bodyの背景ではダメなのですか?
お礼
ご回答ありがとうございました。 <追記>2段組している右コンテンツ内の子boxなので、bodyの背景は無理なんです。baseの背景は枠線の両端部分の画像なのでベースは白です。 box3はテキストの背景だけにグレー色をつけたいのですが、base(基本色)は白背景なので、box2の縦点線両端はパディングでbox3と間隔をあけたいのです。box2(縦点線)の中にbox3(テキスト)を入れてたほうがうまくいくでしょうか?いろいろ試してみます。
- SAYKA
- ベストアンサー率34% (944/2776)
box右をbase(またはbase中のbaseその2)に据えて残り二つをその中に突っ込んでheight:100% テキストは回り込み とかどう?
お礼
ありがとうございます。試させて頂きます。
お礼
ご回答ありがとうございます。なかなかテーブルの発想から抜け出せなくて・・・。ブラウザーによっても違うし、cssを飲み込むのに苦戦してます。皆さんのお助けがあって助かっています。cssはとにかくhtmlのソースがシンプルになるようにということですよね。<div><img><ul>の3つにclass指定してみます。対応ブラウザはIE6/7とFirefoxです。
補足
div.base:after { (←afterを追加して解決しました) content: "."; display: block; height: 0; clear: both; visibility: hidden; } imgにclass="box1"指定して、ulにclass="box3"を指定しました。 box2の要素をbox3に入れて、box2をなくしました。そして、テキストの背景色はなくすことにしました。画像とテキストの間に仕切り線があって、テキストに背景までつけるとくどいかなと思いなくしました。ソースがシンプルになりました!ありがとうございました。