css制作开心农场
CSS制作开心农场布局
使用CSS栅格系统或弹性布局创建农场网格。设定固定宽高的单元格模拟土地块,背景色为深棕色(#8B4513),边框添加阴影增加立体感。
.farm-grid {
display: grid;
grid-template-columns: repeat(8, 80px);
grid-gap: 10px;
padding: 20px;
}
.plot {
width: 80px;
height: 80px;
background-color: #8B4513;
border-radius: 5px;
box-shadow: 3px 3px 5px rgba(0,0,0,0.3);
}
作物生长动画
通过CSS关键帧动画实现作物生长效果。为不同生长阶段设置透明度变化和尺寸缩放,使用transform和opacity属性。
@keyframes grow {
0% { transform: scale(0.5); opacity: 0; }
50% { transform: scale(1.1); opacity: 0.8; }
100% { transform: scale(1); opacity: 1; }
}
.crop {
animation: grow 0.5s ease-out forwards;
width: 60px;
height: 60px;
margin: 10px;
}
交互效果设计
为土地块添加悬停和点击效果。使用:hover伪类改变光标形状,点击后通过JavaScript动态添加.planted类触发CSS变化。
.plot:hover {
cursor: url('seed-cursor.png'), auto;
box-shadow: 0 0 15px #FFD700;
}
.planted {
background-image: repeating-linear-gradient(
45deg,
rgba(255,255,255,0.1),
rgba(255,255,255,0.1) 10px,
transparent 10px,
transparent 20px
);
}
季节主题切换
定义不同季节的颜色变量,通过修改body类名切换整体配色方案。使用CSS变量存储季节主题色。
:root {
--spring-bg: #E8F5E9;
--summer-bg: #FFF8E1;
--autumn-bg: #FFF3E0;
--winter-bg: #E3F2FD;
}
.spring .plot {
background-color: #4CAF50;
}
.winter .plot {
background-color: #B0BEC5;
}
响应式设计
添加媒体查询确保在不同设备上正常显示。调整栅格列数和地块尺寸,优化移动端操作体验。

@media (max-width: 768px) {
.farm-grid {
grid-template-columns: repeat(4, 60px);
}
.plot {
width: 60px;
height: 60px;
}
}






