Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 不需要Javascript的弹出菜单_Html_Css_Popup_Label_Popupmenu - Fatal编程技术网

Html 不需要Javascript的弹出菜单

Html 不需要Javascript的弹出菜单,html,css,popup,label,popupmenu,Html,Css,Popup,Label,Popupmenu,我正在努力完成我的项目,我希望能够采用Javascript不需要的方式来获得网站的完整体验 所以我想出了一个解决办法,将打开和关闭状态保存为弹出菜单和边栏。。。我做了一个隐藏的复选框,用CSS的魔力我可以切换一个DIV的可视性。到目前为止还不错 #header-profile-popup{ visibility: hidden; opacity: 0;} #header-profile-popup-toggler:checked ~ * #header-profile-popup{

我正在努力完成我的项目,我希望能够采用Javascript不需要的方式来获得网站的完整体验

所以我想出了一个解决办法,将打开和关闭状态保存为弹出菜单和边栏。。。我做了一个隐藏的复选框,用CSS的魔力我可以切换一个DIV的可视性。到目前为止还不错

#header-profile-popup{
  visibility: hidden;
  opacity: 0;}
 #header-profile-popup-toggler:checked ~ * #header-profile-popup{
  visibility: visible;
  opacity: 1;}
进入工作弹出菜单

但是我想知道,如果用户在div之外单击以自动隐藏它,您是否可以想出一种方法来删除它

如果它是HTML/CSS格式的,我会更喜欢它,但如果它是由本机javascript检测到的,那就没什么大不了的了


谢谢你抽出时间

这花了一些时间,但我想出了一个解决办法

您可以看到正在运行的弹出菜单,因为它是我的目标,它在没有Javascript驱动的情况下工作。但是如果您激活了Javascript,它还会检测您是否在div之外单击并关闭弹出窗口

var isOutSide = true,
bbb=document.getElementById('header-profile-popup'),
bbb2=document.getElementById('header-profile-popup-toggler'),
bbb3=document.getElementById('header-profile-popup-toggler-label');
document.body.addEventListener('click', function(){
   if(isOutSide){
       document.getElementById("header-profile-popup-toggler").checked = false;
   }
   isOutSide = true;
});

bbb.addEventListener('click', function(){
   isOutSide = false;
});
bbb2.addEventListener('click', function(){
   isOutSide = false;
});
bbb3.addEventListener('click', function(){
   isOutSide = false;
});