2013年1月10日 星期四

Label如何將文字水平跟垂直都能置中對齊

<Label>的文字水平對齊方式超簡單,在CSS檔, 或Style區段內設定一行text-align:center(left, right);一行搞定,但垂直對齊呢?說真的,對不知道的人來說,還真的很難,甚至還有人說:「can't , Impossible」。

後來終於爬到文章了,中間雖然有些人提到可以用margin-top, margin-left來控制,但是,我發現很困難控制位置,而最佳的解法應該就是底下這樣:

首先,有個首要條件:
position:absolute;
這樣就需對你的Label設定left, top, width, height,然後加入底下這兩行,就能讓文字垂直置中對齊。


vertical-align:middle;
line-height: 50px; (這裡的高度,設定跟<Label>的height一樣高)



我的應用上,是在image物件上,擺上一個<Label>,整個當按鈕來控制。所以每一個<Label>的left, top, width, height都設定成跟<Image>一樣,然後加上上面兩行的垂直置中對齊,就搞定了。

你有可能想到:「為什麼不直接讓<Label>的top數值都比<Image>多個10點或15點就可以達到置中」啦?但,實際做的時候,會發現,在Chrome跟IE底下看到結果會不同(哭哭),在Chrome會比較高,在IE看到同樣設定的數值卻會比較低,上述的方法還是比較穩定些的。

1 則留言:

  1. 如果內容為200字 字體20px 表示他一定會變成多行時...
    整個就是字體大量跑出去...

    回覆刪除