除非单击父类别,否则如何隐藏子类别?
How to hide Child Category unless Parent Category is clicked?
对 css 本身有点陌生,我需要一些帮助,这是我目前的测试站点,我在其中使用 css、http://test.rascalworldwide.com/?post_type=product&customize_changeset_uuid=90ec360e-7331-42b5-aab3-effecf256451。尽管我已经尝试将近一天来为我启用该选项,但我能够隐藏子类别,当我点击父类别时,子类别会出现。
这是我用来隐藏子类别的代码。
.wpf_items_wrapper .wpf_item .wpf_submenu{
display: none;
}
这是我使用的代码,但仍然无法显示子类别。
.wpf_items_wrapper .wpf_item .wpf_submenu [type=”checkbox”]{
display: block;
}
我不确定你的第二个 css 代码是否可以在之前的 display: none
设置下访问,如果你想使用复选框 隐藏所有子元素以及本身,你可以做什么:
.className[type=”checkbox”].checked{
display: none;
}
但是,如果你想隐藏所有子项,并且只在点击父项时显示它。你不能只在 css 中这样做,css 仅适用于某些元素的静态样式。页面交互通常由 javascript 完成。我假设你的父元素的 class 名称是 .wpf_items_wrapper .wpf_item .wpf_submenu
,然后在 js 文件中:
const parentTag = document.querySelector('.wpf_items_wrapper .wpf_item .wpf_submenu');
const childTags = parentTag.querySelectorAll('*');
parentTag.addEventListener('click', ()=>{
childTags.forEach(ch=>{
ch.style.display = 'block';
});
});
此外,如果您希望通过点击父项将所有子项的显示从 none 更改为阻止,我建议设置一个全局变量作为标志。
const parentTag = document.querySelector('.wpf_items_wrapper .wpf_item .wpf_submenu');
const childTags = parentTag.querySelectorAll('*');
var flag = true;
// initially set display to none if you haven't done it in css
window.addEventListener('load', ()=>{
childTags.forEach(ch=>{
ch.style.display = 'none';
});
});
parentTag.addEventListener('click', ()=>{
if(flag){
childTags.forEach(ch=>{
ch.style.display = 'block';
});
}else{
childTags.forEach(ch=>{
ch.style.display = 'none';
});
}
flag = !flag;
});
对 css 本身有点陌生,我需要一些帮助,这是我目前的测试站点,我在其中使用 css、http://test.rascalworldwide.com/?post_type=product&customize_changeset_uuid=90ec360e-7331-42b5-aab3-effecf256451。尽管我已经尝试将近一天来为我启用该选项,但我能够隐藏子类别,当我点击父类别时,子类别会出现。
这是我用来隐藏子类别的代码。
.wpf_items_wrapper .wpf_item .wpf_submenu{
display: none;
}
这是我使用的代码,但仍然无法显示子类别。
.wpf_items_wrapper .wpf_item .wpf_submenu [type=”checkbox”]{
display: block;
}
我不确定你的第二个 css 代码是否可以在之前的 display: none
设置下访问,如果你想使用复选框 隐藏所有子元素以及本身,你可以做什么:
.className[type=”checkbox”].checked{
display: none;
}
但是,如果你想隐藏所有子项,并且只在点击父项时显示它。你不能只在 css 中这样做,css 仅适用于某些元素的静态样式。页面交互通常由 javascript 完成。我假设你的父元素的 class 名称是 .wpf_items_wrapper .wpf_item .wpf_submenu
,然后在 js 文件中:
const parentTag = document.querySelector('.wpf_items_wrapper .wpf_item .wpf_submenu');
const childTags = parentTag.querySelectorAll('*');
parentTag.addEventListener('click', ()=>{
childTags.forEach(ch=>{
ch.style.display = 'block';
});
});
此外,如果您希望通过点击父项将所有子项的显示从 none 更改为阻止,我建议设置一个全局变量作为标志。
const parentTag = document.querySelector('.wpf_items_wrapper .wpf_item .wpf_submenu');
const childTags = parentTag.querySelectorAll('*');
var flag = true;
// initially set display to none if you haven't done it in css
window.addEventListener('load', ()=>{
childTags.forEach(ch=>{
ch.style.display = 'none';
});
});
parentTag.addEventListener('click', ()=>{
if(flag){
childTags.forEach(ch=>{
ch.style.display = 'block';
});
}else{
childTags.forEach(ch=>{
ch.style.display = 'none';
});
}
flag = !flag;
});