Html 如何制作仅CSS的弹出窗口或工具提示?

Html 如何制作仅CSS的弹出窗口或工具提示?,html,css,Html,Css,我已经编写了一些代码,用于使段落可滚动。我想使弹出窗口之外的所有内容不可见。我可以只用HTML和CSS吗 </div> <div id="popup"> <a href="index.html"> Close </a> This is pop-up text </div> </span> </div> 这必须是可见的。这个部门的一切都必须隐藏起来 工具提示 这些必须隐藏起来 </div> <

我已经编写了一些代码,用于使段落可滚动。我想使弹出窗口之外的所有内容不可见。我可以只用HTML和CSS吗

</div>
<div id="popup">
<a href="index.html">
Close
</a>
This is pop-up text
</div>
</span>
</div>

这必须是可见的。这个部门的一切都必须隐藏起来
工具提示
这些必须隐藏起来

</div>
<div id="popup">
<a href="index.html">
Close
</a>
This is pop-up text
</div>
</span>
</div>
这些必须隐藏起来

</div>
<div id="popup">
<a href="index.html">
Close
</a>
This is pop-up text
</div>
</span>
</div>

这些属性也是

如果要隐藏外部内容,则可以使用main
中的
溢出
属性,如下所示:

</div>
<div id="popup">
<a href="index.html">
Close
</a>
This is pop-up text
</div>
</span>
</div>

这必须是可见的,并且此div之外的所有内容都必须隐藏。
工具提示
这些必须隐藏起来

</div>
<div id="popup">
<a href="index.html">
Close
</a>
This is pop-up text
</div>
</span>
</div>
这些必须隐藏起来

</div>
<div id="popup">
<a href="index.html">
Close
</a>
This is pop-up text
</div>
</span>
</div>

这些属性也是

如果要隐藏外部内容,则可以使用main
中的
溢出
属性,如下所示:

</div>
<div id="popup">
<a href="index.html">
Close
</a>
This is pop-up text
</div>
</span>
</div>

这必须是可见的,并且此div之外的所有内容都必须隐藏。
工具提示
这些必须隐藏起来

</div>
<div id="popup">
<a href="index.html">
Close
</a>
This is pop-up text
</div>
</span>
</div>
这些必须隐藏起来

</div>
<div id="popup">
<a href="index.html">
Close
</a>
This is pop-up text
</div>
</span>
</div>

这些也是

其中最重要的部分是编辑部分。阅读它。

</div>
<div id="popup">
<a href="index.html">
Close
</a>
This is pop-up text
</div>
</span>
</div>

如果不使用内联CSS,则可以将隐藏项分配给一个类,并使用
display:none
或隐藏父类的所有子类,并在下面添加一个特殊的弹出框。默认情况下隐藏父对象中的所有项目。记住,CSS是层叠样式表,所以弹出窗口优先

.parent * {
    display: none;
}

.parent popup {
    display: initial;
    /* Or if you want block, like you said in your comment: */
    display: block;
}
</div>
<div id="popup">
<a href="index.html">
Close
</a>
This is pop-up text
</div>
</span>
</div>
但如果它已经是一个块初始将工作良好

</div>
<div id="popup">
<a href="index.html">
Close
</a>
This is pop-up text
</div>
</span>
</div>
编辑:根据下面的评论(你应该阅读它们,它们对此做出了很大贡献),这就是我所做的

</div>
<div id="popup">
<a href="index.html">
Close
</a>
This is pop-up text
</div>
</span>
</div>
。工具提示内容{
显示:无;
}
.显示工具提示:悬停+工具提示内容{
显示:块;
}
.显示工具提示:悬停~*{
显示:无;
}

显示工具提示
工具提示内容

</div>
<div id="popup">
<a href="index.html">
Close
</a>
This is pop-up text
</div>
</span>
</div>
其他内容

</div>
<div id="popup">
<a href="index.html">
Close
</a>
This is pop-up text
</div>
</span>
</div>

其中最重要的部分是编辑部分。阅读它。

</div>
<div id="popup">
<a href="index.html">
Close
</a>
This is pop-up text
</div>
</span>
</div>

如果不使用内联CSS,则可以将隐藏项分配给一个类,并使用
display:none
或隐藏父类的所有子类,并在下面添加一个特殊的弹出框。默认情况下隐藏父对象中的所有项目。记住,CSS是层叠样式表,所以弹出窗口优先

.parent * {
    display: none;
}

.parent popup {
    display: initial;
    /* Or if you want block, like you said in your comment: */
    display: block;
}
</div>
<div id="popup">
<a href="index.html">
Close
</a>
This is pop-up text
</div>
</span>
</div>
但如果它已经是一个块初始将工作良好

</div>
<div id="popup">
<a href="index.html">
Close
</a>
This is pop-up text
</div>
</span>
</div>
编辑:根据下面的评论(你应该阅读它们,它们对此做出了很大贡献),这就是我所做的

</div>
<div id="popup">
<a href="index.html">
Close
</a>
This is pop-up text
</div>
</span>
</div>
。工具提示内容{
显示:无;
}
.显示工具提示:悬停+工具提示内容{
显示:块;
}
.显示工具提示:悬停~*{
显示:无;
}

显示工具提示
工具提示内容

</div>
<div id="popup">
<a href="index.html">
Close
</a>
This is pop-up text
</div>
</span>
</div>
其他内容

</div>
<div id="popup">
<a href="index.html">
Close
</a>
This is pop-up text
</div>
</span>
</div>

从我在你的帖子和评论中读到的内容来看,你似乎在试图让某个特定段落像弹出窗口一样,使该段落可以滚动,同时隐藏页面上的所有其他内容

</div>
<div id="popup">
<a href="index.html">
Close
</a>
This is pop-up text
</div>
</span>
</div>
看起来您正在使用样式,而不是使用CSS样式表。我也没有看到任何关于JavaScript的提及

</div>
<div id="popup">
<a href="index.html">
Close
</a>
This is pop-up text
</div>
</span>
</div>
回答:

</div>
<div id="popup">
<a href="index.html">
Close
</a>
This is pop-up text
</div>
</span>
</div>
因此,为了回答您的问题,即您是否可以仅使用HTML和CSS来完成所有这些,我相信答案是否定的,因为您不能直接从另一个HTML元素动态地影响一个HTML元素。您可能可以使用继承作为一种棘手的解决方法,但如果您使用它,它很可能会很混乱,并且在现代web开发中没有多大的地位

</div>
<div id="popup">
<a href="index.html">
Close
</a>
This is pop-up text
</div>
</span>
</div>
您在其中一条评论中还提到了“悬停”,因此您可能熟悉Psudeo选择器,但不能将Psudeo选择器与内嵌样式一起使用。此外,Psudeo选择器将更改特定元素及其子元素的显示html,但不会更改页面上的所有元素,除非该特定元素恰好是顶级元素

</div>
<div id="popup">
<a href="index.html">
Close
</a>
This is pop-up text
</div>
</span>
</div>
为了给你一个解决方案,我建议使用HTML5、CSS和JavaScript来完成所谓的“烧录和重建”。这是一种常见的结构,用户可以浏览网站上的不同页面,但实际上内容都是隐藏的,然后只显示特定的部分

</div>
<div id="popup">
<a href="index.html">
Close
</a>
This is pop-up text
</div>
</span>
</div>
有很多方法可以做到这一点,但大多数人一开始会使用JavaScript事件监听器,随着经验的积累,他们将学习使用其他工具,如jQuery或Angular/React来更新html页面(也称为DOM)。这些建议中的任何一个都将为您提供实现目标所需的工具,但我认为在纯HTML w/内联样式中是不可能的

</div>
<div id="popup">
<a href="index.html">
Close
</a>
This is pop-up text
</div>
</span>
</div>
解决方案

</div>
<div id="popup">
<a href="index.html">
Close
</a>
This is pop-up text
</div>
</span>
</div>
获得所需内容的方法之一是使用HTML5、CSS和JavaScript事件监听器。首先,您需要在CSS中编写两个不同的样式类:'.show'和'hide'

.show {
   visibility:visible;
}
.hide {
   visibility:hidden;
}
</div>
<div id="popup">
<a href="index.html">
Close
</a>
This is pop-up text
</div>
</span>
</div>
  • 请注意,我使用了可见性而不是显示。这是因为“显示”用于布局和流,而“可见性”用于处理是否可以看到图元。另外,如果您使用类似display的东西:initial;或显示:块;您将弄乱其他类的任何格式,它将打破表和列表。当您将其中一个类应用于某个HTML标记时,它将隐藏或显示该标记及其所有子项

  • </div>
    <div id="popup">
    <a href="index.html">
    Close
    </a>
    This is pop-up text
    </div>
    </span>
    </div>
    
  • 还要注意的是,实际上不需要将类更改为.show,只需删除.hide类,元素就会恢复为默认可见性。根据我的经验,最好使用.hide和.show,因为它更为必要。此外,我可能希望更改以前隐藏的元素与未隐藏或未显示的元素的某些内容。我仍然建议使用“可见性”而不是“显示”,因为如果使用“显示”,可能仍然会弄乱定位

  • </div>
    <div id="popup">
    <a href="index.html">
    Close
    </a>
    This is pop-up text
    </div>
    </span>
    </div>
    
接下来,您需要编写一个函数,该函数将在用户单击您的按钮时被调用。当用户单击该按钮时,您可以