小程序
小游戏
企业微信
微信支付
扫描小程序码分享
iOS跟开发工具都显示正常,安卓手机只显示一面,正常情况下是四个面,请问怎么解决
1 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
您好,正常情况下只应该显示一个面。iOS 和开发者工具的表现反而是错误的,这是由于当前版本 Safari 和开发者工具使用的 Chromium 并未正确实现标准中的 CSS Transforms。
首先,transform-style 是一个不可继承的 CSS 属性,您需要为这颗组件树中的每一个非叶子节点显式声明该属性。
其次,transfrom 应且只应作用于可变换元素(transfromable element)。您使用引入的 swipertd-item 组件时,小程序组件框架会在页面上创建同名的 swipertd-item 元素(相关文档)。它的 display 属性默认是 inline,不是一个可变换元素。您需要为其声明 display: block。事实上,声明为其他值也是可以的,只要符合这里的定义即可。
在您提供的例子中,有两种做法可以实现题目所描述的“错误结果”。
方法一:为 swipertd-item 组件编写以下样式:
:host { display: block; transform-style: preserve-3d; }
方法二:为 swiperd-item 组件声明 virtualHost 选项,阻止生成多余的 swipertd-item 元素:
Component({ options: { virtualHost: true // 开启 virtualHost 后,将不再生成同名的元素 }, // ...其他组件定义 }
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
您好,正常情况下只应该显示一个面。iOS 和开发者工具的表现反而是错误的,这是由于当前版本 Safari 和开发者工具使用的 Chromium 并未正确实现标准中的 CSS Transforms。
首先,transform-style 是一个不可继承的 CSS 属性,您需要为这颗组件树中的每一个非叶子节点显式声明该属性。
其次,transfrom 应且只应作用于可变换元素(transfromable element)。您使用引入的 swipertd-item 组件时,小程序组件框架会在页面上创建同名的 swipertd-item 元素(相关文档)。它的 display 属性默认是 inline,不是一个可变换元素。您需要为其声明 display: block。事实上,声明为其他值也是可以的,只要符合这里的定义即可。
在您提供的例子中,有两种做法可以实现题目所描述的“错误结果”。
方法一:为 swipertd-item 组件编写以下样式:
:host { display: block; transform-style: preserve-3d; }
方法二:为 swiperd-item 组件声明 virtualHost 选项,阻止生成多余的 swipertd-item 元素:
Component({ options: { virtualHost: true // 开启 virtualHost 后,将不再生成同名的元素 }, // ...其他组件定义 }