收藏
回答

自定义组件的默认display到底是什么?

我项目里包含了多个自定义组件,但是我发现一些组件的display默认是inline,一些默认是block,完全没发现有什么规律,这个到底在哪里控制的?

我翻遍了文档都没找到相关的说明,组件里只能定义内部元素的display,组件本身的display只能靠使用组件的页面控制。

我有一个card组件,我之前总是认为自定义组件的display默认是block,结果今天出现了很奇怪的margin无效,开始一直以为是margin塌陷和BFC的问题,搞了半天才发现这个组件被默认设置为行内元素了,我只能在小程序的app.wxss里全局设置card的display为block,虽然也管用,但是这个问题很迷。

目前问题是解决了,但还是很好奇微信自定义组件的默认display是哪里控制的?

最后一次编辑于  2020-12-08
回答关注问题邀请回答
收藏

2 个回答

  • 社区技术运营专员-Jahozheng
    社区技术运营专员-Jahozheng
    2020-12-08

    自定义组件用户根据自己需要设置就行了,请参考https://developers.weixin.qq.com/miniprogram/dev/framework/custom-component/wxml-wxss.html

    2020-12-08
    有用
    回复 2
    • 无言以对
      无言以对
      2020-12-08
      非常感谢解答,使用虚拟化节点问题更多,很多时候我还是需要在页面来控制组件的margin的,所以我还是在app.wxss覆盖吧。只是好奇组件默认的display为什么会不一致的问题,我查看了我自己写的自定义组件,第三方的自定义组件,然后默认不设置display的情况下,computed里显示的display,有的是inline,有的是block,甚至还有flex的……而且我没有找到规律,或许是开发工具内部的一套继承机制?
      2020-12-08
      回复
    • 社区技术运营专员-Jahozheng
      社区技术运营专员-Jahozheng
      2020-12-08回复无言以对
      应该是继承了
      2020-12-08
      回复
  • 哄哄
    哄哄
    01-22

    确实 我也发现了 我说怎么设置margin左右没效果, 能否把自己写的自定义组件都改成block就好了

    01-22
    有用
    回复
登录 后发表内容
问题标签