html多个背景色,多个CSS控制同一个DIV的背景颜色

用CSS控制一个DIV的Background不难,用CSS控制CSS内的Background也不难,难就难在,同等级的CSS相互控制。

今天就遇到了这么一个问题,首先是出现了一个大概的构思:在网页内部,有多个按钮,每单击一个按钮,一个固定位置DIV的Background就改变成指定的颜色。

开始是想直接用input button的,可是为了美观,还是选择了用DIV当做Button,然后交互方式也简化了,就变成鼠标移动到Button上面就出现对于的变化。

代码也就很简单的一个大概布局1

2

3

鼠标移动到.red上面,.box背景变成红色,移动到.blue上面,.box颜色就变成蓝色,很简单的效果。

可是问题就出现在CSS的同级元素相互控制上面。写CSS才发现,根本就不知道应该怎么写呀,如果DIV.box在DIV.red里面,那么用.red:hover .box{*}就搞定了,可是.box并不在.red里面,而是在外面。

在度娘上参考了诸多资料,也问了许多大神,仍然没有得到想要的结果。

虽然问了很多,没有得到答案,可是却想到了另外一个办法,虽然这样从编程的角度上看来,比较浪费资源,因为我的想法是创建四个box,分别放在对于的颜色div里面,通过position改变z-index层次,虽然原理不一样,可是效果确实达成了。

4561de4ff116cb1bcc9e1718df1b62f2.gif

其中的过程就不详细说明了,接着突然想升级一下,既然移动的时候可以改变颜色,那么为什么不能把颜色固定住呢?

然后就想起focus,可是改了半天的代码,一直没有达到效果,background颜色始终固定不住。

也问了许多大神,仍然还是没有问到结果,不过突然才发现自己真的糊涂了,focus直接用css根本没办法去设置的呀,行吧,只能说经验不足,最后效果就保持到如上的那个GIF一样了。

40574c1d4ac2a0748398a1715c5e7100.png

689c87a2cc975cc53071bd88e8681c6c.png

3d936fe7392182a7629d933764212548.png

ce1520e18baffcf88d2d14b71f0ceb7c.png

在线演示

在Web开发中,使用循环来创建多个`div`元素,并通过点击事件改变某个`div`的背景色是一种常见的操作。这通常可以通过JavaScript结合HTMLCSS来实现。下面是一个简单的实现步骤: 1. 使用HTML创建一个容器元素,例如`div`,用于包含所有的子`div`元素。 2. 使用JavaScript(可以结合循环结构如`for`或`while`)动态地创建多个子`div`元素,并将它们添加到容器元素中。 3. 为每个子`div`元素添加一个点击事件监听器。 4. 在事件处理函数中,改变被点击`div`的背景色。 这里给出一个简单的示例代码: HTML部分: ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>点击改变背景色</title> <style> .container { display: flex; flex-wrap: wrap; justify-content: center; } .clickable-div { width: 100px; height: 100px; margin: 5px; display: flex; align-items: center; justify-content: center; cursor: pointer; } </style> </head> <body> <div id="container" class="container"></div> <script> // JavaScript代码将在这里编写 </script> </body> </html> ``` JavaScript部分: ```javascript // 假设我们要创建10个div元素 for (let i = 0; i < 10; i++) { const div = document.createElement('div'); div.className = 'clickable-div'; div.textContent = '点击我'; div.onclick = function() { this.style.backgroundColor = '#' + Math.floor(Math.random()*16777215).toString(16); }; document.getElementById('container').appendChild(div); } ``` 在这个示例中,我们创建了一个`container`元素用于存放子`div`,并通过循环创建了10个可点击的子`div`。每个子`div`在被点击时会随机改变其背景色
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值