通过 Unocss/Tailwindcss 样式标签给嵌套子元素设置样式

2,252 阅读1分钟

问题

在使用 unocss 时,可以直接在 dom 上添加标签样式,但是在一个 div 下有多个元素,且需要设置相同样式时又不想重复写,关于 unocss 的文档很少现在将写法分享给大家。

使用

如下代码,我想给 left 和 right 都添加一个下边距,直接给父元素 mb-10 会导致宽度不够元素换行时中间没有间距,如果有多个元素每个上面加又很麻烦,可以直接使用 class="[&_>div]:mb-10" ,这里的写法类似于 css 选择器,可以写标签或者类名例如 class="[&_.button]:mb-10"

<div flex justify-around flex-wrap class="[&_>div]:mb-10">
  <div class="left">
    <div class="title">当前温度:</div>
    <div id="temperatureChart" style="width: 600px; height: 400px" />
  </div>
  <div class="right">
    <div class="title">当前湿度:</div>
    <div id="humidityChart" style="width: 600px; height: 400px" />
  </div>
</div>

后续有其他特殊样式写法会继续补充