<!DOCTYPE html>
<html>
<head>
  <style>
    ul {
      background-color: tomato;
    }
    
    li {
      display: inline-block;
      height: 20px;
      width: 50px;
      margin: 10px;
    }
    
    a {
      color: white;
    }
    
    li:hover {
      cursor: pointer;
      background-color: teal;
    }
  </style>

  <body>
    <ul>
      <li><a href="#home">Home</a></li>
      <li><a href="#news">News</a></li>
      <li><a href="#news">About</a></li>
    </ul>
  </body>
</html>

我试图在home元素上获得悬停效果,该元素相应地从home元素的上方垂直开始(从红框顶部的*向右*)到下方(红框的底部),但到目前为止,未完成的悬停如代码片段所示.

我看到了一些答案,但我不能理解,当然使用了FlexBox,但我想从概念上解释为什么会发生这种不完整的悬停和解决方案修复.

推荐答案

正如预期的那样,悬停状态上的teal色覆盖了<li>元素的全部.但这一元素的得分是margin.空白处创建around个元素,而不是within个元素.它周围的空间不会随着悬停效果而改变 colored颜色 .

您可以将<li>上的margin替换为padding,以在元素中添加空格within:

<!DOCTYPE html>
<html>
<head>
  <style>
    ul {
      background-color: tomato;
    }
    
    li {
      display: inline-block;
      height: 20px;
      width: 50px;
      padding: 10px; /* <--- here */
    }
    
    a {
      color: white;
    }
    
    li:hover {
      cursor: pointer;
      background-color: teal;
    }
  </style>

  <body>
    <ul>
      <li><a href="#home">Home</a></li>
      <li><a href="#news">News</a></li>
      <li><a href="#news">About</a></li>
    </ul>
  </body>
</html>

Html相关问答推荐

输入宽度在表格显示上不起作用FLEX溢出隐藏Firefox

将输入字段下方的两个按钮设置为两侧对齐

现代网络浏览器可以并行下载哪些类型的网络资源?还有,什么东西不能并行下载?

我希望创建一个对角手风琴与不同的内容(文本和图像)在其正常状态和其他元素悬停

防止position:relative的child在出界时收缩

Css网格:两列,除非小于150px

浏览器是否可以呈现存储在代码点0x09处的字形?

为什么 Select 元素在带有数据绑定的Blazor上行为怪异?

网格布局中的组件

为什么 html 元素的 max-width 和 width 一起工作?

第 117 行的块标记无效:endblock,应为empty或endfor.您是否忘记注册或加载此标签?

我如何使用 html 在表格的单元格内实现下面显示的背景 colored颜色 加载器(请判断设计参考的图像链接)

如何通过像图像一样的 元素来调整 SVG 图标的大小

如何截断一些文本并用双引号引起来?

在 vscode 中找不到 htmltagwrap 命令

标签背景 colored颜色 的 html 和 css 技巧说明

无法使用 flexbox 裁剪图像

嵌套固定定位的 Div 滚动条渗透到前景中的 Div

如何在不删除

标记的情况下加入 HTML 中的段落

我可以将两个元素之间的所有空间都放在弹性框或网格中吗?