样式写法
stylesheet.create
style={{属性: '属性值'}}
styles.obj
const styles = { bodyBefore: { position: 'absolute', backgroundColor: '#F8F8F8', }, };
<BodyBefore style={[styles.bodyBefore, this.props.style]}></BodyBefore>
两者的区别,官方文档中也有说明,stylesheet.create 主要从性能上考虑:
后者这种自定义样式的方式,传入过来的 style 必须是一个纯对象,如果传入的是通过 stylesheet.create 创建的样式则会报错。建议使用 stylesheet.create
创建样式对象
css支持属性
- 支持flex布局,absolute布局;
- 单位不支持百分比;
- 不具有继承性;
- 文本样式只对text标签生效;
- 不能直接修改style,需动态增减属性;
- 不支持媒体查询;
- 无inline-block属性需用标签包裹实现行内元素的效果;( )
- ios 端 0.5像素细线问题 需PixelRatio.get()解决 ; { borderWidth: 1 / PixelRatio.get(), }
- 不可使用伪类。
全方位适配;
1).响应式 ( 首先获取设备的尺寸,以设计稿为标准参照,这里以100为缩放基数利于换算,开发者只需要将设计稿里的数值传入到方法里就行了。)
2).边界 (等比缩放宽度没有限制,当是Pad屏幕或折叠屏尺寸时则让组件按在iphone plus展现的尺寸来显示。)
3).横竖屏(1 通过window返回的宽高进行判断在页面中第一次初始化中,在IOS中,后续切换横竖屏window返回的宽高仍旧是初始值(安卓表现正常)2
通过的onLayout事件返回的宽高进行判断获取到onLayout事件返回值,用于初始化后监听页面横竖屏切换)
备注:也可借助 Hippy SDK 提供的 screenOrientationChanged
全局事件先获取手机当前处于竖屏还是横屏
4).刘海屏
- ios适配iphoneX
这里的适配主要是在竖屏下,顶部多留出调试为 44 的刘海高度,底部的安全区域在 Hippy 框架下一般不用关注,底部的工具栏,框架已经做了适配处理 。
3. 注意事项;
1,弹窗防止穿透
4.调试