css - React Native flexbox 行对齐元素

标签 css react-native flexbox

如何在不使用静态宽度的情况下获得这样的布局?

Layout

“•”前的文字应左对齐,“•”后的文字应全部内联。为了让它看起来像我使用了静态宽度,但出于显而易见的原因,这并不是很好。

这是 React Native 代码:

const styles = StyleSheet.create({
  container: {
    flex: 1,
    flexDirection: 'row',
    margin: 2,
    borderColor: 'green',
    borderStyle: 'solid',
    borderWidth: 2,
  },
});

const RoleRow = ({ role }) => (
  <View style={styles.container}>
    <Text style={{ width: 55 }}>
      {role.name}
    </Text>
    <Text style={{ marginLeft: 5 }}>
      {` • ${role.person.name} ${role.person.lastName}`}
    </Text>
  </View>
);

最佳答案

这可能会有所帮助。这可能有点奇怪,但您必须将每个元素视为一列而不是一行,但这里是 codepen

HTML

 <div class="cont">
      <div class="role-col">
        <div class="role">Small Role</div>
      </div>
      <div class="name-col">
        <div class="name">Small Name</div>
      </div>
    </div>

SCSS

.cont{
  width:400px;
  height:400px;
  background-color:green;
  display:flex;
  flex-direction:row;

  .role-col,.name-col{
    .role,.name{
      border-top:1px solid black;
      border-bottom:1px solid black;
      margin-top:8px;
    }
  }

  .role-col{
    display:flex;
    flex-direction:column;
    background-color:red;

    .role{
      border-left:1px solid black;
      margin-left:8px;
      padding-right:4px;
    }
  }

  .name-col{
    display:flex;
    flex:1;
    flex-direction:column;

    .name{
      border-right:1px solid black;
      margin-right:8px;
      padding-left:4px;
    }
  }
}

这样做的目的是在 Angular 色和名称的每一列中必须有一个元素。因此,如果您有一个没有 Angular 色的名称或没有名称的 Angular 色,您将必须在列中添加一个空元素,以便 css 可以正确调整它们的大小。如果您有任何问题,请告诉我

关于css - React Native flexbox 行对齐元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51894944/

相关文章:

html - 如何在整个站点范围内右对齐特定表格列?

css - 在 Firefox 的零高度元素中隐藏伪类内容

react-native - 保存更改后,为什么博览会没有刷新?

html - 在 css 水平条形图之前和之后放置文本

javascript - 将 Canvas 大小调整为其父元素 ion-grid

html - 水平可滚动容器内的 flexbox 宽度

html - 如何制作 Logo 背景填充标题?

jquery - 如何使用 jquery 水平移动全尺寸图像 slider

reactjs - 我应该如何在字典中使用 jsx

react-native-ffmpeg 无法识别的选项 'preset'