教程 - 扩展网格
学习如何使用 CSS 和 JavaScript 创建一个扩展网格。
扩展网格
点击一个方块使其“扩展”(宽度为 100%)
×
方块 1
Lorem ipsum dolor sit amet, te quo doctus abhorreant, et pri deleniti intellegat, te sanctus inermis ullamcorper nam. Ius error diceret deseruisse ad
×
方块 2
Lorem ipsum dolor sit amet, te quo doctus abhorreant, et pri deleniti intellegat, te sanctus inermis ullamcorper nam. Ius error diceret deseruisse ad
×
自己尝试 »
方块 3
Lorem ipsum dolor sit amet, te quo doctus abhorreant, et pri deleniti intellegat, te sanctus inermis ullamcorper nam. Ius error diceret deseruisse ad
创建扩展网格
步骤 1) 添加 HTML
示例
<!-- 网格:三列 -->
<div class="row">
<div class="column" onclick="openTab('b1');" style="background:green;">方块 1</div>
<div class="column" onclick="openTab('b2');" style="background:blue;">方块 2</div>
<div class="column" onclick="openTab('b3');" style="background:red;">方块 3</div>
</div>
<!-- 扩展网格(默认隐藏) -->
<div id="b1" class="containerTab" style="display:none;background:green">
<!-- 如果你想添加关闭容器的功能,请添加一个关闭按钮 -->
<span onclick="this.parentElement.style.display='none'" class="closebtn">x</span>
<h2>方块 1</h2>
<p>Lorem ipsum..</p>
</div>
<div id="b2" class="containerTab" style="display:none;background:blue">
<span onclick="this.parentElement.style.display='none'" class="closebtn">x</span>
<h2>方块 2</h2>
<p>Lorem ipsum..</p>
</div>
<div id="b3" class="containerTab" style="display:none;background:red">
<span onclick="this.parentElement.style.display='none'" class="closebtn">x</span>
<h2>方块 3</h2>
<p>Lorem ipsum..</p>
</div>
步骤 2) 添加 CSS
创建三列
示例
/* 网格:三个相邻的等宽列 */
.column {
float: left;
width: 33.33%;
padding: 50px;
text-align: center;
font-size: 25px;
cursor: pointer;
color: white;
}
.containerTab {
padding: 20px;
color: white;
}
/* 清除列后的浮动 */
.row:after {
content: "";
display: table;
clear: both;
}
/* 图片内部的可关闭按钮 */
.closebtn {
float: right;
color: white;
font-size: 35px;
cursor: pointer;
}
步骤 3) 添加 JavaScript
示例
// 隐藏所有 class 为 "containerTab" 的元素,除了与可点击的网格列匹配的那个
function openTab(tabName) {
var i, x;
x = document.getElementsByClassName("containerTab");
for (i = 0; i < x.length; i++) {
x[i].style.display = "none";
}
document.getElementById(tabName).style.display = "block";
}
自己尝试 »