布局 flex, justifyContent,alignContent

如果父元素設置了flex=1, 則會使得它的子元素擴張以撐滿剩余的所有空間,并且子元素文字內容會顯示在剩余空間的最下方。

Flex例子

.....................
  <View style={styles.bottomBtnView}>
            <Text style={styles.bottomLeftBtnView}>
              忘記密碼?
            </Text>
            <Text>
              新用戶注冊
            </Text>
  </View>
CSS:
 bottomBtnView:{
    flex:1,
    flexDirection:'row',
    borderWidth:2,
    borderColor:'black',
  },
 bottomLeftBtnView:{
    borderWidth:2,
    borderColor:'red'
  }
效果如圖

增加height

.....................
  <View style={styles.bottomBtnView}>
            <Text style={styles.bottomLeftBtnView}>
              忘記密碼?
            </Text>
            <Text>
              新用戶注冊
            </Text>
  </View>
CSS:
 bottomBtnView:{
 //  height:20,
    flex:1,
   height:50,
    flexDirection:'row',
    borderWidth:2,
    borderColor:'blue',
  },
 bottomLeftBtnView:{
    borderWidth:2,
    borderColor:'red'
  }
效果圖

發(fā)現一個問題,設置了height,但是好像并沒有起作用,原因就是因為,一旦設置了flex,它的權重最高,就覆蓋了height,而依然會撐滿顯示剩余空間。

去掉flex,保留height

代碼同上,不同之處就是CSS部分:去掉flex,保留height


效果圖
.....................
  <View style={styles.bottomBtnView}>
            <Text style={styles.bottomLeftBtnView}>
              忘記密碼?
            </Text>
            <Text>
              新用戶注冊
            </Text>
  </View>
CSS:
 bottomBtnView:{
 //  height:20,
    flex:1,
   height:50,
    flexDirection:'row',
    borderWidth:2,
    borderColor:'blue',
    justifyContent:'flex-end'
  },
 bottomLeftBtnView:{
    borderWidth:2,
    borderColor:'red'
  }

效果圖

justifyContent的作用就是決定設置了該屬性的組件內包含的子元素的布局方向軸,即其是按照父元素設置的flexDirection 屬性的值來決定自己應該按照那個方向軸排列,如果flexDirection=row, 則其所有的子元素按照行排列布局,即其所有的子元素都在同一行)
具體自行官網
如上效果圖就是所有的子元素就是按照同一行排列,并且是靠近方向軸的末尾端。

如果想要元素垂直居中,則需要設置alignContent屬性

給CSS部分:

  bottomBtnView:{
    height:50,
    flexDirection:'row',
    borderWidth:2,
    borderColor:'blue',
    justifyContent:'center',
    alignItems :'center'
  },
  bottomLeftBtnView:{
    borderWidth:2,
    borderColor:'red'
  }
效果圖

則alignContent是讓其所有的子元素在沿著與主軸垂直的軸方向排列(也叫次軸),即此時所有的子元素應該靠近次軸中心的位置,也就是垂直居中了!

?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標簽默認的外補...
    _Yfling閱讀 14,152評論 1 92
  • 移動開發(fā)基本知識點 一.使用rem作為單位 html { font-size: 100px; } @media(m...
    橫沖直撞666閱讀 3,725評論 0 6
  • H5移動端知識點總結 閱讀目錄 移動開發(fā)基本知識點 calc基本用法 box-sizing的理解及使用 理解dis...
    Mx勇閱讀 4,829評論 0 26
  • 前言 溫馨提示:本文較長,圖片較多,本來是想寫一篇 CSS 布局方式的,但是奈何 CSS 布局方式種類太多并且實現...
    sunshine小小倩閱讀 3,266評論 0 59
  • Android官方源碼中對Canvas的描述是:“Canvas類容納所有和Draw(繪制)相關方法。為了去Draw...
    RazorZ閱讀 3,879評論 0 33

友情鏈接更多精彩內容