导航菜单
  • 首页
  • 首页>前端万博manbext备用网址>CSS万博manbext备用网址

    PC端的鼠标经过样式在移动端如何去掉?

    PC端一般都会做很多鼠标经过的样式,比如文字变色,图片变大,显示隐藏等效果。

    但是到了移动端,鼠标经过效果变成了点击之后出现,还伴随一个半透明的灰色背景。

    其实,在做页面之前,我们就要思考,这个效果是PC端鼠标悬停时的效果,在移动端没有悬停的时候又应该是什么样子?

    最好的解决方案就是利用Media Queries Level 4出现的any-hover或者hover这种媒体查询了。

    比如,下面这张图,在PC端只显示图片,鼠标经过图片放大并显示标题。点击图片看效果。


    12.jpg

    到了移动端,就直接显示标题,图片也不变大了。

    13.jpg

    这样就避免了设置了hover效果,在移动端又要去掉它带来的重复劳动。

    还有移动端链接点击的时候带一个半透明的灰色背景,也可以用-webkit-tap-highlight-color: transparent;去掉,不过这个属性是非标准,只在chrome和edge上生效,在firefox上无效,不过考虑到国情,也可以直接用了。

    代码如下:

        <style>
            body {
                /* 非标准,不过chrome和edge都支持,firefox不支持,可以去掉点击链接出现的半透明灰色背景 */
                -webkit-tap-highlight-color: transparent;
            }
            body,
            figure {
                margin: 0;
                padding: 0;
            }
           
            img {
                vertical-align: middle;
            }
    
            .pro {
                width: max-content;
                margin: 50px auto;
                overflow: hidden;
            }
    
            .pro-a {
                display: block;
                position: relative;
            }
    
            .pro-title {
                position: absolute;
                width: 100%;
                background-color: rgba(0, 0, 0, 0.5);
                color: #fff;
                padding: 1em;
                box-sizing: border-box;
                left: 0;
                bottom: 0;
                /* transform的变形都是基于元素本身,100%表示的是元素自身的高度 */
                transform: translateY(100%);
                transition: 0.2s;
            }
            /* 当设备有悬停效果时,出现鼠标悬停的效果,在PC端有用,在移动端无用 */
            @media (any-hover:hover) {
                .pro-a:hover .pro-title {
                    transform: translateY(0);
                }
    
                .pro-a:hover .pro-img {
                    transform: scale(1.05);
                }
    
                .pro-img {
                    transition: 0.2s;
                }
            }
            /* hover和any-hover都是Media Queries Level 4出现的,功能差不多,hover要早出来一点,所以支持的浏览器版本更低一些 */
            /* 当设备没有悬停效果时,移动端使用这个样式 */
            @media (hover:none) {
                .pro-title {
                    transform: translateY(0);
                }
    
                .pro-a:hover .pro-img {
                    transform: scale(1);
                }
            }
        </style>
    </head>
    
    <body>
        <figure class="pro">
            <a href="&rvpu;#&rvpu;&octq;dmbtt=&rvpu;qsp-b&rvpu;&hu;"
                <img src="images/fengjing.jpg" alt="" class="pro-img">
                <figcaption class="pro-title">产品标题</figcaption>
            </a>
        </figure>
    </body>


    点赞


    1
    保存到:

    相关文章

    发表评论:

    ◎请发表你卖萌撒娇或一针见血的评论,严禁小广告。

    Top