已经做了一些尝试来创建一个带有集成链接的TD,填充TD 100%,所以当我将鼠标悬停在整个TD上时,我可以看到光标的变化,当通过Tab键选择整个TD的元素时得到选择等问题是我在不同的浏览器中得到不同的行为,我无法找到适用于不同浏览器的解决方案。主要是以文本为中心的问题。
如果我只有TD并制作一个Javascript onclick事件来处理点击等,那么文本在所有浏览器中都很好,但我喜欢包含一个链接/锚点,以便用户可以选择要激活的元素行为(对残疾人也很好)。
在TD中制作一个没有填充高度并获得正常居中的锚点也很容易,但是我有一个问题,即当悬停时整个TD不会改变光标而只是TD的中心可以被选中。
您可以在此处查看我的部分试用版(将在稍后删除):http://pcrypt.dk/dev/contact.php - 例如在FF和Chrome中测试它们。
以下是HTML代码:
<table width=150 border=0>
<tr><td class=loginbutton id='sendtext'><a href=#><div style='height:100%; width:100%'>".$lang['contact']['PCCONTACTSENDBUTTON']."</div></a></td></tr>
<tr><td class=loginbutton id='sendtext'><a href=#><div style='display: table-cell; height:100%; width:100%'>".$lang['contact']['PCCONTACTSENDBUTTON']."</div></a></td></tr>
<tr><td class=loginbutton id='sendtext'><a href=#><div style='height:100%; width:100% display: table; overflow: hidden;'><div style='display: table-cell; text-align: center; vertical-align: middle;'><div style='text-align: center; vertical-align: middle;'>".$lang['contact']['PCCONTACTSENDBUTTON']."</div></div></div></a></td></tr>
<tr><td class=loginbutton id='sendtext'><a href=#><div style='height:100%; width:100% overflow: hidden;'><div style='text-align: center; vertical-align: middle;'><div>".$lang['contact']['PCCONTACTSENDBUTTON']."</div></div></div></a></td></tr>
<tr><td class=loginbutton id='sendtext'><a href=#><div style='width:100% overflow: hidden;'><div style='text-align: center; vertical-align: middle;'>".$lang['contact']['PCCONTACTSENDBUTTON']."</div></div></a></td></tr>
</table>
相关的CSS代码:
.loginbutton { font-weight: normal; text-align: center; vertical-align: middle; height: 26px; width: 150px; cursor: pointer; background-color: #d26628; color: #ffffff; font-size: 13px; }
.loginbutton a:link, a:visited, a:active { font-weight: normal; color: #ffffff; font-size: 13px; }
.loginbutton a:hover { font-weight: bold;}
.loginbutton:hover{ font-weight: bold; }
注意:我绝不是CSS专家; - )
PS:Stack Overflow上的菜单li元素(屏幕顶部)的行为不像这个btw,只能用鼠标访问 - 认为它是错误的。
答案 0 :(得分:7)
<table border="1" width="100%">
<tr>
<td>Stuff<br><br></td>
<td>
<a href="page.htm"><span> a Link </span></a>
</td>
<td>Stuff</td>
</tr>
</table>
td {
height: 100%;
}
a {
display: table;
position: relative;
height: 100%;
width: 100%;
background-color: yellow;
}
span {
display: table-cell;
text-align:center;
vertical-align: middle;
background-color: red;
}
height="100%"
,你也可以将它添加到css
答案 1 :(得分:2)
有多种方法可以做到这一点。这是一个:
如果要在整个空间中填充<a>
元素,可以将display
属性设置为inline-block
并将宽度和高度设置为100%。
所以,例如:
<table>
<tr>
<td>Stuff</td>
<td><a href="http://www.example.com">A Link!</a></td>
<td>More Stuff</td>
</tr>
</table>
table td
{
text-align: center; /*Aligns all content of td elements to center*/
}
table td a
{
display: inline-block; /*Behaves like a div, but can be placed inline*/
width: 100%; /*Full width of parent*/
height: 100%; /*Full height of parent*/
text-align: center; /*Centers content*/
}
答案 2 :(得分:1)
<style>
a {
display: block;
position: relative;
height: 100%;
background-color: yellow;
}
span {
display: block;
height: 50%;
position: absolute;
overflow: auto;
margin: auto;
top: 0; left: 0; bottom: 0; right: 0;
text-align:center;
background-color: red;
}
</style>
<table border="1" width="100%">
<tr>
<td>Stuff<br><br></td>
<td height="100%" width="30%">
<a href="http://www.google.com" target="_blank">
<span>A Link to Google!</span>
</a>
</td>
<td>Stuff</td>
</tr>
</table>
答案 3 :(得分:0)
我认为你需要这个
<td align="center"><a href=""></a></td>