【问题标题】:React.Js Background Image properly displayed with words over the topReact.Js 背景图像正确显示,顶部有文字
【发布时间】:2017-11-19 22:48:11
【问题描述】:

我基本上是想复制这个网站作为自学 React 的课程。

http://www.milkbardigital.com.au/#home

有人可以帮我使用图片作为背景并将文本放在上面,还有,如何让它在页面上显示在相同的高度上?

这是我当前的代码

import React from 'react';
import {Image} from 'react-bootstrap';

export default React.createClass ( {
    render() {
        var background = {backgroundSize : 'cover'};
        return (
            <div style={{width: 'auto'}}>
                <Image style = {background} responsive src = "http://www.milkbardigital.com.au/wp-content/uploads/2015/11/Milkbar-Home-Background.jpg">
                    This is a test
                </Image>
            </div>
        );
    }
});

非常感谢您的帮助!

【问题讨论】:

  • 可以发一下Image组件的代码吗?

标签: javascript css reactjs react-bootstrap singlepage


【解决方案1】:

您面临的问题是 Image 组件是一个 void 元素标签,不能接收子元素或危险的 SetInnerHTML 函数。

您将需要在 Image 组件之外使用 CSS 和文本(或 div)元素,如下所示:

var App = React.createClass ( {
    render() {
        var background = {backgroundSize : 'cover'};
        var textStyle = {
          position: 'absolute', 
          top: '50%', 
          left: '50%'
        };

        return (
            <div style={{width: 'auto'}}>
                <Image 
                  style={background} responsive 
                  src="http://www.milkbardigital.com.au/wp-content/uploads/2015/11/Milkbar-Home-Background.jpg">
                </Image>
                <h1 style={textStyle}>Text over image</h1>
            </div>
        );
    }
});

这是一个示例演示:https://codesandbox.io/s/w1W8v3y8

希望对你有帮助!

【讨论】:

  • 会尝试使用这个,非常感谢@Inacio
  • 什么是空元素标签?
  • 无效元素标签是里面不能有任何内容的标签。以下是完整列表:w3.org/TR/html51/syntax.html#void-elements
  • 谢谢!感谢帮助 - 想知道为什么它不起作用!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多