用纯css中hover来显示和隐藏其他元素,如子元素,兄弟元素等(不用js,jq做展示或隐藏)

本文详细介绍了如何使用纯CSS来控制网页元素的显示和隐藏,包括子元素、相邻兄弟元素及非相邻兄弟元素的控制方法,通过实例代码展示了:hover伪类与display属性的运用。

用纯css显示和隐藏其他元素,别的不说,上代码做笔记

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        .father_div {}

        .child_div {
            width: 50px;
            height: 50px;
            background-color: yellow;
            display: none;
        }

        .father_div:hover .child_div {
            display: block;
        }
    </style>
    <style>
        .second_div {
            width: 50px;
            height: 50px;
            background-color: yellowgreen;
            display: none;
        }

        .first_div:hover+.second_div {
            display: block;
        }
    </style>
    <style>
        .second2_div {
            width: 50px;
            height: 50px;
            background-color: yellowgreen;
            display: none;
        }

        .first2_div:hover+div+div+.second2_div {
            display: block;
        }
    </style>
</head>
<body>
    <div class="father_div">子元素的显示隐藏
        <div class="child_div"></div>
    </div>
    <p></p>
    <div>
        <div class="first_div">相邻的下一个兄弟元素的显示隐藏</div>
        <div class="second_div"></div>
    </div>
    <p></p>
    <div>
        <div class="first2_div">不相邻的兄弟元素的显示隐藏(2)</div>
        <div></div>
        <div></div>
        <div class="second2_div"></div>
    </div>
</body>
</html>

总的来说,控制子元素的隐藏展示,选择器用后代选择器就可以,
控制兄弟元素的隐藏展示,用+选择器就可以

<think>嗯,用户想知道兄弟节点在计算机科学中的定义应用,特别是在树结构DOM操作中的处理。首先,我需要明确兄弟节点的基本概念,也就是在树结构中同一父节点的子节点互为兄弟。比如在二叉树、多叉树中,同一层的节点如果有同一个父节点,它们就是兄弟节点。 然后,应用方面可能需要举几个例子,比如在数据结构中的兄弟指针,者DOM操作里如何访问相邻元素。DOM里常用的方法有nextSiblingpreviousSibling,这些可能需要详细说明一下。 接下来,用户可能还想知道兄弟节点在具体算法中的用途,比如树的遍历者查找相邻节点。比如在堆结构里,兄弟节点的位置计算,者红黑树中调整颜色时可能涉及兄弟节点的判断。 另外,引用中的内容里有提到树结构在文件系统、数据库索引等的应用,可能需要联系这些场景中的兄弟节点作用。比如B树中的兄弟节点可能用于平衡操作,者文件系统中目录下的文件作为兄弟节点存在。 需要注意的是,要确保LaTeX格式正确,比如提到的树结构术语需要用$...$包裹,比如父节点、子节点等。同时,独立公式如树的定义可能需要用$$...$$单独成段。 可能用户的实际需求是理解如何在编程中操作兄弟节点,比如JavaScript里的DOM方法,者数据结构如二叉树中如何找到兄弟节点。因此,回答需要包含定义、应用场景具体操作方法,并引用相关的资料,比如站内引用提到的红黑树、B树等结构中的兄弟节点应用。 最后,生成的相关问题要围绕兄弟节点展开,可能涉及遍历算法、DOM操作API、性能优化等,确保问题有针对性,帮助用户深入理解。</think>### 兄弟节点的定义与应用 #### 1. **兄弟节点的定义** 在树结构中,**兄弟节点(Sibling Node)** 指共享同一父节点的所有子节点。例如,若节点$A$有两个子节点$B$$C$,则$B$$C$互为兄弟节点。数学上可表示为: $$ \text{Sibling}(B) = \{ C \mid \text{Parent}(B) = \text{Parent}(C) \} $$ 这一概念适用于所有树结构,如二叉树、多叉树、DOM树等[^1]。 #### 2. **兄弟节点的应用场景** - **树遍历算法**:在广度优先搜索(BFS)中,兄弟节点通常被同一层遍历。 - **DOM操作**:网页开发中,通过`nextSibling``previousSibling`属性访问相邻元素节点,例如: ```javascript const element = document.getElementById("node"); const nextSibling = element.nextElementSibling; // 获取下一个兄弟节点 ``` - **数据结构优化**:在堆(Heap)红黑树中,兄弟节点的位置关系影响调整逻辑。例如,红黑树的重新平衡可能涉及对兄弟节点的颜色判断[^5]。 #### 3. **兄弟节点的操作示例** - **二叉树中的兄弟查找**: ```python class TreeNode: def __init__(self, value): self.value = value self.left = None self.right = None def get_sibling(node, parent): if parent.left == node: return parent.right else: return parent.left ``` - **DOM操作**:删除某个节点的所有兄弟节点: ```javascript let node = document.querySelector(&#39;#target&#39;); let parent = node.parentNode; Array.from(parent.children).forEach(child => { if (child !== node) child.remove(); }); ``` #### 4. **兄弟节点与性能优化** 在B树/B+树中,兄弟节点指针用于快速合并分裂节点,减少磁盘I/O次数。例如,B+树的叶子节点通过兄弟指针形成链表,支持高效的范围查询[^3]。 --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值