现有Preact的项目,其中用到了css去加载图片
对应代码为:
index.js
import { h, Component } from ‘preact’; import style from ‘./style.less’; export default class CurMonthNum extends Component { render() { const curMonthNumArr = this.props.curMonthNumArr; return ( <div class={style.home_ring}> <ul class=”clearfix”> <li> <div class={style.nn_huan01} /> <span>{ curMonthNumArr[0] }</span> <p>发情</p> </li> <li> <div class={style.nn_huan02} /> <span>{ curMonthNumArr[1] }</span> <p>配种</p> </li> <li> <div class={style.nn_huan03} /> <span>{ curMonthNumArr[2] }</span> <p>孕检</p> </li> <li> <div class={style.nn_huan04} /> <span>{ curMonthNumArr[3] }</span> <p>异常</p> </li> </ul> </div> ); } } |
style.less
.nn_huan01, .nn_huan02, .nn_huan03, .nn_huan04 { margin: 0 auto; display: inline-block; width: 1.8rem; height: 1.8rem; } .nn_huan01 { background: url(/assets/quan_01.png) no-repeat; background-size: 1.8rem 1.8rem; } .nn_huan02 { background: url(/assets/quan_02.png) no-repeat; background-size: 1.8rem 1.8rem; } .nn_huan03 { background: url(/assets/quan_03.png) no-repeat; background-size: 1.8rem 1.8rem; } .nn_huan04 { background: url(/assets/quan_04.png) no-repeat; background-size: 1.8rem 1.8rem; } |
然后希望可以把index.js中的内容,弄成类似于另外一个index.js中map形式的:
export default class GradientBars extends Component { render() { const data = this.props.data; return ( <div class={style.gradientBars}> <ul class=”clearfix”> { data.map(({ text, number }) => { return ( <li> { text } { number ? <span>{number}</span> : null } </li> ); }) } </ul> </div> ); } } |
从而实现:
上述的代码很简洁,然后传入的内容只需要是一个字典
然后对应的css写成类似于:
.nn_huan0N { margin: 0 auto; display: inline-block; width: 1.8rem; height: 1.8rem; } .nn_huan0N { background: url(/assets/quan_0N.png) no-repeat; background-size: 1.8rem 1.8rem; } |
其中N表示整数
就好了。
去研究看看,是否有这种解决办法。
是否有css中可以批量动态命名style的
后者是正则表达式去匹配命名的
css style 动态命名
用于动态命名的输入元素的CSS样式_CSS styles for input elements named dynamically_代码错误
命名规则 – CSS规范 – 规范 – NEC : 更好的CSS样式解决方案
关于 ” 绑定内联样式 ” 一节中,CSS属性名命名约定问题 · Issue #1931 · vuejs/vue
JavaScript实现动态创建CSS样式规则方案
css style batch name
css3 – How do I batch CSS selectors together? – Stack Overflow
没太看懂。
算了。估计没有这种技术,暂时放弃。
转载请注明:在路上 » 【无法解决】Preact中css是否支持批量动态命名或正则匹配