启用活动切换
我目前正在使用React,我列出了一个列表,它们将在哪里有活动状态,我已经创建了onClick
函数,但它不会工作。如果我尝试单击并期望切换,我得到的只是背景颜色的 Flink ,我希望div在激活时得到。
import React, { useState } from 'react';
import './Home.css';
function Home() {
const [isActive, setIsActive] = useState({
oneStar: true,
twoStars: false,
threeStars: false,
fourStars: false,
fiveStars: false,
});
return (
<div className='app_card_container'>
<div className='app_card_body'>
<div className='app_card_list'>
<div
className={isActive.oneStar
? 'app_card_lists active'
: 'app_card_lists'
}
onClick={() =>
setIsActive({
oneStar: true,
twoStars: false,
threeStars: false,
fourStars: false,
fiveStars: false,
})
}
>
1
</div>
<div
className={isActive.twoStars
? 'app_card_lists active'
: 'app_card_lists'
}
onClick={() =>
setIsActive({
oneStar: false,
twoStars: true,
threeStars: false,
fourStars: false,
fiveStars: false,
})
}
>
2
</div>
<div
className={isActive.threeStars
? 'app_card_lists active'
: 'app_card_lists'
}
onClick={() =>
setIsActive({
oneStar: false,
twoStars: false,
threeStars: true,
fourStars: false,
fiveStars: false,
})
}
>
3
</div>
<div
className={isActive.fourStars
? 'app_card_lists active'
: 'app_card_lists'
}
onClick={() =>
setIsActive({
oneStar: false,
twoStars: false,
threeStars: false,
fourStars: true,
fiveStars: false,
})
}
>
4
</div>
<div
className={isActive.fiveStars
? 'app_card_lists active'
: 'app_card_lists'
}
onClick={() =>
setIsActive({
oneStar: false,
twoStars: false,
threeStars: false,
fourStars: false,
fiveStars: true,
})
}
>
5
</div>
</div>
</div>
</div>
);
}
export default Home;
下面是我的主题中涉及的div的CSS:
.app_card_list {
display: flex;
flex-direction: row;
}
.app_card_lists {
margin-left: 1.5rem;
display: flex;
flex-direction: row;
justify-content: center;
width: 35px;
height: 35px;
background-color: hsl(216, 12%, 8%);
text-align: center;
align-items: center;
border-radius: 50%;
cursor: pointer;
color: hsl(0, 0%, 100%);
}
.app_card_lists:hover {
background-color: hsl(217, 12%, 63%);
}
.app_card_lists:active {
background-color: red;
}
3条答案
按热度按时间nue99wik1#
“:active”状态/属性与
"active"
CSS类名不同。当一个项目处于“活动”状态时,您将其编码为同时具有
"app_card_lists"
***和"active"
类名。CSS规则应该更像以下内容:如果你想限制活动CSS规则的范围,你可以提供一个更具体的选择器。
sdnqo3pr2#
实际上在你的代码里
这意味着在css文件中你应该有一个叫做active的类:
正如您在代码中编写的那样,您正在检查div元素是否没有:active状态,哪个div元素没有。
资源mdn resources
js5cn81o3#
这样设置你的状态:
和你的可点击的星星像这样: