为什么文本修饰在我的代码中不起作用?
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>
'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>