用html+css作个简单的九宫格

0 篇文章 0 订阅

不废话,直接上代码
HTML代码:

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>task1</title>
	<link rel="stylesheet" type="text/css" href="task1.css">
</head>
<body>
	<div class="box-wrap">
		<div class="box"></div>
		<div class="box"></div>
		<div class="box"></div>
		<div class="box"></div>
		<div class="box"></div>
		<div class="box"></div>
		<div class="box"></div>
		<div class="box"></div>
		<div class="box"></div>

</html>

CSS代码:

.box-wrap {
	text-align: center;
	background-color: #d4d4f5;
	overflow: hidden; 
}

.box-wrap>div {
	width: 31%;
	padding-bottom: 31%;
	margin: 1%;
	border-radius: 10%;
	float: left;
	background-color: orange;
}

结果演示:
这里写图片描述

注意:为了让页面能跟随页面的缩放而跟着一起缩放,我用了百分比来设置宽高,但此处的高(height)用百分比是不行的,而要用padding-bottom,为什么呢?

		↓↓↓↓↓原因↓↓↓↓↓

高度height的百分比相对于父元素的高度,父元素默认是没有高度的。如果不给父元素一个高度,子元素也不会有高度。在普通文档流中,块级元素的宽度默认是浏览器的宽度,因此百分比有效。也就是为什么子元素有宽度而没有高度。padding-bottom和padding-top的百分比是相对于父元素的宽度,而不是高度。因此设置了padding-top或者padding-bottom百分比的子元素,其高度就不再依赖于父元素高度了。由于padding-bottom和padding-top的百分比是相对于父元素的宽度,当屏幕大小出现变化时,元素基于padding-top或者padding-bottom的高度也会随着宽度的变化而等比例的缩放。

  • 6
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
好的,以下是一个简单HTML+CSS+JS 九宫格抽奖的代码示例: ```html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>九宫格抽奖</title> <style type="text/css"> .container { display: flex; flex-wrap: wrap; width: 300px; height: 300px; margin: 0 auto; } .item { flex-basis: 33.33%; height: 33.33%; box-sizing: border-box; border: 1px solid #ccc; text-align: center; font-size: 24px; line-height: 100px; } .active { background-color: #ff0; } .btn { display: block; margin: 20px auto; padding: 10px 20px; font-size: 24px; background-color: #00f; color: #fff; border-radius: 5px; cursor: pointer; } </style> </head> <body> <div class="container"> <div class="item">1</div> <div class="item">2</div> <div class="item">3</div> <div class="item">4</div> <div class="item">5</div> <div class="item">6</div> <div class="item">7</div> <div class="item">8</div> <div class="item">9</div> </div> <button class="btn">开始抽奖</button> <script type="text/javascript"> var items = document.querySelectorAll('.item'); // 获取所有九宫格元素 var btn = document.querySelector('.btn'); // 获取开始抽奖按钮 var timer = null; // 定义计时器 btn.onclick = function() { if (timer) return; // 如果计时器已经在运行,则返回 var index = 0; // 初始化索引值 timer = setInterval(function() { // 清除其他元素的样式 for (var i = 0; i < items.length; i++) { items[i].classList.remove('active'); } // 添加当前元素的样式 items[index].classList.add('active'); // 更新索引值 index++; if (index >= items.length) { index = 0; } }, 100); // 3秒后停止计时器 setTimeout(function() { clearInterval(timer); timer = null; }, 3000); }; </script> </body> </html> ``` 这段代码实现了一个简单九宫格抽奖功能,点击“开始抽奖”按钮后,九宫格中的元素会不断地轮流高亮显示,3秒后停止,并且最终停留在一个元素上。可以根据需要自行修改样式和逻辑。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值