在TDesign UI库中,.t-grid--card 是一个基于BEM命名规范的CSS选择器,用于为网格组件(Grid)添加卡片式布局的样式,其类名通过小程序的外部样式类(t-class)动态传入,无需严格匹配DOM结构中的嵌套关系。 以下是具体解析:
1. BEM命名风格的应用2. 与DOM结构的解耦- 外部样式类传入:在小程序中,TDesign通过t-class属性将类名动态绑定到组件根元素。例如:<t-grid t-class="custom-class"></t-grid>此时,.t-grid--card 可能通过custom-class传入,而非直接写在组件的DOM结构中。
- 简化命名:BEM允许根据团队规范简化类名,无需严格匹配DOM嵌套。例如,子元素可能使用.t-grid__item,但修饰符.t-grid--card可直接作用于根元素。
3. 与CSS变量的区别4. 实际使用场景- 启用卡片样式:在网格组件中添加.t-grid--card类,可触发预设的卡片布局(如圆角、阴影、背景色等)。.t-grid--card { border-radius: 8px; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); background: #fff;}
- 动态切换:通过t-class绑定不同类名,实现样式灵活切换:<t-grid t-class="{{ isCard ? 't-grid--card' : 't-grid' }}"></t-grid>
5. 开发者注意事项- 检查文档:确认组件是否支持.t-grid--card修饰符,部分变体可能需通过属性(如layout="card")而非类名实现。
- 样式覆盖:若需自定义卡片样式,可通过更高优先级的选择器(如.custom-class.t-grid--card)覆盖默认样式。
- 避免混淆:确保不将BEM修饰符与CSS变量混淆,例如:/* 正确:BEM修饰符 */.t-grid--card { ... }/* 正确:CSS变量 */.t-grid { color: var(--text-color); }
总结.t-grid--card 是TDesign中基于BEM规范的修饰符类,通过外部样式类动态传入,用于定义网格组件的卡片样式变体。其命名与DOM结构解耦,开发者需结合文档和团队规范灵活使用,同时注意区分BEM与CSS变量的语法差异。