- - PR -
[ASP.NET]スタイルシートでのラベルの設定
1
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-11-17 18:52
お世話になってます。
今回はスタイルシートの設定について質問させてくださいm(_ _)m 現在スタイルシートで、ラベルに対して設定を行っています。 ラベル上でのテキストの垂直位置を指定したいのですが、 vertical-align:middle; に設定しても設定がうまく効いてくれません。 水平位置の text-align:left; は効いてくれるのですが…。 ラベル上でテキストの垂直位置を中央にもっていきたいのですが どなたか方法をご存知ないでしょうか? よろしくお願い致しますm(_ _)m | ||||||||||||
|
投稿日時: 2005-11-17 19:21
出来上がった HTML のソースを見て頂くとわかるかと思いますが、 Label といっても、Windows Form の Label コントロールとはわけが違いますからね。 ブロック要素にして、margin を設定するくらいしか思いつきません。 ただ、あるブラウザで中央に位置合わせできたとしても、 別のブラウザでは、違う位置に表示されたりしますので、 私の場合は放置しています。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||
|
投稿日時: 2005-11-17 19:22
LabelはHTML上では<span>タグになります。
<span>でvertical-alignが効かないのはHTMLの仕様(いや、ブラウザの仕様かな?)みたいですね。 Labelだけで何とかするなら改行で調節するか絶対配置を使うしかないんじゃないでしょうか。 もしくは<td>など、vertical-alignが効くタグの内側に入れてやる。 | ||||||||||||
|
投稿日時: 2005-11-17 19:30
なるほど、その発想がありましたか。試してみたら、IEだと padding-top:40%; でそれっぽくなりますね。縦幅全体に占める文字自体の高さによって厳密に中央にはなりませんが。 | ||||||||||||
|
投稿日時: 2005-11-17 19:36
ああ、これを話しておくべきでしたよね。 Label って表現されると、Windows アプリケーション開発者は、 あの Label コントロールと同じ感覚になってしまうんですよね。 そのためにも、表示された Web ページの HTML ソースを見て、 どの要素に置き換わっているのかなどを見て頂きたいわけですが、 HTML 云々の知識がない方には通用しなくて悩ましいところです。
本当は、HTML の仕様なんですけどね。(^-^;) span はインライン要素ですからね。
padding だとそうなりますよね。 あとは、親のブロック要素に対して、margin、での調整しかないですよね。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||
|
投稿日時: 2005-11-18 09:55
いつもありがとうございますm(_ _)m
教えていただいた padding-top を使ってやってみました。 テキストが真ん中に表示されました! 指摘されたとおりWindowsアプリケーションのラベルの イメージがあったので、 「なんでこの方法ではだめなんだろう?」 と悩んでいました^^; ありがとうございます。 皆様のおかげでまた1つ問題が解決しましたm(_ _)m HTMLをもっと勉強しないとだめですね(-_-; | ||||||||||||
|
投稿日時: 2005-11-18 11:41
すみません。ここの記述に関して、モヤモヤが取れないので確認させてください。 この記述だと、「spanはインライン要素だからvertical-alignが効かない」 裏を返すと、「ブロック要素ならvertical-alignが効く」と読み取れるのですが… http://www.tohoho-web.com/html/memo/elem.htm#blockinline ここを見ると、確かにspanはインライン要素ですが、Pやdivがブロック要素になってます。 でも、IE6だとPやdivでvertical-alignが効きません。 それから、 http://www.w3.org/TR/1999/REC-CSS1-19990111#vertical-align ここを見たら、Applies to: inline elementsって書いてあるんですが(^^; ちょっと混乱してきました。結局、CSSについては仕様を確認するより 実際にサポート対象のブラウザで表示して確認するのが早いんですかね? | ||||||||||||
|
投稿日時: 2005-11-18 12:41
ご指摘ありがとうございます。
思いっきり勘違いしておりました。(*_ _) 正しくは「align (並ばせる) 基準になる要素がないから vertical-align がきかない」ですね。 IE 限定だと inline-block で以下のことができるため混同して誤解しておりました。
インライン要素に適用するですが、反映されるのは以下のような状況の時ということでしょうね... 混乱させてしまって、申し訳ありません。(*_ _)
_________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 |
1