2 回答
TA贡献1804条经验 获得超8个赞
第一个问题可以通过将 x 放在不同的 div 中解决
<div className="row">
<div className="col-11">
Text here
</div>
<div className="col-1">
X
</div>
</div>
第二个问题可以使用条件应用类来解决。
.hiden{
transform: translateX(-300px) // width of you notification container
transition: all 0.5s;
}
.open{
transform: translateX(0);
}
有条件地应用上面的 css 就像
<div className={`hiden ${state.open? 'open': ''}`}>
TA贡献1842条经验 获得超21个赞
要使消息和关闭图标保持在同一行,您可以使用 flexbox。
.message-container {
display: flex;
flex-direction: row;
justify-content: space-around;
}
.cross {
display: flex;
justify-content: center;
margin: 10px;
background-color: #d3d3d3;
border-radius: 50%;
width: 22px;
height: 22px;
text-align: center;
}
.message {
display: flex;
flex-grow: 1;
margin: 10px;
width: 80%;
word-wrap: break-word;
}
我已将消息包裹并交叉放入一个容器中,这为它们提供了正确的布局。
卡片默认关闭,然后有消息时动态应用一个card__open类
.card {
width: fit-content;
min-width: 300px;
padding: 10px;
box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
position: absolute;
top: -50px;
transition: top 0.5s;
}
.card__open {
top: 20px;
}
在类名库是伟大的,哪些类应当应用动态definining
const classes = classNames({
card: true,
card__open: messages.length
});
return (
<div className={classes}>
...
我已经创建了一个关于如何应用动画的小例子。
添加回答
举报