You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让span元素占满父div的全部高度?

问题

我正在独立制作个人首个网站,现有一组作为选择器(selector)的span元素,希望鼠标悬停(hover)时,这些span能占满其所在div的全部空间,但不知如何实现,特此求助。以下是我的代码:

CSS代码

*
{
    margin:0;
    padding:0;
}
.selector  {
    cursor: pointer;
    padding-right: 40px;
    padding-left: 20px;
    display:inline-block;
}
.link  {
    background-color:LightGray;
    color:black;
    padding: 5px;
    font-size: 25px;
    overflow:hidden;
}

HTML代码

<div class="link"><b>
    
<span onmouseover= 'style="background-color:white;"' onmouseout= 'style="background-color:LightGray;"' style="color:black;" class="selector">Prehrana</span>
<span onmouseover= 'style="background-color:white;"' onmouseout= 'style="background-color:LightGray;"' style="color:black;" class="selector">Pica</span>
<span onmouseover= 'style="background-color:white;"' onmouseout= 'style="background-color:LightGray;"' style="color:black;" class="selector">Ciscenje  </span>
<span onmouseover= 'style="background-color:white;"' onmouseout= 'style="background-color:LightGray;"' style="color:black;" class="selector">Drugo</span>
<span onmouseover= 'style="background-color:white;"' onmouseout= 'style="background-color:LightGray;"' style="color:black;" class="selector">Akcija</span>

</b></div>

注:span内的文本为克罗地亚语,这是我首次独立制作网站,请不要取笑我。

解决方案

试试这么改就能实现你要的效果:

  • 换掉内联鼠标事件,用CSS的:hover伪类
    你现在写的onmouseover和onmouseout太繁琐,直接用CSS的:hover就能搞定悬停样式切换,代码更干净还好维护。

  • 把.link改成Flex布局
    给.link加个display: flex和align-items: stretch,这样里面的span会自动拉满整个div的高度;再补个align-items: center能让文本垂直居中,看着更舒服。

  • 调整.selector的内边距和高度
    把.link原来的padding移到.selector上,避免span和div边缘留空隙;给.selector设height: 100%,确保它能填满div的高度;再加个display: flex和align-items: center让span里的文本居中。

修改后的完整代码:

CSS

* {
    margin: 0;
    padding: 0;
}
.link {
    background-color: LightGray;
    color: black;
    font-size: 25px;
    overflow: hidden;
    display: flex;
    align-items: stretch;
}
.selector {
    cursor: pointer;
    padding: 5px 40px 5px 20px;
    display: flex;
    align-items: center;
    height: 100%;
    transition: background-color 0.2s; /* 可选:加个过渡动画,hover时颜色变化更丝滑 */
}
.selector:hover {
    background-color: white;
}

HTML

<div class="link"><b>
    <span class="selector">Prehrana</span>
    <span class="selector">Pica</span>
    <span class="selector">Ciscenje</span>
    <span class="selector">Drugo</span>
    <span class="selector">Akcija</span>
</b></div>

这样改完,鼠标悬停在span上时,它的白色背景会完全填满整个.linkdiv的空间,不管高度还是左右的内边距都贴合得刚刚好。

内容的提问来源于stack exchange,提问作者Thief Beatbox

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 08:32:17