html - CSS3 折叠展开效果

标签 html css

我需要一点帮助。

我在 CodePen 中使用以下 html 和 css。基本上我需要它以折叠状态而不是打开状态开始。

我需要始终展开文件夹封面(顶部 div),因为这将显示有关如何打开内容的信息,因为封面需要包含折叠/展开链接。此外,当我在每个折叠 div 中输入内容时,内容会运行到下一个 div,而不是扩展当前 div,正如您将在下面我编辑的 CodePen 中看到的那样。

这也需要解决,以便在折叠时不会因为 div 未对齐而导致问题。

原始代码笔

http://codepen.io/boxabrain/pen/Hhugb/

我编辑的CodePen

http://codepen.io/anon/pen/gmAnK

HTML

<div id="folder">
  <input type="checkbox" id="toggle"/> <label for="toggle" id="toggle-    label">fold/unfold</label>

    <div class="fold">
    Element 1
    </div>
    <div class="fold">
    Element 2
    </div>
    <div class="fold">
    Element 3
    </div>
    <div class="fold">
    Element 4
    </div>
    <div class="fold">
    Element 5
    </div>
    <div class="fold">
    Element 6
    </div>
    <div class="fold">
    Element 7
    </div>
    <div class="fold">
    Element 8
    </div>
</div>

CSS

body { 
padding: 50px; 
font-family: Arial, sans-serif;
}

#folder {
width: 300px;
padding: 10px;
}

.fold {
background: #000;
background: #000;
padding: 10px;
width: 280px;
height: 80px;
color: #999;
-webkit-transition: all 0.3s linear;
-moz-transition: all 0.3s linear;
transition: all 0.3s linear;
 }

#toggle { display: none; }

#toggle-label {
display: inline-block;
cursor: pointer;
margin-bottom: 50px;
border: 1px solid #e5e5e5;
font-size: 11px;
color: #999;
background: #fff;
text-transform: uppercase;
border-radius: 5px;
padding: 5px;
}

#toggle:checked ~ .fold:nth-child(odd) {
margin-top: -82px;
-webkit-transform: perspective(800px) rotateX(-80deg); 
-moz-transform: perspective(800px) rotateX(-80deg); 
transform: perspective(800px) rotateX(-80deg);
}

#toggle:checked ~ .fold:nth-child(even) {
margin-top: -84px;
-webkit-transform: perspective(800px) rotateX(80deg); 
-moz-transform: perspective(800px) rotateX(80deg); 
transform: perspective(800px) rotateX(80deg);
}

谁能帮帮我?

提前致谢

最佳答案

要以折叠状态开始,只需像这样添加 :not 选择器:

#toggle:not(:checked) ~ .fold:nth-child(odd)
#toggle:not(:checked) ~ .fold:nth-child(even)

关于内容溢出 - 如果你不想使用 Js,你需要手动调整它(玩个别 .folds heightsrotateX)。

关于html - CSS3 折叠展开效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26090324/

相关文章:

css - 是否需要有效的 CSS?

javascript - 如何制作内联六边形画廊

javascript - 如何使用 JavaScript 和 CSS 获得基于 div 的下拉菜单以获得滚动条而不是延伸到屏幕末尾? Struts也参与其中

android - -webkit-背景剪辑 :text not work in Android phone

html - 对元素的 id 和 classname 使用相同的名称?

javascript - 在输入文本表单旁边添加标签

javascript - 使用 jQuery 在 Change 上设置 CSS 属性

javascript - 在窗口调整大小时更新 Canvas

html - 在手机屏幕尺寸上将div变成链接

html - Bootstrap 时间轴模板 - 消除间隙