Html 默认情况下打开所有css手风琴div(无jquery)

Html 默认情况下打开所有css手风琴div(无jquery),html,css,accordion,Html,Css,Accordion,我用这个: 我希望有能力有多个手风琴节打开一次,并在页面加载。我的意思是,当一个打开时,我不希望另一个关闭。这可能吗?也没有javascript 忽略所有的子手风琴太-我只需要一层 HTML 我试图避免使用任何java脚本。 这可能吗?不,这不可能仅使用css,因为您的示例使用CSS3:target选择器。当你点击另一个项目时,目标会改变 不能用css设置状态,但可以设置样式。如果您想在单击后保持每个部分的打开状态,则必须使用javascript,但不需要jQuery 如果您想使用javascr

我用这个:

我希望有能力有多个手风琴节打开一次,并在页面加载。我的意思是,当一个打开时,我不希望另一个关闭。这可能吗?也没有javascript

忽略所有的子手风琴太-我只需要一层

HTML

我试图避免使用任何java脚本。
这可能吗?

不,这不可能仅使用css,因为您的示例使用CSS3:target选择器。当你点击另一个项目时,目标会改变

不能用css设置状态,但可以设置样式。如果您想在单击后保持每个部分的打开状态,则必须使用javascript,但不需要jQuery

如果您想使用javascript,这将尽可能地模仿css,同时允许手风琴保持打开状态。要关闭手风琴,只需再次单击标题

var lists = document.querySelectorAll('.accordion > li > a'); // get list title links
for (var i = 0; i < lists.length; i++) { // for each list title link
  lists[i].href = "javascript:void()"; // stop the page from jumping
  lists[i].onclick = function(e) { // when you click the link
    var items = e.target.parentNode.querySelectorAll('li'); // get all list items that are siblings of the clicked link
    for (var x = 0; x < items.length; x++) { // for each list item
      if (items[x].style.height != '33px') { // if its not open
        items[x].style.height = '33px'; // open it
      } else { // otherwise
        items[x].style.height = '0px'; // close it
      }
    }
  };
}
将其包装在脚本标记中,然后将其放入正文底部,或者将其包装在document.onload=function{/*script Here*/}


注意:target选择器的任何样式都将不再有效,但如果用户禁用了javascript,则应将其保留在css中作为备用样式。

不,这不可能仅使用css,因为您的示例使用CSS3:target选择器。当你点击另一个项目时,目标会改变

不能用css设置状态,但可以设置样式。如果您想在单击后保持每个部分的打开状态,则必须使用javascript,但不需要jQuery

如果您想使用javascript,这将尽可能地模仿css,同时允许手风琴保持打开状态。要关闭手风琴,只需再次单击标题

var lists = document.querySelectorAll('.accordion > li > a'); // get list title links
for (var i = 0; i < lists.length; i++) { // for each list title link
  lists[i].href = "javascript:void()"; // stop the page from jumping
  lists[i].onclick = function(e) { // when you click the link
    var items = e.target.parentNode.querySelectorAll('li'); // get all list items that are siblings of the clicked link
    for (var x = 0; x < items.length; x++) { // for each list item
      if (items[x].style.height != '33px') { // if its not open
        items[x].style.height = '33px'; // open it
      } else { // otherwise
        items[x].style.height = '0px'; // close it
      }
    }
  };
}
将其包装在脚本标记中,然后将其放入正文底部,或者将其包装在document.onload=function{/*script Here*/}


注意:虽然任何带有:target选择器的样式都将不再有效,但您应将它们保留在css中作为备用,以防用户禁用javascript。

此css使用此样式将所有手风琴显示为已关闭:

    .accordion li > .sub-menu li {
      height: 0px;
    }
您可以将其设置为33px,以便在页面打开时显示所有打开的部分,但这会破坏功能,因为:target选择器随后会设置高度,从而导致所选部分显示为打开


唯一的解决方案是使用javascript….

此css使用此样式显示所有手风琴的闭合状态:

    .accordion li > .sub-menu li {
      height: 0px;
    }
您可以将其设置为33px,以便在页面打开时显示所有打开的部分,但这会破坏功能,因为:target选择器随后会设置高度,从而导致所选部分显示为打开

唯一的解决方案是使用javascript…..

可以吗?对

您需要更改HTML吗?对

它漂亮吗?没有

基本上不是维持目标状态。使用复选框将顶级a标记替换为标签

正文{页边距:50px;} /*重置*/ 手风琴 .手风琴ul, 李国章, .手风琴标签, .手风琴音程{ 保证金:0; 填充:0; 边界:无; 大纲:无; } 李国章{ 列表样式:无; } .accordion输入[type=checkbox]{显示:无;} /*布局与风格*/ .accordion li>标签.accordion li>a{ 显示:块; 位置:相对位置; 最小宽度:110px; 填充:0 10px 0 40px; 高度:32px; 颜色:fdfdfd; 字体:粗体12px/32px Arial,无衬线; 文字装饰:无; 文本阴影:0px 1px 0px rgba0,0,0,35; 背景:6c6e74; 背景:-moz线性梯度顶部,6c6e74 0%,4b4d51 100%; 背景:-webkit gradientlinear,左上,左下,彩色停止0%,6c6e74,彩色停止100%,4b4d51; 背景:-webkit线性梯度顶部,6c6e74 0%,4b4d51 100%; 背景:-o-线性梯度顶部,6c6e74 0%,4b4d51 100%; 背景:-ms线性梯度顶部,6c6e74 0%,4b4d51 100%; 背景:线性梯度顶部,6c6e74 0%,4b4d51 100%; -网络工具包盒阴影:插图0px 1px 0px 0px RGBA255255.1,0px 1px 0px 0px rgba0,0,0.1; -moz盒阴影:插入0px 1px 0px 0px RGBA255255,1,0px 1px 0px rgba0,0,0,1; 盒影:插入0px 1px 0px 0px rgba255255.1,0px 1px 0px rgba0,0,0.1; } .accordion>li:悬停>标签, .手风琴>李:目标>标签, .accordion>li>输入[类型=复选框]:选中~标签{ 颜色:3e5706; 文本阴影:1px 1px 1px RGBA255255.2; /*背景:url../img/active.png repeat-x*/ 背景:a5cd4e; 背景:-moz线性梯度顶部,a5cd4e 0%,6b8f1a 100%; 背景:-webkit gradientlinear、左上、左下、彩色停止0%、a5cd4e、彩色停止100%、6b8f1a; 背景:-webkit线性梯度顶部,a5cd4e 0%,6b8f1a 100%; 背景:-o-线性梯度TOP,a5cd4e 0%,6b8f1a 100%; 背景:-ms线性梯度TOP,a5cd4e 0%,6b8f1a 100%; 背景:线性梯度TOP,a5cd4e 0%,6b8f1a 100%; } 李国章 >标签span、.accordion li>a span{ 显示:块; 位置:绝对位置; 顶部:7px; 右:0; 填充:0 10px; 右边距:10px; 字体:普通粗体12px/18px Arial,无衬线; 背景:404247; -webkit边界半径:15px; -moz边界半径:15px; 边界半径:15px; -webkit盒阴影:插入1px 1px 1px rgba0,0,0,2,1px 1px 1px RGBA255255,1; -moz盒阴影:插入1px 1px 1px rgba0,0,0,2,1px 1px 1px RGBA255255,1; 盒影:插入1px 1px 1px rgba0,0,0,2,1px 1px 1px RGBA255255,1; } .accordion>li:悬停>标签跨度, .accordion>li:target>label span, .accordion>li>input[type=checkbox]:选中~label span{ 颜色:fdfdfd; 文本阴影:0px 1px 0px rgba0,0,0,35; 背景:3e5706; } /*图像*/ .手风琴>李>标签:之前{ 位置:绝对位置; 排名:0; 左:0; 内容:; 宽度:24px; 高度:24px; 利润率:4px8px; 背景重复:无重复; 背景图像:urlhttp://designmodo.com/demo/css3accordionmenu/img/icons.png; 背景位置:0px 0px; } .accordion li.files>标签:在{背景位置:0px 0px;}之前 .accordio li.files:hover>labe:before, .accordion li.files:target>label:before{background position:0px-24px;} .accordion li.mail>标签:在{背景位置:-24px 0px;}之前 .accordio li.mail:hover>label:before, .accordion li.mail:target>label:before{背景位置:-24px-24px;} .accordion li.cloud>标签:在{背景位置:-48px 0px;}之前 .accordio li.cloud:hover>label:before, .手风琴输入[类型=复选框]:选中:在{背景位置:-48px-24px;}之前 .accordio li.sign>标签:在{背景位置:-72px 0px;}之前 .手风琴李.标志:悬停>标签:在, .手风琴输入[类型=复选框]:选中:在{背景位置:-72px-24px;}之前 /*子菜单*/ .子菜单li>a{ 颜色:7979; 文本阴影:1px 1px 0px RGBA255255.2; 背景:E5; 边框底部:1px实心c9c9c9; -网络工具包盒阴影:插图0px 1px 0px 0px RGBA255255.1,0px 1px 0px 0px rgba0,0,0.1; -moz盒阴影:插入0px 1px 0px 0px RGBA255255,1,0px 1px 0px rgba0,0,0,1; 盒影:插入0px 1px 0px 0px rgba255255.1,0px 1px 0px rgba0,0,0.1; } .li子菜单:将鼠标悬停在{background:efefef;} .子菜单li:最后一个子菜单a{border:none;} .子菜单li>a跨度{ 颜色:7979; 文本阴影:1px 1px 0px RGBA255255.2; 背景:透明; 边框:1px实心c9c9c9; -webkit盒阴影:无; -莫兹盒阴影:无; 盒影:无; } .子菜单em{ 位置:绝对位置; 排名:0; 左:0; 左边距:14px; 颜色:A6; 字体:标准10px/32px Arial,无衬线; } /*功能性*/ .accordio li>。子菜单li{ 身高:0; 溢出:隐藏; -webkit过渡:高度2秒,易于进出; -moz过渡:高度。2秒缓进缓出; -o型过渡:高度。2秒缓进缓出; -ms转换:高度。2秒轻松进出; 过渡:高度2秒,易于进出; } .手风琴输入[类型=复选框]:选中~.子菜单li{ 高度:33像素; } 我的文件495 邮寄26 云58 退出 能做到吗?对

您需要更改HTML吗?对

它漂亮吗?没有

基本上不是维持目标状态。使用复选框将顶级a标记替换为标签

正文{页边距:50px;} /*重置*/ 手风琴 .手风琴ul, 李国章, .手风琴标签, .手风琴音程{ 保证金:0; 填充:0; 边界:无; 大纲:无; } 李国章{ 列表样式:无; } .accordion输入[type=checkbox]{显示:无;} /*布局与风格*/ .accordion li>标签.accordion li>a{ 显示:块; 位置:相对位置; 最小宽度:110px; 填充:0 10px 0 40px; 高度:32px; 颜色:fdfdfd; 字体:粗体12px/32px Arial,无衬线; 文字装饰:无; 文本阴影:0px 1px 0px rgba0,0,0,35; 背景:6c6e74; 背景:-moz线性梯度顶部,6c6e74 0%,4b4d51 100%; 背景:-webkit gradientlinear,左上,左下,彩色停止0%,6c6e74,彩色停止100%,4b4d51; 背景:-webkit线性梯度顶部,6c6e74 0%,4b4d51 100%; 背景:-o-线性梯度顶部,6c6e74 0%,4b4d51 100%; 背景:-ms线性梯度顶部,6c6e74 0%,4b4d51 100%; 背景:线性梯度顶部,6c6e74 0%,4b4d51 100%; -网络工具包盒阴影:插图0px 1px 0px 0px RGBA255255.1,0px 1px 0px 0px rgba0,0,0.1; -moz盒阴影:插入0px 1px 0px 0px RGBA255255,1,0px 1px 0px rgba0,0,0,1; 盒影:插入0px 1px 0px 0px rgba255255.1,0px 1px 0px rgba0,0,0.1; } .accordion>li:悬停>标签, .手风琴>李:目标>标签, .accordion>li>输入[类型=复选框]:选中~标签{ 颜色:3e5706; 文本阴影:1px 1px 1px rgba255,25 5,255, .2; /*背景:url../img/active.png repeat-x*/ 背景:a5cd4e; 背景:-moz线性梯度顶部,a5cd4e 0%,6b8f1a 100%; 背景:-webkit gradientlinear、左上、左下、彩色停止0%、a5cd4e、彩色停止100%、6b8f1a; 背景:-webkit线性梯度顶部,a5cd4e 0%,6b8f1a 100%; 背景:-o-线性梯度TOP,a5cd4e 0%,6b8f1a 100%; 背景:-ms线性梯度TOP,a5cd4e 0%,6b8f1a 100%; 背景:线性梯度TOP,a5cd4e 0%,6b8f1a 100%; } .accordio li>label span、.accordio li>a span{ 显示:块; 位置:绝对位置; 顶部:7px; 右:0; 填充:0 10px; 右边距:10px; 字体:普通粗体12px/18px Arial,无衬线; 背景:404247; -webkit边界半径:15px; -moz边界半径:15px; 边界半径:15px; -webkit盒阴影:插入1px 1px 1px rgba0,0,0,2,1px 1px 1px RGBA255255,1; -moz盒阴影:插入1px 1px 1px rgba0,0,0,2,1px 1px 1px RGBA255255,1; 盒影:插入1px 1px 1px rgba0,0,0,2,1px 1px 1px RGBA255255,1; } .accordion>li:悬停>标签跨度, .accordion>li:target>label span, .accordion>li>input[type=checkbox]:选中~label span{ 颜色:fdfdfd; 文本阴影:0px 1px 0px rgba0,0,0,35; 背景:3e5706; } /*图像*/ .手风琴>李>标签:之前{ 位置:绝对位置; 排名:0; 左:0; 内容:; 宽度:24px; 高度:24px; 利润率:4px8px; 背景重复:无重复; 背景图像:urlhttp://designmodo.com/demo/css3accordionmenu/img/icons.png; 背景位置:0px 0px; } .accordion li.files>标签:在{背景位置:0px 0px;}之前 .accordio li.files:hover>labe:before, .accordion li.files:target>label:before{background position:0px-24px;} .accordion li.mail>标签:在{背景位置:-24px 0px;}之前 .accordio li.mail:hover>label:before, .accordion li.mail:target>label:before{背景位置:-24px-24px;} .accordion li.cloud>标签:在{背景位置:-48px 0px;}之前 .accordio li.cloud:hover>label:before, .手风琴输入[类型=复选框]:选中:在{背景位置:-48px-24px;}之前 .accordio li.sign>标签:在{背景位置:-72px 0px;}之前 .手风琴李.标志:悬停>标签:在, .手风琴输入[类型=复选框]:选中:在{背景位置:-72px-24px;}之前 /*子菜单*/ .子菜单li>a{ 颜色:7979; 文本阴影:1px 1px 0px RGBA255255.2; 背景:E5; 边框底部:1px实心c9c9c9; -网络工具包盒阴影:插图0px 1px 0px 0px RGBA255255.1,0px 1px 0px 0px rgba0,0,0.1; -moz盒阴影:插入0px 1px 0px 0px RGBA255255,1,0px 1px 0px rgba0,0,0,1; 盒影:插入0px 1px 0px 0px rgba255255.1,0px 1px 0px rgba0,0,0.1; } .li子菜单:将鼠标悬停在{background:efefef;} .子菜单li:最后一个子菜单a{border:none;} .子菜单li>a跨度{ 颜色:7979; 文本阴影:1px 1px 0px RGBA255255.2; 背景:透明; 边框:1px实心c9c9c9; -webkit盒阴影:无; -莫兹盒阴影:无; 盒影:无; } .子菜单em{ 位置:绝对位置; 排名:0; 左:0; 左边距:14px; 颜色:A6; 字体:标准10px/32px Arial,无衬线; } /*功能性*/ .accordio li>。子菜单li{ 身高:0; 溢出:隐藏; -webkit过渡:高度2秒,易于进出; -moz过渡:高度。2秒缓进缓出; -o型过渡:高度。2秒缓进缓出; -ms转换:高度。2秒轻松进出; 过渡:高度2秒,易于进出; } .手风琴输入[类型=复选框]:选中~.子菜单li{ 高度:33像素; } 我的文件495 邮寄26 云58 退出
简而言之,不是。当css使用:target伪选择器时,OpenAccordion基于url,一次只能是一个。要拥有多个开放状态,您需要使用js。唯一的另一个选择是让它们一直打开删除高度:0;但这样就不是手风琴了,可以通过修改HTML和CSS来实现。不过这有点像黑客。简而言之,不是。当你的css使用:target伪选择器时,OpenAccordion是基于url的,一次只能有一个。要拥有多个开放状态,您需要使用js。唯一的另一个选择是让它们一直打开删除高度:0;但这样就不是手风琴了,可以通过修改HTML和CSS来实现。不过这有点像黑客。那么你能推荐javascript吗?避免jquery是理想的选择。谢谢删除了一些评论我已经让它工作了,但是它讨厌href=javacscript行,所以我又回到了href=one等。没有其他方法可以避免“屏幕抓拍”了吗?如果html中没有javascript,那么你能推荐javascript吗?避免使用jquery是非常困难的
完美的谢谢删除了一些评论我已经让它工作了,但是它讨厌href=javacscript行,所以我又回到了href=one等。没有其他方法可以避免“屏幕抓拍”了吗?没有html中的javascript?你知道我可以使用的java吗?但是我必须避免使用jquery。任何想法都很好。@jnapier不要使用Java,使用Javascript。它们不一样。完全记住Java对于Javascript就像火腿对于仓鼠一样重要!你知道我可以用的java吗?但是我必须避免使用jquery。任何想法都很好。@jnapier不要使用Java,使用Javascript。它们不一样。完全记住Java对于Javascript就像火腿对于仓鼠一样重要!