der*_*ann 16
您最好的选择是为元素添加填充或边距,其大小与边框相同,并使边框的宽度为零,然后显示边框并使用a:hover选择器删除填充.
这是一个样本.您也可以使用边距来执行此操作.
a {
display: inline-block;
height: 2em; width: 100px;
padding: 2px;
background: #0ff;
}
a:hover {
padding: 0;
border :2px solid #000;
}Run Code Online (Sandbox Code Playgroud)
<a href="#">Hello World</a>Run Code Online (Sandbox Code Playgroud)
一个原因这是行不通的,你会想到的是,因为你只申请display:block上:hover,它需要被应用到元素而不:悬停选择,否则你会得到"转向"的尺寸.使用哪种显示类型并不重要,您只需确保它们是相同的,默认情况下<a>是内联的.
另一个原因与您的速记边框有关,您需要为透明版本添加边框类型,solid而不是none.
您使用的技术是完全合法的,不需要填充黑客或大纲(不添加维度).
http://jsfiddle.net/Madmartigan/kwdDB/
试试这个:
#wd-navbar li a {
border: medium solid transparent;
display: block;
margin: 1px;
}
#wd-navbar li a:hover {
background-color: #F5DEB3;
border: medium solid;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
51524 次 |
| 最近记录: |