React Native 的 flexbox 中是不是存在与 box-sizing:border-box 等价的东西?

Posted

技术标签:

【中文标题】React Native 的 flexbox 中是不是存在与 box-sizing:border-box 等价的东西?【英文标题】:Does it exist an equivalent of box-sizing: border-box in flexbox for React Native?React Native 的 flexbox 中是否存在与 box-sizing:border-box 等价的东西? 【发布时间】:2016-11-25 00:00:08 【问题描述】:

我希望我的盒子的大小不会被边距和内边距改变。

【问题讨论】:

嗯...我所看到的默认情况下可以使用 box-sizing。参见示例:rnplay.org/apps/GF43cw 【参考方案1】:

react native 没有选项

 boxSixing: "border-box"

你可以在你的造型中做的是这个

<View style= 
    flex: 1,
    alignContent: "center",
    justifyContent: "center",
>
    <View style= 
        flex: 1,
        width: "95%" // or width of the box - intended margin
    >
        ***chi;dren goes here***
    <View/>
<View/>

进入该视图的任何组件都将位于中心,边距为 5% 或指定什么,这暂时解决了问题,直到 react-native 提供更好的解决方案

【讨论】:

【参考方案2】:

正如另一个答案中提到的,在 React Native 中,一切都被视为好像设置了box-sizing: border-box。 模拟 css content-box 的一种解决方法是将您的组件包装在容器 View 中,并将您的边框和填充添加到该 View

【讨论】:

【参考方案3】:

令 O (for outer) = (top, left, bottom, right) 为代表大小的矩形 * 和视图的位置 V. 由于所有 React Native 视图的 box-sizing 都是border-box,因此任何 * V 的边框将呈现在 O 内部。

【讨论】:

【参考方案4】:

React Native 为所有视图设置样式,就像设置了 box-sizing: border-box 一样。见此代码:https://github.com/facebook/react-native/blob/5aa1fb3ff326a429e33a443576da866f2a63c20c/Reactandroid/src/main/java/com/facebook/react/views/view/ReactViewBackgroundDrawable.java#L632

【讨论】:

虽然,这表现得很奇怪,就像width: "100%", height: "100%"absolute 孩子会出现在padding 值之后【参考方案5】:

你可以使用 resizeMode: 'cover' or 'stretch' or 'contain'

【讨论】:

不同的选项有什么作用? cover、vs、stretch、vs contains 有什么作用?您是否有指向文档的链接以显示这些选项的含义? 那不只是图片吗?

以上是关于React Native 的 flexbox 中是不是存在与 box-sizing:border-box 等价的东西?的主要内容,如果未能解决你的问题,请参考以下文章

React Native开发之FlexBox代码+图解

React-native - 带有 flexbox 的 Pinterest 风格

React Native FlexBox布局

react-native中带有/ flexbox的全宽按钮

React Native入门 认识Flexbox布局

React Native FlexBox布局