I’m still a beginner in programming and I’m doing a project to improve knowledge.
I need to insert a div with text on top of an image, I’m trying to recreate the example of the image below:
Half of the div is an image and the other half is text. Can you tell me how I can do that?
Here’s my code I put into codesandbox
import React from "react";
import "./styles.css";
export default function App() {
return (
<div className="App">
<h1>Restaurant</h1>
<div
style={{
display: "flex",
flexDirection: "column",
justifyContent: "baseline",
alignItems: "baseline",
height: "200px",
width: "100%",
maxWidth: "300px"
}}
>
<div>
<img
style={{
width: "100%",
height: "100%"
}}
src="https://b.zmtcdn.com/data/collections/271e593eb19475efc39021c6e92603db_1454591396.jpg"
alt=""
className="img"
/>
</div>
<div className="divText">
<span
style={{
color: "#fff",
backgroundColor: "#000"
}}
>
Lorem Ipsum! Lorem Ipsum! Lorem Ipsum!
</span>
</div>
</div>
</div>
);
}Thank you in advance.
Advertisement
Answer
You have two solutions to set a background image :
use the background properties in CSS
.divText {
background-image:url("https://b.zmtcdn.com/data/collections/271e593eb19475efc39021c6e92603db_1454591396.jpg");
}
use positioning to make a custom layout
export default function App() {
return (
<div className="App">
<h1>Restaurant</h1>
<div
style={{
position: "relative",
height: "200px",
width: "300px"
}}
>
<img
style={{
width: "100%",
height: "100%"
}}
src="https://b.zmtcdn.com/data/collections/271e593eb19475efc39021c6e92603db_1454591396.jpg"
alt=""
className="img"
/>
<div className="divText"
style={{
position: "absolute",
bottom: 0,
height: "50%",
width: "100%",
color: "#fff",
backgroundColor: "#000",
opacity: 0.7
}}>
Lorem Ipsum! Lorem Ipsum! Lorem Ipsum!
</div>
</div>
</div>
);
}
