2013-03-07 90 views
0

http://www.fccorp.us/index.php垂直居中链接在里面Div

左边的垂直列是我的站点菜单系统。该列是一个高度为100%的div,不同的细节是div放在它上面。

这些按钮是DIV的空白按钮作为背景,并带有链接。我有两个不同大小的按钮,大一个60px高,小一个30px。使用CSS可以让链接垂直居中,而不管按钮的DIV的高度如何?

我看了这里,并使用了几个CSS网站& Android应用。这里的网站表明我不能,但我不明白为什么CSS组不会创建垂直居中功能,因为它似乎是必要的。

我只是想念一些东西,或者我真的想获得一些CSS不具备的东西吗?

+0

垂直对齐有许多方法:http://www.vanseodesign.com/css/vertical-centering/或http://css-tricks.com/centering-in -the-unknown/ – cimmanon 2013-03-07 22:19:45

回答

2

根据您的网站,您可以使用line-height来调整文本的垂直位置。

尝试将其应用到你的身高30PX链接:

line-height: 30px; 

而这对于60像素高大:

line-height: 60px; 

此外,你不应该内<a>标签嵌套<div>标签。

+0

或者他可以使用填充顶部和底部来设置固定的高度。 – 2013-03-07 21:27:53

0

添加到您的CSS。不管它会用自己的按钮的高度:

.menubar a div { 
    display: table-cell; 
    vertical-align: middle; 
} 
+2

True ...但另一方面,它会导致许多其他属性以通常意想不到的方式运行(宽度,高度和边距至少受_table-cell_显示设置的影响)。 – Grim 2013-03-07 21:41:08

2

使用此:

.menubuttonthick{line-height:60px;} 
.menubuttonthin{line-height:30px;} 

这将集中所有链接。

在另一方面,目前你有以下结构:

<a href="#"> 
    <div>text</div> 
</a> 

这是无效的HTML。我不是“HTML必须始终有效”类型的人,但是当你可以很容易地修复它时,我认为这并不会伤害它的有效性。您应该使用以下内容:

<div> 
    <a href="#">text</a> 
</div> 
+0

“这是无效的HTML”< - 你确定吗? http://html5doctor.com/block-level-links-in-html-5/ – cimmanon 2013-03-07 21:40:50

+0

非常感谢,它集中了文本,就像我需要的一样。我也接受了关于嵌套div的建议。我知道这在技术上并非有效,但它工作。不幸的是,现在我有一些产品是通过将该类移动到标签产生的。有什么想法吗? – 2013-03-07 21:42:56