css 点击ul切换其中li标签内的图片

发布于 2022-09-12 14:04:28 字数 1200 浏览 19 评论 0

如下图所示,在ul内有两个li标签,一个放图片一个显示文字。现在我希望当鼠标移动到图片上时,图片切换,并且字体颜色改变,点击后任然是这右边的样式。

总之,就是点击后切换样式,当点击其他位置时变成原来的样式。

目前使用了hover和active,只在hover的变化,点击之后鼠标移开样式就没有了,因为active只在鼠标按下时才有用。

我的问题是,如何保持鼠标按下后样式改变,只有在点击其他位置的时候才变回原来的样式呢?必须要给ul写一个onClick事件来改变样式吗?

image.png

ul代码

    <ul>
        <li><img src={count}/></li>
        <li>数量</li>
    </ul>

less代码

.iconContainer ul:nth-child(1):hover{
    li:nth-child(1){
        background-image: url("./Images/count.png");
        box-shadow: 5px 9px 15px 0px 
        rgba(10, 37, 90, 0.7);
        border-radius: 10px;
    }
    
    li:nth-child(2){
    font-size: 34px;
    color:#ffffff;
    text-align: center;
    margin-top: 20px;
}
}

.iconContainer ul:nth-child(1):active{
    li:nth-child(1){
        background-image: url("./Images/click-count.png");
        box-shadow: 5px 9px 15px 0px 
        rgba(10, 37, 90, 0.7);
        border-radius: 10px;
    }

    li:nth-child(2){
        font-size: 34px;
        color:#ffffff;
        text-align: center;
        margin-top: 20px;
    }
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

不必在意 2022-09-19 14:04:29

方案一
再li标签下面增加一个button,长宽为图片长宽,背景设置到button当中监听button:focus
方案二
再li标签下面增加一个button,长宽为图片长宽,设置button背景为transparent(透明背景),监听li标签的:focus-within
方案三
把li标签放在button当中,监听button:focus

其中除了方案二,需要设置背景为transparent外,其他的需要设置以下样式清除指定button默认样式

// 此处为全局设置,根据实际情况设置class啥的
    button{
        border: none;
        background: none;
        padding: none;
    }
    button:focus{
        outline: none;
    }   
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文