这是一款非常实用的纯CSS3全屏单页4格网格布局。该布局将整个屏幕平分为4个网格,每个网格是一个项目内容。当点击了相应的网格后,该网格的图片会全屏放大,并显示出该项目的说明文字。
制作方法
HTML结构
该CSS3网格布局的HTML结构中,每一个网格由3个部分组成:一个<input>元素,一个<label>元素和一个用于放置文字内容的<div>元素。
<input id="left-top" type="checkbox" name="left-top"/>
<label for="left-top" class="trigger left top"></label>
<div class="block left top">
<h1>Left top block heading</h1>
<div class="content">
<h2>Title</h2>
<p>...</p>
<p>...</p>
</div>
</div>
CSS样式
在CSS样式中,每一个网格的宽度和高度都设置为50%,并分别进行定位。
.absPos, .blocks .trigger, .blocks .block {
position: absolute;
width: 50%;
height: 50%;
}
.absPos.top, .blocks .top.trigger, .blocks .top.block {
top: 0;
}
.absPos.right, .blocks .right.trigger, .blocks .right.block {
left: 50%;
}
.absPos.bot, .blocks .bot.trigger, .blocks .bot.block {
top: 50%;
}
.absPos.left, .blocks .left.trigger, .blocks .left.block {
left: 0;
}
各个网格的点击事件采用checkBox hack来完成,同时为每个网格的切换设置了animation animation动画效果。
.labelClose, .blocks #left-top:checked ~ .trigger.left.top,
.blocks #right-top:checked ~ .trigger.right.top,
.blocks #left-bot:checked ~ .trigger.left.bot,
.blocks #right-bot:checked ~ .trigger.right.bot {
left: auto;
bottom: auto;
right: 0;
top: 0;
width: 30px;
height: 30px;
z-index: 101;
-webkit-animation: hideAndShow 1s;
animation: hideAndShow 1s;
}
@keyframes hideAndShow {
0% {
opacity: 0;
}
50% {
opacity: 0;
-webkit-transform: scale(0.5);
transform: scale(0.5);
}
90% {
-webkit-transform: scale(1.2);
transform: scale(1.2);
}
100% {
opacity: 1;
-webkit-transform: scale(1);
transform: scale(1);
}
}
CSS代码不是十分复杂,具体请查看下载文件。