html - 如何修复“使用 CSS Clip-Path 悬停时 div 的背景问题”
问题描述
我正在使用 CSS 动画clip-path
,当我将鼠标悬停在 span 元素上时,另一个 div 在 . 中展开circular manner
。悬停工作正常,但我面临问题,因为背景没有完全覆盖元素。
*{
margin:0;
padding: 0;
outline: none;
}
body{
background: #DCF5FF;
margin: 0;
height: 100vh;
display: grid;
justify-items: center;
align-items: center;
font-family: 'Times New Roman', Times, serif;
}
.container{
width: 30%;
border-radius: 10px;
}
.inner{
background: rgba(7,218,165,1);
padding: 1em;
border-radius: 10px;
width: 250px;
/* height: 300px; */
clip-path: circle(10% at 90% 52%);
transition: all .5s ease-in-out;
cursor: pointer;
position: relative;
z-index: 4;
}
.inner > h1{
color:white;
margin: 0;
}
.inner > p{
color:white;
font-size: 0.8rem;
}
.inner:hover{
clip-path: circle(100%);
background: #00B6FF;
}
.wrapper{
position: absolute;
top: 0;
left: 0;
}
.inner:hover > .wrapper{
}
.inner > span{
float:right;
color:white;
font-weight: bold;
transition: color .5s;
margin-right: 4%;
text-align: center;
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>CSS Clip-Path</title>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
<link rel="stylesheet" href="style.css">
</head>
<body>
<div class="container">
<div class="inner">
<span>i</span>
<div class="wrapper">
<h1>Hey</h1>
<p>Lorem ipsum dolor, sit amet consectetur adipisicing elit. Fuga molestiae adipisci qui temporibus optio eius voluptas consectetur cumque quis quasi fugit nobis dolor tenetur, harum nisi, molestias quisquam! Necessitatibus, ipsum.</p>
</div>
</div>
<div class="card">
<h1>Hello</h1>
</div>
</div>
</body>
</html>
解决方案
position:absolute
所以它与你放在class 上的事实有关.wrapper
,它覆盖了你放在 class 中的属性.inner
。请参阅下面的另一种尝试,我认为它更接近您的意图。
*{
margin:0;
padding: 0;
outline: none;
}
body{
background: #DCF5FF;
margin: 0;
display: grid;
font-family: 'Times New Roman', Times, serif;
}
.container{
margin: auto;
width: 40%;
}
.inner{
position: absolute;
top: 150px;
background: rgba(7,218,165,1);
padding: 1em;
border-radius: 10px;
width: 250px;
clip-path: circle(8% at 90% 15%);
transition: all .5s ease-in-out;
cursor: pointer;
position: relative;
z-index: 4;
}
.inner h1{
color:white;
margin: 0;
}
.inner p{
font-size: 0.8rem;
}
.inner:hover{
clip-path: circle(100%);
background: #00B6FF;
}
.wrapper{
}
.inner:hover > .wrapper{
}
.inner span{
float:right;
color:white;
font-weight: bold;
transition: color .5s;
margin-right: 4%;
text-align: center;
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>CSS Clip-Path</title>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
<link rel="stylesheet" href="style.css">
</head>
<body>
<div class="container">
<div class="inner">
<span>i</span>
<div class="wrapper">
<h1>Hey</h1>
<p>Lorem ipsum dolor, sit amet consectetur adipisicing elit. Fuga molestiae adipisci qui temporibus optio eius voluptas consectetur cumque quis quasi fugit nobis dolor tenetur, harum nisi, molestias quisquam! Necessitatibus, ipsum.</p>
</div>
</div>
<div class="card">
<h1>Hello</h1>
<p>Pater noster, qui es in caelis, sanctificetur nomen tuum, adveniat regnum tuum, fiat voluntas tua, sicut in caelo et in terra.</p>
</div>
</div>
</body>
</html>
推荐阅读
- python - Python DataFrame pivot_table 不返回列标题
- php - 如何在使用 Symfony Process 组件的请求期间异步启动 Symfony 命令?
- react-native - 在 React Native 中使用 Expo SecureStore
- java - 优化 MongoDB 调用
- intellij-idea - 资源包属性文件是否应该手动创建
- r - 在 Shinyapps.io 上发布我的 Shiny 应用程序时的路径问题
- python - 无法使用 pd.read_html 抓取整个表格
- r - 按条件更改存储在列表中的数据框的列名
- javascript - 从 .then() 返回结果
- c# - 在 Docker 中构建 .NET Framework 4.8 项目失败,并显示“在读取结束前到达流的末尾”