鼠标移开后的悬停效果
Hover effect after mouse out
我正在尝试学习 HTML/CSS 的基础知识。我在 css 中了解了 :hover,当光标悬停在元素上时,根据编写的代码会发生一些事情。然后,您还可以使用 transition
标记,使转换需要一些时间。但是,当光标离开元素时,它会返回到原始位置,而不会进行过渡,这很糟糕。这是我写的代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<style>
.required::before {
content: '';
display:block;
width: 10px;
height: 10px;
background-color: red;
border-radius:10px;
}
.required::after {
content: '';
display:inline-block;
width: 10px;
height: 10px;
background: blue;
margin-left: -20px;
}
.required:hover::after{
transform: translateX(100px);
transition: 1s;
}
</style>
</head>
<body>
<label class = required>Name</label>
</body>
</html>
当光标悬停时,立方体以1秒为单位移动。鼠标移出,它立即returns在他的第一个位置。我希望它 returns 在相同数量类型的位置。希望我的描述足够清楚。感谢您的帮助
将 transition
放在 .required::after
中,因为将过渡放在这里会使悬停效果在 :hover
中花费固定的时间 start/end 效果它的开始时间为固定值,但没有指定结束时间。
如果想在修复 属性 上应用过渡,请在 transition
中的时间之前使用那个 属性 名称,就像这里一样,您可以编写 transition: transform 1s;
,这样 transition
将应用于 transform
属性 值
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<style>
.required::before {
content: '';
display: block;
width: 10px;
height: 10px;
background-color: red;
border-radius: 10px;
}
.required::after {
content: '';
display: inline-block;
width: 10px;
height: 10px;
background: blue;
margin-left: -20px;
transition: 1s;/*Put transition here*/
}
.required:hover::after {
transform: translateX(100px);
}
</style>
</head>
<body>
<label class="required">Name</label>
</body>
</html>
问题是,当用户悬停时,过渡仅为伪元素设置,因此一旦悬停停止,过渡 属性 将返回默认值 - 即没有过渡。
将该过渡设置移动到非悬停 class 设置意味着无论悬停是否发生,return 也将过渡。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<style>
.required::before {
content: '';
display: block;
width: 10px;
height: 10px;
background-color: red;
border-radius: 10px;
}
.required::after {
content: '';
display: inline-block;
width: 10px;
height: 10px;
background: blue;
margin-left: -20px;
transition: 1s;
}
.required:hover::after {
transform: translateX(100px);
}
</style>
</head>
<body>
<label class=r equired>Name</label>
</body>
</html>
除了前面的答案正确地告诉您将转换 属性 移动到 .required::after
,您还需要小心使用没有 属性 名称的 transform: 1s
.默认情况下,这将为 ALL 属性创建转换。
我正在尝试学习 HTML/CSS 的基础知识。我在 css 中了解了 :hover,当光标悬停在元素上时,根据编写的代码会发生一些事情。然后,您还可以使用 transition
标记,使转换需要一些时间。但是,当光标离开元素时,它会返回到原始位置,而不会进行过渡,这很糟糕。这是我写的代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<style>
.required::before {
content: '';
display:block;
width: 10px;
height: 10px;
background-color: red;
border-radius:10px;
}
.required::after {
content: '';
display:inline-block;
width: 10px;
height: 10px;
background: blue;
margin-left: -20px;
}
.required:hover::after{
transform: translateX(100px);
transition: 1s;
}
</style>
</head>
<body>
<label class = required>Name</label>
</body>
</html>
当光标悬停时,立方体以1秒为单位移动。鼠标移出,它立即returns在他的第一个位置。我希望它 returns 在相同数量类型的位置。希望我的描述足够清楚。感谢您的帮助
将 transition
放在 .required::after
中,因为将过渡放在这里会使悬停效果在 :hover
中花费固定的时间 start/end 效果它的开始时间为固定值,但没有指定结束时间。
如果想在修复 属性 上应用过渡,请在 transition
中的时间之前使用那个 属性 名称,就像这里一样,您可以编写 transition: transform 1s;
,这样 transition
将应用于 transform
属性 值
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<style>
.required::before {
content: '';
display: block;
width: 10px;
height: 10px;
background-color: red;
border-radius: 10px;
}
.required::after {
content: '';
display: inline-block;
width: 10px;
height: 10px;
background: blue;
margin-left: -20px;
transition: 1s;/*Put transition here*/
}
.required:hover::after {
transform: translateX(100px);
}
</style>
</head>
<body>
<label class="required">Name</label>
</body>
</html>
问题是,当用户悬停时,过渡仅为伪元素设置,因此一旦悬停停止,过渡 属性 将返回默认值 - 即没有过渡。
将该过渡设置移动到非悬停 class 设置意味着无论悬停是否发生,return 也将过渡。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<style>
.required::before {
content: '';
display: block;
width: 10px;
height: 10px;
background-color: red;
border-radius: 10px;
}
.required::after {
content: '';
display: inline-block;
width: 10px;
height: 10px;
background: blue;
margin-left: -20px;
transition: 1s;
}
.required:hover::after {
transform: translateX(100px);
}
</style>
</head>
<body>
<label class=r equired>Name</label>
</body>
</html>
除了前面的答案正确地告诉您将转换 属性 移动到 .required::after
,您还需要小心使用没有 属性 名称的 transform: 1s
.默认情况下,这将为 ALL 属性创建转换。