使用 Flex 麻烦定位多个 Div
Positioning multiple Divs with Flex trouble
一段时间以来我一直在努力解决这个问题,但一直没有成功。我正在尝试这样做:
我很难将 img 和文字放在一起。我正在使用 Position: Absolute 和 Position: Relative 但我似乎无法弄清楚我做错了什么。请帮帮我。这是它的样子:
这是我的代码。请让我知道我做错了什么! (我设置边框只是为了查看所有 containers/divs 的起始位置。这是为了组织目的,我会在修复此问题后删除它们。)(我也在使用内联样式)
...
<div style={{
padding: "40px",
width: "100vw",
zIndex: "2"
}}>
<div
className="container"
style={{
top: "50%",
zIndex: "1",
}}
>
<div className="row" style={{
display: "flex",
position: "relative",
border: "green 5px solid"
}}>
<div className="col-sm-8">
<img
src="/Images/Img.JPG"
style={{
width: "100%",
position: "absolute",
zIndex: "1"
}}
/>
<img
src={OrangeBigSquare}
style={{
width: "100%",
position: "absolute",
zIndex: "0",
}}
/>
</div>
<div
className="col-sm-4"
style={{
alignItems: "center",
display: "flex",
position: "absolute",
zIndex: "10",
border: "blue 1px solid"
}}
>
<h1>Hi, i'm Shane and sometimes I do things.</h1>
</div>
</div>
</div>
</div>
我认为 flex 不是一个好的选择。既然你要自定义位置,那么改变元素的display
没有意义。
这是一个实现您想要的结果的示例
body{
margin:0;
background-color:grey;
}
img{
z-index:1;
width:50vw;
height:50vh;
position:absolute;
top:15%;
left:2%;
}
h1{
position:absolute;
left:55vw;
width:35vw;
top:20vh;
z-index:2;
line-height:1.5em;
font-size: calc(5vw );
text-decoration: underline;
text-decoration-color: blue;
}
<img src='https://images.pexels.com/photos/414102/pexels-photo-414102.jpeg?auto=compress&cs=tinysrgb&dpr=1&w=500'>
<h1>Hi, i'm Shane and sometimes I do things.</h1>
好的,在这里用 flex 做了一些非常快速的事情,但我想你可以理解这个想法:
https://codesandbox.io/s/xenodochial-night-pr5p3i?file=/src/App.js
编辑:
改进版本:
https://codesandbox.io/s/unruffled-browser-05lk97?file=/src/App.js
一段时间以来我一直在努力解决这个问题,但一直没有成功。我正在尝试这样做:
我很难将 img 和文字放在一起。我正在使用 Position: Absolute 和 Position: Relative 但我似乎无法弄清楚我做错了什么。请帮帮我。这是它的样子:
这是我的代码。请让我知道我做错了什么! (我设置边框只是为了查看所有 containers/divs 的起始位置。这是为了组织目的,我会在修复此问题后删除它们。)(我也在使用内联样式)
...
<div style={{
padding: "40px",
width: "100vw",
zIndex: "2"
}}>
<div
className="container"
style={{
top: "50%",
zIndex: "1",
}}
>
<div className="row" style={{
display: "flex",
position: "relative",
border: "green 5px solid"
}}>
<div className="col-sm-8">
<img
src="/Images/Img.JPG"
style={{
width: "100%",
position: "absolute",
zIndex: "1"
}}
/>
<img
src={OrangeBigSquare}
style={{
width: "100%",
position: "absolute",
zIndex: "0",
}}
/>
</div>
<div
className="col-sm-4"
style={{
alignItems: "center",
display: "flex",
position: "absolute",
zIndex: "10",
border: "blue 1px solid"
}}
>
<h1>Hi, i'm Shane and sometimes I do things.</h1>
</div>
</div>
</div>
</div>
我认为 flex 不是一个好的选择。既然你要自定义位置,那么改变元素的display
没有意义。
这是一个实现您想要的结果的示例
body{
margin:0;
background-color:grey;
}
img{
z-index:1;
width:50vw;
height:50vh;
position:absolute;
top:15%;
left:2%;
}
h1{
position:absolute;
left:55vw;
width:35vw;
top:20vh;
z-index:2;
line-height:1.5em;
font-size: calc(5vw );
text-decoration: underline;
text-decoration-color: blue;
}
<img src='https://images.pexels.com/photos/414102/pexels-photo-414102.jpeg?auto=compress&cs=tinysrgb&dpr=1&w=500'>
<h1>Hi, i'm Shane and sometimes I do things.</h1>
好的,在这里用 flex 做了一些非常快速的事情,但我想你可以理解这个想法:
https://codesandbox.io/s/xenodochial-night-pr5p3i?file=/src/App.js
编辑:
改进版本:
https://codesandbox.io/s/unruffled-browser-05lk97?file=/src/App.js