CSS仅在文本上悬停?

时间:2019-03-18 16:10:43

标签: html css text hover

如果我有以下带有自定义CSS类的HTML:

.custom_list_item {
  color: black;
}

.custom_list_item:hover {
  color: red;
}
<div class="custom_list_item">Test</div>

这样,当我将鼠标悬停在整个框上时,它会使文本变为红色。有没有办法确保仅当我将鼠标悬停在文本本身上时才会发生这种情况?

4 个答案:

答案 0 :(得分:5)

将其包装在span中。 p会延伸到div的整个宽度上。

.custom_list_item {
    color: black;
}

.custom_list_item span:hover{
    color: red;
}
<div class="custom_list_item"><span>Test</span></div>

答案 1 :(得分:2)

先将其包装,然后再设置样式跨度:

.custom_list_item {
  color: black;
}

.custom_list_item span:hover {
  color: red;
}
<div class="custom_list_item">
  <span>Test</span>
</div>

答案 2 :(得分:1)

将该div的display propertyblock更改为inline-block。不需要像span这样的额外元素。

.custom_list_item {
  color: black;
  display:inline-block;
}

.custom_list_item:hover {
  color: red;
}
<div class="custom_list_item">Test</div>

默认情况下,div是块级元素,并且会占据其父元素的整个宽度。

答案 3 :(得分:1)

您可以为div包装一个跨度并设置span:hover

.custom_list_item {
    color: black;
}

span:hover{
    color: red;
}

div{
border: 3px solid red;
}
<div class="custom_list_item"><span>Test</span></div>