热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

在小程序中适配通用符*

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

在小程序中适配通用符*

在微信小程序的 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 生效,因此目前只能手动写进去,具体解决方法有待评


推荐阅读
  • Webpack5内置处理图片资源的配置方法
    本文介绍了在Webpack5中处理图片资源的配置方法。在Webpack4中,我们需要使用file-loader和url-loader来处理图片资源,但是在Webpack5中,这两个Loader的功能已经被内置到Webpack中,我们只需要简单配置即可实现图片资源的处理。本文还介绍了一些常用的配置方法,如匹配不同类型的图片文件、设置输出路径等。通过本文的学习,读者可以快速掌握Webpack5处理图片资源的方法。 ... [详细]
  • Vue cli2.0 项目中使用Monaco Editor编辑器
    monaco-editor是微软出的一条开源web在线编辑器支持多种语言,代码高亮,代码提示等功能,与VisualStudioCode功能几乎相同。在项目中可能会用带代码编 ... [详细]
  • 1、运行npmrundev命令在cmd上面也不算报错输出一些东西看不懂什么意思。报错页: ... [详细]
  • 小程序开发分享
    小程序概述APP和和H5的区别:原生APP是软件开发者开发后,直接在安卓或者iOS系统中直接运行的软件应用,功能强大,体验 ... [详细]
  • 如何优化Webpack打包后的代码分割
    本文介绍了如何通过优化Webpack的代码分割来减小打包后的文件大小。主要包括拆分业务逻辑代码和引入第三方包的代码、配置Webpack插件、异步代码的处理、代码分割重命名、配置vendors和cacheGroups等方面的内容。通过合理配置和优化,可以有效减小打包后的文件大小,提高应用的加载速度。 ... [详细]
  • MVC中的自定义控件
    怎么样创建自定义控 ... [详细]
  • npminstall-Dbabelcorebabelpreset-envbabelplugin-transform-runtimebabelpolyfillbabel-loader ... [详细]
  • 1.修改babelrc文件{presets:[es2015,react,stage-1],plugins:[transform-decorators-lega ... [详细]
  • nuxt 内存溢出
    nuxt部署到生产环境后会出现内存溢出的情况,经过压力测试发现每一个请求都会增加内存并且释放不了。 ... [详细]
  • 在mpvue中引入腾讯地图插件,没有报错也不显示地图。 ... [详细]
  • 想要快速的入门,就需要在初期投入足够多的时间和精力。除了课程学习笔记,在开发项目练手时,会碰到很多问题,这些问题及解决方案最好一并记录。能够把python学会,一定也能把java ... [详细]
  • 微信小程序搭建(mpvue+mpvueweui+fly.js),多图
    微信小程序框架:mpvueui框架:mpvue-weuirequest请求:fly.js1.项目初始化注:如果没有安装node环境的请先去网上下载node.js下来安装,安装后默认 ... [详细]
  • mpvue-meituanmpvue-meituan是一款使用mpvue开发的实战小程序项目,完全仿制美团官方外卖点餐小程序开发而成,项目的框架结构完全 ... [详细]
  • 业务背景这段时间用 ... [详细]
  • 问题Dialog组件支持函数调用和组件调用两种形式,而一般的组件仅支持后者。显然,函数调用方式的支持增加了组件使用的灵活性,但是也随之出现另 ... [详细]
author-avatar
我也不走了_931_327
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有