hover在两种情况下的两种用法

  • Post author:
  • Post category:其他


:hover在鼠标移到链接上时添加的特殊样式。

提示: :hover 选择器器可用于所有元素,不仅是链接。

提示: :link 选择器设置了未访问过的页面链接样式, :visited 选择器设置访问过的页面链接的样式 :active选择器设置当你点击链接时的样式。

注意: 为了产生预期的效果,在 CSS 定义中,:hover 必须位于 :link 和 :visited 之后!!

前两天遇到一个关于:hover的问题,困惑了好久

在这里插入图片描述

这里我们举个例子看一下:hover在两种情况下的两种用法

先说一下,下面的代码想实现的效果:当鼠标放在“嗯呐”框上,让下面对应的hello框出现。(背景颜色,字的大小,框的大小 这些不太重要我们这里就随便给的)


情况一

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <style>
        .list_block{
            position: relative;
            width: 200px;
            height: 50px;
            border: 1px solid saddlebrown;
            margin: auto;
            line-height: 50px;
            text-align: center;

        }
        .child{
            position: absolute;
            z-index: -1;
            top: 50px;
            left: 0;
            width: 200px;
            height: 300px;
            border: 1px solid red;
            background: pink;
            display: none;
            box-sizing: border-box;
        }
        .list_block:hover{
            background: pink;
            color: red;
            border-bottom: 1px solid white;
        }
        .list_block:hover .child{
            display: block;
        }
    </style>
</head>
<body>
<div class="list_block">
嗯呐
    <div class="child">hello</div>
</div>

</body>
</html>

如图 是“嗯呐”hover的时候,在嗯呐hover的时候让下面hello的框出现

在这里插入图片描述
当hover的元素和需要改变样式的元素是父子关系时,可以写成这种形式( .list_block:hover .child)简单来说就是,父子关系的时候,要hover的元素类名称+:hove+空格+要改变样式的元素的类名称。

**情况二:**和上段代码要实现的效果一样哦

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <style>
        .list_block{
            position: relative;
            z-index: 5;
            width: 200px;
            height: 50px;
            border: 1px solid saddlebrown;
            margin: auto;
            line-height: 50px;
            text-align: center;
        }
        .child{
            position: absolute;
            top: 59px;
            left: 667px;
            width: 200px;
            height: 300px;
            border: 1px solid red;
            background: pink;
            display: none;
        }
        .list_block:hover{
            background: pink;
            color: red;
            border-bottom: 1px solid white;
        }
        .list_block:hover+  .child{
            display: block;
        }
    </style>
</head>
<body>
<div class="list_block">
嗯呐
</div>
<div class="child">hello</div>
</body>
</html>

在这里插入图片描述
此时,.list_block和.child是兄弟关系(同级),这种情况下用.list_block:hover .child就不能实现鼠标放在“嗯呐”上出现“hello”的框,这种情况应该这样写( .list_block:hover+ .child)简单地说就是要hover的元素类名称+(:hove+)+空格+要改变样式的元素的类名称。



版权声明:本文为qq_44885374原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。