希望在 React 中将文本放在图像上

virochaan RG

我在反应中有一个 Splideslide 元素,并希望将描述文本移动到每个元素的图像上。目前我拥有的代码是:

import {useEffect, useState} from "react";
import styled from "styled-components";
import {Splide, SplideSlide} from "@splidejs/react-splide";
import "@splidejs/splide/dist/css/splide.min.css";

function Popular() {
    const [popular, setPopular] = useState([]);


    useEffect(() => {
        getPopular();
    }, []);
    
    const getPopular = async() => {
      const api = await fetch(`https://api.spoonacular.com/recipes/random?apiKey=${process.env.REACT_APP_API_KEY}&number=9`);
      const data = await api.json();
      console.log(data);
      setPopular(data.recipes)
      console.log(data.recipes)
      
    }

    return (
      <div>
        <Wrapper>
          <h3>Popular Picks</h3>
          <Splide options = {{
            perPage:4,
            arrows: false,
            pagination: false,
            drag: 'free',
            gap: "4rem",
          }}>
            {popular.map((recipe) =>{
              return (
                <SplideSlide>
                  <Card>
                    <Gradient/>
                    <p>{recipe.title}</p>
                    <img src={recipe.image} alt={recipe.title}/>
                    
                  </Card>
                </SplideSlide> 
              );
            })}
          </Splide>
        </Wrapper>  
      </div>
    )
}

const Wrapper = styled.div`
  margin: 4rem 0rem;
  postion: absolute;
`;

const Card = styled.div`
  min-height: 25rem;
  overflow: hidden;
  postion: relative;
  img {
    border-radius: 2rem;
    postion: absolute;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  p {
    position: absolute;
    z-index: 10;
    left: 50%;
    bottom: 0%;
    transform: translate(-50%, 0%);
    color: black;
    width: 100%;
    text-align: center;
    font-weight: 600;
    font-size: 1rem;
    height: 40%;
    display: flex;
    justify-content: center;
    align-items: center;
  }
`;

const Gradient = styled.div`
  z-index: 3
  postion: absolute;
  width: 100%;
  height: 100%;
  background: linear-gradient(rgba(0,0,0,0), rgba(0,0,0,0.5))
`;
export default Popular

从理论上讲,我相信这应该能够移动图像上的文本,但由于某种原因它没有按预期工作。完整的项目可以在这里的存储库中看到:REPO请随时发表评论以获取更多信息或任何澄清。

dbuchet

也许是因为你的多重

postion: absolute;

代替

position: absolute;

;)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在React Native中将文字放在图片上?

我希望这个<p>标记位于图像底部吗?

我希望我的文本区域具有固定的宽度

matplotlib图像以黑白显示,但我希望使用灰色

我希望文本具有与边框相同的动画背景

希望$ {workspaceFolder}在Windows上发出正斜杠吗?

希望删除CTE上的难看的自我加入

我应该在React项目中将图像文件放在哪里?

我如何在React Native中将一个图像放在另一个图像上

在Bootstrap 3的多项目轮播中将文本放在图像上

我希望图像根据选择的位置而改变

从url获取图像并希望根据自己的分类模型预测图像

我如何在React中将内容放在画布上

希望在输入数据时文本框为空

React Native在SVG图像上放置文本

我希望文本显示在图标图像旁边,而不是显示在图标图像下方

希望使用jQuery插件将图像形状动画化为梯形

希望图像和文本在部分上的鼠标悬停时发生变化

希望将JDK放在Macbook上的一个位置

我希望左浮动div调整移动设备上的宽度

jQuery 验证插件希望消息在文本框下对齐

希望 ListView 打开多个不同的图像

Reac Native + React Navigation - 我希望屏幕在 TabNavigator 上不可见

Div 里面有图像和文本元素,我希望文本绝对居中在图像的中心

希望将滑块中的图像垂直对齐到中间

在 React.js 中将图像切换为文本 onClick

React - 希望简单的链接格式

在 React 中将 div 覆盖在图像上

我希望底部容器与中心的图像和文本共存并颤动