javascript - React och Flex-layout hur man använder dem


Jag försöker använda React och flexbox. Normalt kan jag använda flexbox i React Native, men jag kunde inte uppnå det i React.js

detta är min Css-fil

.wrapper, html, body {
    height:100%;
    margin:0;
    position:absolute;
}
.wrapper {
    display: flex;
    flex-direction: column;
}
.nav {
    background-color: red;
    flex:1
}
.main {
    background-color: blue;
    flex:1
}

Det här är min js-fil

import React, { Component } from 'react';
import './background.css';
import { Icon } from 'semantic-ui-react'
import Navbar from './navbar'

class Back extends Component {



  render() {
    return (
      <div className="wrapper">
          <div className="nav"></div>
          <div className="main"></div>
       </div>
    );
  }
}

export default Back;

Jag fick bara en vit skärm, vad kan vara problemet?

Tack

Svar #1

Eftersom wrapper är placerad absolut och inte har något innehåll att växa med, kollapsar dess bredd till 0.

Så ta helt enkelt bort position: absolute från .wrapper, html, body-regeln.

Om du fortfarande vill använda position: absolute behöver du också ge omslaget en bredd.

.wrapper,
html,
body {
  height: 100%;
  margin: 0;
}

.wrapper {
  display: flex;
  flex-direction: column;
}

.nav {
  background-color: red;
  flex: 1
}

.main {
  background-color: blue;
  flex: 1
}
<div class="wrapper">
  <div class="nav"></div>
  <div class="main"></div>
</div>

Svar #2

Du kan också använda float:left i wrapper-klassen.