• 締切済み

文字がどうやっても上揃えになってしまう

xhtmlでサイト構築中なんですが、文字が上揃え状態から解除できずにもがいています。 ある部分にこのような要素を書いています。 --------------------------- <div id="a">あいうえお</div> --------------------------- そしてそのCSSを下記のようにしてます。 --------------------------- #a { width:150px; margin:0px; vertical-align:bottom; padding:0px; height: 50px; background: url("img/bg.gif"); background-repeat: no-repeat; background-position:0px 0px; float: left; } --------------------------- これで添付の写真のように文字が最上部にしかなりません。 padding等で指定してもまったくなりません(ToT) 何かヒントでもいいのでアドバイスお願いしますm(_ _)m

みんなの回答

  • salonpath
  • ベストアンサー率48% (194/399)
回答No.3

無駄って。。。 positionの使い方を確認してみてください。

mina519
質問者

お礼

回答ありがとうございます。 自力でなんとかIEも表示ができました。 >positionの使い方を確認してみてください。 やってみたけどこっちのほうが無駄でした(^^;)

  • askaaska
  • ベストアンサー率35% (1455/4149)
回答No.2

これはね、上揃えになっているわけじゃないの。 vertical-alignの意味を履き違えているのよ。 vertical-alignは領域の中で縦方向の位置を指定するためのものではなく 1行の中で縦方向の位置を示しているの。 Excelで例えれば、 <div id="a">の領域はA1~A3なのよ。 でも今文字「あいうえお」が入力されているのはA1のセルなわけ。  セルの書式で縦方向を下に揃えたり中央に配置したりしても A1のセルの中でのみ上下するだけで A1~A3と言った広い範囲を上下するわけじゃないでしょ? ためしにheightをline-heightに変えてみなさい。 領域aを1行と捕らえればちゃんとvertical-alignが働くのが判るはずよ。 ということで ・line-heightで指定する  (Excelでいうならば行の高さを大きくする) ・divではなくtableタグでセルを作成する  (vertical-alignは行だけじゃなく、セルにも使える) ・heightは小さくして、paddingで上下に余白を取る こんなやり方があるわね。

mina519
質問者

お礼

回答ありがとうございます。 エクセルの意味はよ~く理解できました。 ですが他の部分がちょっと理解ができないというか、しっくり来ないというか・・ とりあえずいわれたとおりにやったんですが、safariとfirefoxではちゃんと表示されますが、IE6では下との間に隙間ができてしまい、NGでした。 これはIE6には適用できないのでしょうか?

  • salonpath
  • ベストアンサー率48% (194/399)
回答No.1

あいうえおをブロック要素で囲んで positionでbottomに配置するとか display:table-cell; vertical-align:bottom; を追加するとか(対応させたいブラウザの指定がないので)

mina519
質問者

お礼

回答ありがとうございます。 pで囲んでも無駄でした。 ありがとうございました。

関連するQ&A

専門家に質問してみよう