【发布时间】:2017-01-05 18:51:58
【问题描述】:
我发现 here 的 flex 布局有问题。它来自this guy。问题是页脚与页面一起向下滚动,而不是停留在内容的底部或在没有足够内容的情况下停留在页面的底部。我的意思是
代码用于 React 组件,但很容易理解。
非常感谢任何帮助。
//// All styles are in Layout component.
/////////// LAYOUT START ////////////////
class Layout extends React.Component {
constructor() {
super();
}
render() {
// STYLES START HERE
const styleLayout = {
siteWrapper: {
display: 'flex',
flexDirection: "column",
height: '100vh'
},
site: {
display: 'flex',
flexGrow: '1',
background: 'pink'
},
siteContent: {
flexGrow: '1',
paddingTop: '80px',
background: 'lightgreen',
},
rightColumn : {
width: '200px',
paddingTop: '80px',
background: 'lightblue'
},
leftColumn : {
order: '-1',
width: '200px',
paddingTop: '80px',
background: 'honeydew'
}
}
return (
<div style={styleLayout.siteWrapper}>
<Header />
<div style={styleLayout.site}>
<div style={styleLayout.siteContent}>
dummy content dummy content dummy content dummy content dummy content
dummy content dummy content dummy content dummy content dummy content
dummy content dummy content dummy content dummy content dummy content
dummy content dummy content dummy content dummy content dummy content
dummy content dummy content dummy content dummy content dummy content
dummy content dummy content dummy content dummy content dummy content
dummy content dummy content dummy content dummy content dummy content
dummy content dummy content dummy content dummy content dummy content
dummy content dummy content dummy content dummy content dummy content
dummy content dummy content dummy content dummy content dummy content
dummy content dummy content dummy content dummy content dummy content
dummy content dummy content dummy content dummy content dummy content
dummy content dummy content dummy content dummy content dummy content
dummy content dummy content dummy content dummy content dummy content
dummy content dummy content dummy content dummy content dummy content
dummy content dummy content dummy content dummy content dummy content
dummy content dummy content dummy content dummy content dummy content
dummy content dummy content dummy content dummy content dummy content
dummy content dummy content dummy content dummy content dummy content
dummy content dummy content dummy content dummy content dummy content
dummy content dummy content dummy content dummy content dummy content
</div>
<div style={styleLayout.leftColumn}>
<LeftColumn />
</div>
<div style={styleLayout.rightColumn}>
<RightColumn />
</div>
</div>
<Footer />
</div>
);
}
}
//////////// COMPONENTS START
class RightColumn extends React.Component {
render() {
return (
<div >Right Column</div>
);
}
}
class LeftColumn extends React.Component {
render() {
return (
<div >Left dsargsrtdgfeadcsfdsColumn</div>
);
}
}
class Header extends React.Component {
constructor(props) {
super(props)
}
render() {
const styleHeader = {
background: 'olivedrab'
}
return (
<div style={styleHeader}>
<h2> Header</h2>
</div>
);
}
}
class Footer extends React.Component {
render() {
const styleFooter = {
backgroundColor: 'grey',
height: '100px',
}
return (
<footer style={styleFooter}>footer</footer>
);
}
}
/////////// COMPONENTS END ////////////////
ReactDOM.render(
<Layout />
,document.getElementById('app')
);
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>
<div id='app'></div>
【问题讨论】:
标签: javascript css reactjs layout flexbox