将两个 div 与 CSS 和 React 并排排列
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/39702130/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Line two divs side by side with CSS and React
提问by Naomi
As the image shows, I have two components that I want to be side by side and lined up:
I am using React and the component with Negotiation
, frontend
, and food
has elements passed from another component.
我正在使用 React 和带有Negotiation
,的组件frontend
,并且food
具有从另一个组件传递的元素。
How do I style this so each element (Negotiation
, Frontend
and food
) are separated from each other but still in the same column with news lined up next to it?
我如何设置样式以使每个元素 ( Negotiation
,Frontend
和food
) 彼此分开,但仍位于同一列中,旁边排列着新闻?
My JavaScript:
我的 JavaScript:
class Course extends React.Component {
render() {
return (
<div>
<div className="coursecontent">
<h3>{this.props.coursename}</h3>
<h4> {this.props.status} {this.props.progress}</h4>
</div>
<button className="coursecontent">Start exercise</button>
</div>
);
}
}
class Welcomebox extends React.Component {
render() {
return <h1>Welcome Naomi</h1>;
}
}
ReactDOM.render(<Welcomebox />, document.getElementById('welcomebox'));
class Coursebox extends React.Component {
render() {
return (
<div className="box-field">
<Course coursename="Negotiation" progress= "20%" status="Progress"/>
<Course coursename="Frontend" progress="56%" status="Progress"/>
<Course coursename="Food" status="Progress" progress="43%"/>
</div>
);
}
}
class Newsbox extends React.Component {
render() {
return (
<div className="box-field" className="newsbox">
<h3>News</h3>
</div>
);
}
}
class Dashboardbox extends React.Component {
render() {
return (
<div className="dashboardbox">
<Coursebox />
<Newsbox />
</div>
);
}
}
ReactDOM.render(<Dashboardbox />, document.getElementById('dashboardbox'));
My CSS:
我的CSS:
.box-field,
.newsbox {
width: 45%;
background-color: lightgrey;
font-family: arial;
margin-left: 30px;
height: 80%;
padding: 5px 10px 10px 10px;
border-radius: 10px;
display: inline-block;
}
So basically, in between each Course
element I would want space (preferably set with Margin
), and I want the Newsbox
component to line up with the Coursebox
component.
所以基本上,在每个Course
元素之间我想要空间(最好用 设置Margin
),并且我希望Newsbox
组件与Coursebox
组件对齐。
回答by Aatif Bandey
Solution to bring new Newsbox
component next to Coursebox
将新Newsbox
组件放在旁边的解决方案Coursebox
import Coursebox from './Coursebox';
import Newsbox from './Newsbox'
class ContainerRow extends React.Component {
render(){
return (
<div className='rowC'>
<Coursebox />
<Newsbox />
</div>
);
}
}
CSS
CSS
.rowC{display:flex; flex-direction:row;}
回答by Enes Tufekci
If you want style difference between Course components you can pass a className using props when you call the component. Or if you are using bootstrap you can just pass "well" or "panel" class.
如果您想要 Course 组件之间的样式差异,您可以在调用组件时使用 props 传递 className。或者,如果您使用引导程序,您可以只通过“well”或“panel”类。
For example;
例如;
class Course extends React.Component {
render() {
return (
<div class="panel panel-default">
<div class="panel-heading">{this.props.coursename}</div>
<div class="panel-body">
<h4> {this.props.status} {this.props.progress}</h4>
<button className="coursecontent">Start exercise</button>
</div>
</div>
</div>
);
}
}
回答by Nalan Madheswaran
Here you go.
干得好。
const ParentDiv = styled.div`
& {
width: 100%;
}
`;
const ChildDiv = styled.div`
& {
display: inline-block;
vertical-align: text-top;
margin: 0 auto;
}
`;