• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

在小程序中适配通用符*

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

在微信小程序的 WXSS 中使用 * 通配符选择器
题外话:近期在使用框架写小程序,刚看了几页 wepy 框架的文档,美团的 mpvue 便闪耀登场,如此精彩的框架,马上上手用。

前端开发中必然要使用 * 通配符选择器,例如全局应用 box-sizing 盒模型:

* {
    box-sizing: border-box;
}

然而小程序竟不支持这一现代网页开发必备属性,更可气的是,直接对小程序的元素(view、label 等)应用该属性是无效的,这也就断了手工穷举的可能,毕竟我们不可能不厌其烦地对每一个 .class {} 选择器加这个属性,那样会很累并且不利于长久维护。经过查询,微信小程序的官方问答中心也有人遇到了相同问题。

幸运的是 mpvue 的 Quick Start 模版使用了 webpack,并默认启用了 PostCSS 插件,翻遍 PostCSS 插件目录后,终于找到了一款合适的插件,能够模拟 * 的效果:postcss-autoreset。

其使用方法也异常简单,在项目根目录的 .postcs-s-rc.js 中,插入 postcss-autoreset 相关配置即可:

module.exports = {
  "plugins": {
    // 添加 postcss-autoreset 设置
    // Add postcss-autoreset configs
    "postcss-autoreset": {
      reset: {
        // 这里的声明会应用于所有 WXSS 选择器
        // Styles apply to all WXSS selectors
        boxSizing: "border-box",
      },
    },
    "autoprefixer": {},
    "postcss-mpvue-wxss": {},
  }
};

经过构建编译,插件会将所有 .class {} 选择器抽离出一份置于 .wxss 文件顶部,并插入我们配置的 CSS 属性声明。

另外该插件还支持识别并忽略伪类和 BEM 的修饰(modifier)选择器,可以说是开箱即用了,详见文档。

经过这番配置,虽然繁琐,但达成了 CSS * 的效果。

注意

以上方法不会对 ::before 和 ::after 生效,因此目前只能手动写进去,具体解决方法有待评


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
小程序(长按二维码图片保存至手机) - AndreaLi发布时间:2022-07-18
下一篇:
ip置换的小程序发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap