css - 继承自 CSS ID
问题描述
从https://github.com/m1cr0lab-esp32/remote-control-with-websocket复制了一个 Arduino 示例。这是为 websockets 使用单个 LED,但我需要多个。后端的东西工作正常。
#led {
position: relative;
width: 3em;
height: 3em;
border: 2px solid #000;
border-radius: 2.5em;
background-image: radial-gradient(farthest-corner at 50% 20%, #b30000 0%, #330000 100%);
box-shadow: 0 0.5em 1em rgba(102, 0, 0, 0.3);
}
#led.on {
background-image: radial-gradient(farthest-corner at 50% 75%, red 0%, #990000 100%);
box-shadow: 0 1em 1.5em rgba(255, 0, 0, 0.5);
}
#led:after {
content: '';
position: absolute;
top: .3em;
left: 1em;
width: 60%;
height: 40%;
border-radius: 60%;
background-image: linear-gradient(rgba(255, 255, 255, 0.4), rgba(255, 255, 255, 0.1));
}
<div class="panel">
<div id="led" class="%button1%"></div>
<button id="toggle1">Snowman</button>
</div>
我总共有 5 个 LED。目前我只是简单地复制了 CSS 的东西 5 次,但必须有更好的方法。
任何人都可以对此有所了解吗?
解决方案
将您的 id 更改led
为一个类并复制以匹配您需要的灯数(例如,我做了 5 个)。
此外,为了能够通过 JS 或 CSS 单独定位每个 LED,我将为每个 LED 添加一个唯一的ID。
通过将类添加on
到元素,您可以打开灯(请参阅示例中的 grinch 灯)。
.led {
position: relative;
width: 3em;
height: 3em;
border: 2px solid #000;
border-radius: 2.5em;
background-image: radial-gradient(farthest-corner at 50% 20%, #b30000 0%, #330000 100%);
box-shadow: 0 0.5em 1em rgba(102, 0, 0, 0.3);
}
.led.on {
background-image: radial-gradient(farthest-corner at 50% 75%, red 0%, #990000 100%);
box-shadow: 0 1em 1.5em rgba(255, 0, 0, 0.5);
}
.led:after {
content: '';
position: absolute;
top: .3em;
left: 1em;
width: 60%;
height: 40%;
border-radius: 60%;
background-image: linear-gradient(rgba(255, 255, 255, 0.4), rgba(255, 255, 255, 0.1));
}
<div class="panel">
<div id="led1" class="led" class="%button1%"></div>
<button id="toggle1">Snowman</button>
</div>
<div class="panel">
<div id="led2" class="led" class="%button1%"></div>
<button id="toggle2">Pumpkin</button>
</div>
<div class="panel">
<div id="led3" class="led on" class="%button1%"></div>
<button id="toggle3">Grinch</button>
</div>
<div class="panel">
<div id="led4" class="led" class="%button1%"></div>
<button id="toggle4">Santa on the Roof</button>
</div>
<div class="panel">
<div id="led5" class="led" class="%button1%"></div>
<button id="toggle5">Reindeers</button>
</div>
推荐阅读
- php - 如何使用 RewriteRule 以便为 PHP 修改 $_SERVER['REQUEST_URI']?
- google-cloud-platform - 如何在 Google Cloud Load Balancer 上记录 SSL/TLS 握手详细信息
- ruby-on-rails - 关于关联列的rails验证唯一性
- javascript - React / Nextjs 页面作为另一个页面上的 iframe 并调整大小
- css - Chrome 添加与其他浏览器不同的边距
- ios - UIScrollView contentOffset 值略有错误
- ruby-on-rails - rails_admin:安装失败(文件描述符错误)
- python - 如何以简单的方式传递有组织的参数?
- laravel - 试图用三个表(用户、个人资料、国家)修复我的 Laravel 7 Eloquent 关系
- sql-server - SQL Server:分组重复行集