样式多态

cml文件中的style标签支持样式的多态,即可以针对不同的平台写不同的样式,格式如下:

  1. <style>
  2. @media cml-type (支持的平台) {
  3. }
  4. .common {
  5. /**/
  6. }
  7. <style>

其中支持的平台为可以用逗号分隔多个平台,可选平台为web,weex,wx,alipay,baidu。demo示例,class1在各端的差异实现。

  1. <template>
  2. <view><text class="class1">chameleon</text><view>
  3. </template>
  4. <script>
  5. class DemoPage {
  6. }
  7. export default new DemoPage();
  8. </script>
  9. <style>
  10. @media cml-type (web) {
  11. .class1 {
  12. color: red;
  13. }
  14. }
  15. @media cml-type (weex) {
  16. .class1 {
  17. color: green;
  18. }
  19. }
  20. @media cml-type (wx,alipay,baidu) {
  21. .class1 {
  22. color: blue;
  23. }
  24. }
  25. </style>
  26. <script cml-type="json">
  27. {}
  28. </script>

注意: 多态差异语法只能在cml文件中使用,不能在.css,.less等其他样式文件中使用,如果需要分文件实现,可以在多态内部分别引入文件。例如:

  1. <style lang="less">
  2. @media cml-type (web) {
  3. @import "./style1.less";
  4. }
  5. @media cml-type (weex) {
  6. @import "./style2.less";
  7. }
  8. @media cml-type (wx,alipay,baidu) {
  9. @import "./style3.less";
  10. }
  11. </style>