【问题标题】:How to highlight a whole cell when hovering over link悬停在链接上时如何突出显示整个单元格
【发布时间】:2013-08-26 18:10:03
【问题描述】:

我有一个水平导航栏,当我将鼠标悬停在链接上时,我想突出显示链接所在的整个单元格,但是,我只能突出显示文本周围的直接区域。我将不胜感激任何关于如何实现这一目标的指示。

这是我的 JS 小提琴:http://jsfiddle.net/PYKXb/1/

这是我的 CSS 代码:

#horizontal-style {
    display: table;
    width: 100%;
    margin:0px;
    padding-top:0px;
    padding-bottom:0px;
    padding-left:0px;
    padding-right:0px;
}

#horizontal-style li {
    display: table-cell;
    vertical-align:middle;
    height:auto;
    padding:1%;
}

#horizontal-style a:link {
    display: block;
    border: none;
    text-align: center;
    margin:auto;
    padding:none;
    background:#ebebec;
    color:#005da4;
    text-decoration:none;
    font-family: Arial, Helvetica, sans-serif;
    font-weight:bold;
    font-size:90%;
    display:inline-block;
    vertical-align:middle;
}

#horizontal-style a:visited {
    display: block;
    border: none;
    text-align: center;
    margin:auto ;
    padding:none;
    background: #ebebec;
    color:#005da4;
    text-decoration:none;
    font-family: Arial, Helvetica, sans-serif;
    font-weight:bold;
    font-size:90%;
    display:inline-block;
    vertical-align:middle;
}

#horizontal-style a:hover {
    display: block;
    border: none;
    text-align: center;
    margin:auto ;
    padding:none;
    background: #acce39;
    color:#005da4;
    text-decoration:none;
    font-family: Arial, Helvetica, sans-serif;
    font-weight:bold;
    font-size:90%;
    display:inline-block;
    vertical-align:middle;
}

#horizontal-style a:hover {
    display: block;
    border: none;
    text-align: center;
    margin:auto ;
    padding:none;
    background: #acce39;
    color:#005da4;
    text-decoration:none;
    font-family: Arial, Helvetica, sans-serif;
    font-weight:bold;
    font-size:90%;
    display:inline-block;
    vertical-align:middle;
}

这是我的 HTML 代码:

<ul id="horizontal-style">
    <li><a href=# >Home</a></li>
    <li><a href=# >About Us</a></li>
    <li><a href=# >Online<br />Courses</a></li>
    <li><a href=# >Registration</a></li>
    <li><a href=# >Faculty</a></li>
    <li><a href=# >Calendar</a></li>
    <li><a href=# >Store</a></li>
    <li><a href=# >Testimonials</a></li>
    <li><a href=# >Online<br/>Lectures</a></li>
    <li><a href=# >Contact Us</a></li>
    <li><a href=# >Forum</a></li>
</ul>

【问题讨论】:

  • 你为什么不在jsfiddle.net 构建一个演示小提琴,它只会帮助这个过程。谢谢!
  • 感谢您的提示。我在代码上方添加了链接。

标签: html css hyperlink highlight css-tables


【解决方案1】:

这很好,看看here

#horizontal-style li {
    display: table-cell;
    vertical-align:middle;
    height:auto;
    padding:1%;
    background:#ebebec;
}
#horizontal-style li:hover{
    background-color:#acce39;
}

【讨论】:

  • 太棒了。太感谢了!它在很大程度上解决了我的问题。任何机会你都可以帮助我将文本集中在突出显示的单元格中。所有 'a' 样式都有 'text-align: center;'作为一个属性,但突出显示似乎向右倾斜,尤其是在宽屏幕上。
  • 不是让整个单元格都变成超链接。它只适用于文本
  • 将 text-align:center 添加到 li
【解决方案2】:

只需将填充从li 移动到a 并添加widthheight 等于100%

#horizontal-style a:link {
   padding: 1%;
   width: 100%;
   height: 100%;
   ...
   ...
}

它使整个单元格超链接。

查看演示:http://jsfiddle.net/aepKP/

【讨论】:

  • 虽然我喜欢你制作整个盒子的方式,但有没有办法让文本保持垂直对齐?似乎所有代码都还在,但现在无法正常工作。
  • 看起来'a'样式中的高度属性是禁用垂直对齐的原因。
【解决方案3】:

您在代码中使用了很多重复且不必要的 CSS。尝试优化它。
其次,在我看来,实现此目的的另一种方法是使用父“div”标签将您的菜单包含在其中。
“ul”标签内的所有“li”标签都可以向左浮动。 (这给出了水平菜单外观)
您的“li”标签内的所有链接标签“a”都可以在您的 CSS 中以您想要的宽度设置为“display : block”样式。
因此,现在当您使用 CSS 更改“背景颜色”来更改链接的“悬停”状态时,您选择的整个宽度都会变成颜色。

希望这会有所帮助!

CSS:

#menubar{
height:50px;
background:#000000;
margin-top:100px;
padding-top:15px;
padding-left:20px;
}
ul{
list-style-type:none;
padding:0px;
margin:0px;
}
#menubar ul li{

float:left;
}
#menubar ul li:hover a{
background:#fff;
}
#menubar ul li a{
text-decoration:none;
color:#FFF;
display:block;
width:150px;
text-align:center;
}

HTML:

<div id="menubar">
<ul>
<li><a href="#">Home</a></li>
<li><a href="#">A</a></li>
<li><a href="#">B</a></li>
<li><a href="#">C</a></li>
<li><a href="#">D</a></li>
</ul>
<div style="clear:both;"></div>
</div>

【讨论】:

  • 虽然我很欣赏它的清洁度,但你能不能让它突出它周围的一些填充物,使其上下延伸而不是左右延伸?当我尝试自己执行此操作时,我一直在链接之间看到一些楼梯。
  • 它可以轻松完成。只需将以下内容添加到“a”链接元素“padding-top:10px;padding-bottom:10px;”的 CSS或根据需要。
猜你喜欢
  • 2012-08-08
  • 2020-08-13
  • 2018-01-07
  • 2015-11-03
  • 1970-01-01
  • 2019-09-26
  • 1970-01-01
  • 2015-02-11
  • 1970-01-01
相关资源
最近更新 更多