【react native】css踩坑记录

1、IOS上面opacity重叠失效

在 iOS 上,当两个具有相同背景色的元素重叠时,不透明度(opacity)较低的元素会显示在较高的元素上方。

所以考虑使用rgba的形式。

javascript 复制代码
// 对于下面这种写法,如果存在container和activeIndicator重叠,则始终会展示container的颜色
const styles = StyleSheet.create({
  container: {
    height: 6,
    // 在 iOS 上,当两个具有相同背景色的元素重叠时,
    // 不透明度(opacity)较低的元素会显示在较高的元素上方。
    // 所以需要改用 rgba 的形式
    backgroundColor: '#ffffff',
    opacity: 0.51,
    flex: 1,
    borderRadius: 8,
    marginHorizontal: 3,
    overflow: 'hidden',
  },
  activeIndicator: {
    flex: 1,
    backgroundColor: '#ffffff',
  },
});

// 修改后
const styles = StyleSheet.create({
  container: {
    height: 6,
    backgroundColor: 'rgba(255, 255, 255, 0.51)', // here
    flex: 1,
    borderRadius: 8,
    marginHorizontal: 3,
    overflow: 'hidden',
  },
  activeIndicator: {
    flex: 1,
    backgroundColor: 'rgba(255, 255, 255, 1)', // here
  },
});

2、Image使用,图片不能撑满整个容器

image#resizemode

例如,对于下面这段代码可能存在这样的情况,图片不能撑满整个容器,上下会存在空隙。

javascript 复制代码
<View style={styles.bgContainer}>
  <Image
    source={{ uri: image }}
    resizeMode='contain' // 更新为 'cover'
    style={styles.bg}
  />
</View>

bgContainer: {
  position: 'absolute',
  top: 0,
  bottom: 0,
  left: 0,
  right: 0,
  // backgroundColor: 'yellow',
},
bg: {
  width: WINDOW_WIDTH,
  height: WINDOW_HEIGHT,
  // backgroundColor: 'blue',
},

将 resizeMode 属性设置为 'contain',这会导致图片按照原始比例进行缩放,以适应容器的尺寸。如果图片的宽高比与容器的宽高比不匹配,那么图片可能无法填满整个容器。

如果希望图片填满整个容器,可以尝试将 resizeMode 属性设置为 'cover',这样图片会被拉伸或压缩以填满容器。

相关推荐
代码煮茶9 小时前
CSS 单位完全指南:px、em、rem、vw、vh、clamp 详解
前端·css
前端若水11 小时前
自定义消息组件:图片、文件附件与图表
前端·人工智能·react.js·typescript
放下华子我只抽RuiKe511 小时前
React 从入门到生产(七):性能优化实战
前端·javascript·人工智能·react.js·性能优化·前端框架·github
李燚12 小时前
ReAct 循环的 50 行 Go 实现,逐行拆解
javascript·人工智能·react.js·golang·aigc·agent
ZC跨境爬虫12 小时前
跟着 MDN 学CSS day_8:(盒模型完全解)
前端·javascript·css·ui·交互
光影少年12 小时前
react自定义Hook 写法、规则(只能在组件/自定义Hook内调用)
前端·react.js·掘金·金石计划
ZC跨境爬虫13 小时前
跟着 MDN 学CSS day_6:(伪类和伪元素详解)
前端·javascript·css·数据库·ui·html
暗不需求13 小时前
玩转 React Hooks:从基础到实战,逐行解析带你彻底掌握
前端·react.js·面试
一颗小青松13 小时前
css 文字区域根据图片形状显示,根据文字设置背景图
前端·css
放下华子我只抽RuiKe513 小时前
React 从入门到生产(六):路由与导航
前端·人工智能·深度学习·react.js·前端框架·html·claude code