#javascript #reactjs #image #text
Вопрос:
Я пытаюсь наложить текст на изображение и тоже не могу понять, как это сделать. Это может быть простой вопрос, поэтому, если вы сможете более подробно рассказать о том, как это делается, я был бы вам очень признателен.
import React from "react";
import { Typography } from "@material-ui/core";
import topImg from "/Users/rayhewitt/Desktop/react-portfolio/src/imgs/topImg.jpeg";
import useStyles from "./HeadStyles";
const Head = () => {
const classes = useStyles();
return (
<div className={classes.top}>
<img className={classes.image} src={topImg} alt="codingPic" />
<Typography className={classes.intro} align="center">
Hey, im Ray Hewitt a UI/UX frontend developer
</Typography>
</div>
);
};
export default Head;
import { makeStyles } from "@material-ui/core";
export default makeStyles({
top: {
backgroundColor: "rgba(8,89,145,255)",
height: "5000px",
},
image: {
paddingTop: "48px",
width: "100%",
zIndex: "100",
},
intro: {
justifyContent: "center",
position: "absolute",
zIndex: "101",
},
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>
Ответ №1:
Быстро взглянув на свой код, кажется, что вы почти на месте. Я думаю, что единственное, чего не хватает, — это position: relative
ваш родительский контейнер и позиция в тексте.
.top {
position: relative;
}
.text {
position: absolute;
top: 0; // or left/right/bottom
}
Этого должно хватить.
Здесь важно понять, что если у вас position: absolute
есть элемент, то он будет придерживаться любого родителя по всему дереву position: relative
или будет придерживаться тела, если его нет. Пометив родительский контейнер так position: relative
, чтобы текст прилипал к этому родителю, затем вы можете управлять позиционированием сверху/снизу/слева/справа.
Примечание, я не уверен, что имеет смысл использовать justify-content
, если текст не display: flex
таков .
Комментарии:
1. Спасибо, это было очень проницательно. Я действительно думал, что был близок к этому. и содержание оправдания было просто попыткой, которую я удалил сразу после публикации этого вопроса. Отличное объяснение