为什么文本修饰在我的代码中不起作用?

Why does text-decoration not work in my code?

'list item 2' 在我的代码中没有 hyperlink 在下拉菜单 hyperlink 中加下划线,直到我将鼠标悬停在它上面。这是我期望并希望它做的。

问题是当我尝试向下拉列表 link 添加多个 hyperlink 时,如 'list item 1' 所示,hyperlink 都是在我将鼠标悬停在它们上面之前加了下划线。

我不得不将 link 1 & 2 for 'list item 1' 放在 a 中,因为没有它 link 1 & 2 会相互重叠。如果我在重叠时在它们之间添加 <br>,这也会通过将其向下推来影响 'list item 2'。

要明确一点,我希望 'list item 1' 和 'list item 2' 处于同一水平,所有 link 在我将鼠标悬停在它们上面之前都不会加下划线。

我在网上搜索过 'text-decoration: none' 的问题似乎很常见,但我找不到任何解决我的特定问题的方法。

在我的示例中,我将 href 属性留空,因为它们 link 在这里并不重要。

ul {
  list-style-type: none;
}

a:hover {
  text-decoration: underline;
}

.dropdown {
  display: inline-block;
  width: 100px;
  height: 25px;
  background-color: black;
  color: white;
  padding: 20px;
  text-align: center;
  font-size: 20px;
}

.dropdown-content {
  display: none;
  position: absolute;
  background-color: #f1f1f1;
  padding: 12px 16px;
  text-decoration: none;
}

.dropdown:hover .dropdown-content {
  display: block;
}
<ul>
  <div class="dropdown">
    <li>list item 1</li>
    <div class="dropdown-content">
      <a href="" target="_blank">link 1</a><br>
      <a href="" target="_blank">link 2</a>
    </div>
  </div>

  <div class="dropdown">
    <li>list item 2</li>
    <a class="dropdown-content" href="" target="_blank">link 1</a>
  </div>

调整这些css,你需要为.dropdown-content a添加css并移动a:hover到结束

.dropdown-content a{
  text-decoration: none ;
  }

  a:hover {
  text-decoration: underline ;
}

<!DOCTYPE html>

<html>
<head>
<style>
  ul {
  list-style-type:none;
}



.dropdown {
  display: inline-block;
  width:100px;
  height:25px;
  background-color: black;
  color: white;
  padding: 20px;
  text-align: center;
  font-size: 20px;
}

.dropdown-content {
  display: none;
  position: absolute;
  background-color: #f1f1f1;
  padding: 12px 16px;
  text-decoration: none ;
 }
 
 .dropdown-content a{
  text-decoration: none ;
  }
  
  a:hover {
  text-decoration: underline ;
}
 

.dropdown:hover .dropdown-content {display: block;}
</style>
</head>
<body>


<ul>
<div class="dropdown">
  <li>list item 1</li>
    <div class="dropdown-content">
    <a href="" target="_blank">link 1</a><br>
    <a href="" target="_blank">link 2</a>
    </div>
</div>

<div class="dropdown">
  <li>list item 2</li>
  <a class="dropdown-content" href="" target="_blank">link 1</a>
</div>

 </body>
</html>

您需要定位 a 元素,以便您可以在这两种情况下使用额外的包装器并调整 CSS 如下:

我还更正了无效的 HTML,因为您只能使用 li 作为 ul[=15= 的子项]

ul {
  list-style-type: none;
}

.dropdown {
  display: inline-block;
  width: 100px;
  height: 25px;
  background-color: black;
  color: white;
  padding: 20px;
  text-align: center;
  font-size: 20px;
}

.dropdown-content {
  display: none;
  position: absolute;
  background-color: #f1f1f1;
  padding: 12px 16px;
}

.dropdown-content a {
  text-decoration: none;
}

.dropdown-content a:hover {
  text-decoration: underline;
}

.dropdown:hover .dropdown-content {
  display: block;
}
<ul>
  <li class="dropdown">list item 1
    <div class="dropdown-content">
      <a href="" target="_blank">link 1</a><br>
      <a href="" target="_blank">link 2</a>
    </div>
  </li>

  <li class="dropdown">list item 2
    <div class="dropdown-content">
      <a href="" target="_blank">link 1</a>
    </div>
  </li>
</ul>