惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

小众软件
小众软件
A
About on SuperTechFans
博客园 - Franky
Engineering at Meta
Engineering at Meta
Recent Announcements
Recent Announcements
云风的 BLOG
云风的 BLOG
B
Blog
Microsoft Security Blog
Microsoft Security Blog
L
LangChain Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
U
Unit 42
Martin Fowler
Martin Fowler
Y
Y Combinator Blog
Stack Overflow Blog
Stack Overflow Blog
博客园 - 叶小钗
Vercel News
Vercel News
Apple Machine Learning Research
Apple Machine Learning Research
The Cloudflare Blog
Last Week in AI
Last Week in AI
腾讯CDC
Microsoft Azure Blog
Microsoft Azure Blog
爱范儿
爱范儿
V
V2EX
G
Google Developers Blog

博客园 - replace

CSS常用滤镜 关于Adodb.Stream 的使用说明 - replace - 博客园 Dom操作xml的常用方法 - replace - 博客园 DOM精简知识教程 在b/s开发中经常用到的javaScript技术 XML学习笔记-XML的基本语法 100%背景图片 - replace - 博客园 简单易变的CSS阴影效果 - replace - 博客园 HTML元素的默认CSS设置 CSS语法技巧 CSS兼容要点 Ajax程序设计入门 如何使用Ajax技术开发Web应用程序(2) 如何使用Ajax技术开发Web应用程序(1) _blank开新窗口不符合标准? SQL 快速参考 SQL Servers - RDBMS SQL指南- CREATE VIEW 语句 SQL指南-SELECT INTO语句 SQL指南-GROUP BY 和 HAVING
CSS+JS制作可折叠内容块 - replace - 博客园
replace · 2006-04-12 · via 博客园 - replace

代码解析

HTML 代码部分

<div class="save">

<h1><a href="javascript:void(0)" class="dsphead"
onclick="dsp(this)">
<span class="dspchar">+</span> heading</a></h1>
<div class="dspcont">section</div>
<!--以上部分是第一个heading,h1中有个onclick触发了JS中的dsp(loc)函数,初始的+号是在class为dspcont的<span>里的,初始隐藏的内容则是在class为dspcont的div里的-->

<h1><a href="javascript:void(0)" class="dsphead"
onclick="dsp(this)">
<span class="dspchar">+</span> heading</a></h1>
<div class="dspcont">

<h2><a href="javascript:void(0)" class="dsphead"
onclick="dsp(this)">
<span class="dsphead">+</span> heading</a></h2>
<div class="dspcont">section</div>

<h2><a href="javascript:void(0)" class="dsphead"
onclick="dsp(this)">
<span class="dspchar">+</span> heading</a></h2>
<div class="dspcont">section</div>
</div>
</div>

CSS代码部分

.save{
behavior:url(#default#savehistory);}
/*防止后退时清空该范围内的text内容[这里为什么用到这个不是很明白...]*/

a.dsphead{
text-decoration:none;
margin-left:1.5em;}
/*对连接样式的设置*/

a.dsphead:hover{
text-decoration:underline;}
/*连接hover的状态*/

a.dsphead span.dspchar{
font-family:monospace;
font-weight:normal;}
/*设置head和符号的字体*/

.dspcont{
display:none;
margin-left:1.5em;}
/*设置内容部分初始样式,display是none*/

JS代码部分

<script type="text/javascript"><!--
function dsp(loc){
if(document.getElementById){
foc=loc.firstChild.innerHTML?
loc.firstChild:
loc.firstChild.nextSibling;/*使foc为当前点的下一个子元素的innerHTML也就是那个带+符号的<span>的innerHTML*/
foc.innerHTML=(foc.innerHTML=='+')?'-':'+';/*判断<span>里的内容是-还是+号,是+就变-,是-就变+*/
foc=loc.parentNode.nextSibling.style?
loc.parentNode.nextSibling:
loc.parentNode.nextSibling.nextSibling;/*将判断位置移动到<a>的父兄(就是h1后面的隐藏div)*/
foc.style.display=foc.style.display=='block'?'none':'block';}/*判断div的display是none还是block,设置为相反的值*/}

if(!document.getElementById)
document.write('<style type="text/css"><!--\n'+
'.dspcont{display:block;}\n'+
'//--></style>');
//--></script>/*针对不支持DOM的浏览器,将隐藏内容全部显示*/

<noscript>
<style type="text/css"><!--
.dspcont{display:block;}
//--></style>/*针对不支持js的浏览器,将隐藏内容显示*/
</noscript>