您的位置:首页 > 游戏 > 手游 > 泰安红河网站建设_鞍山玉佛苑官网_seo运营学校_百度2022年版本下载

泰安红河网站建设_鞍山玉佛苑官网_seo运营学校_百度2022年版本下载

2024/11/17 23:39:21 来源:https://blog.csdn.net/y523648/article/details/143559661  浏览:    关键词:泰安红河网站建设_鞍山玉佛苑官网_seo运营学校_百度2022年版本下载
泰安红河网站建设_鞍山玉佛苑官网_seo运营学校_百度2022年版本下载

不写onMouseEnter/onMouseLeave或者onMouseOver/onMouseOut,实现鼠标悬停提示框。Enter和Over的区别是,一个事件不冒泡,一个事件冒泡。

示例代码如下:

<!DOCTYPE html>
<html lang="zh">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><style>.container {display: flex;flex-direction: column;justify-content: center;align-items: center;width: 300px;margin: 50px auto;}.content {width: 250px;height: 28px;}   .showTooltip {visibility: hidden; /* 默认情况下隐藏 */display: flex;justify-content: center;align-items: center;color: black;font-weight: bold;margin-bottom: 10px;border-radius: 3px;box-shadow: 0px 2px 5px gray;   cursor: pointer;padding: 10px;}.container:hover .showTooltip {visibility: visible; /* 鼠标悬停时显示 */}</style>
</head>
<body><div class="container"><div class="showTooltip">这是Tooltip提示!</div><div class="content">鼠标hover在上面时,显示提示</div></div>
</body>
</html>

效果:

接下来说说在emotion库里使用:hover伪类的踩坑:

使用emotion我们会这么写:

const styles = {container: css({display: "flex",flexDirection: "column",justifyContent: "center",alignItems: "center",width: "300px",margin: "50px auto","&:hover .showTooltip": {visibility: "visible",},})    
}

然后在页面上使用, 以react为例:

    <div className={styles.container}><div className={styles.showTooltip}>这是Tooltip提示!</div><div className={styles.content}>鼠标hover在上面时,显示提示</div></div>

这时,我们会发现:hover 无法控制showTooltip的样式了,如果单独使用:hover是有效果的

"&:hover": {visibility: "visible",
},

说明问题出在showTooltip的类名上,因为我们用浏览器参看html的dom时会发现,所有的css类名都被转换成了类似"css-1d78smd"的名字,所以我们定义的&:hover .showTooltip就会因为找不到showTooltip这个类名而失效。

解决方法是使用cx函数,用我们定义的css类名做一个拼接:

<div className={`${cx(styles.showTooltip,"showTooltip")}`}>这是Tooltip提示!</div>

这样,最后生成的html里的class属性,就是"css-1d78smd showTooltip"。

问题解决!

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com