首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我怎么才能把我的背景图片放在react的导航栏后面呢?

问我怎么才能把我的背景图片放在react的导航栏后面呢?
EN

Stack Overflow用户
提问于 2020-05-04 11:16:37
回答 2查看 2.7K关注 0票数 1

我正试着在react中的导航栏后面放一个背景图片。最终结果应该类似于:https://www.salient.com/。我曾尝试将导航栏背景设置为none和transparent,但两者都不起作用。我还试着将我的背景图片和导航栏放在一个div中,但它们仍然是分开的。

这是我的主App.js文件:

代码语言:javascript
复制
class App extends Component {
  render() {
    return (
      <React.Fragment>
        <Router>
          <NavigationBar />
          <Switch>
              <Route exact path="/" component={Home} />
              <Route path="/projects" component={Projects} />
              <Route path="/contact" component={Contact} />
          </Switch>
        </Router>
      </React.Fragment>
    );
  }
}

export default App;

这是我的Home.js (我使用App.js处理我想在所有页面上显示的内容,并对特定页面使用单独的文件,如Home.js或Project.js,这是非常新的反应,所以我对所有这些都很陌生):

代码语言:javascript
复制
class Home extends Component {
    render() {
        return (
            <div>
                (putting an image here puts the image under the nav bar, not as a background image)
            </div>
        );
    }
}

export default Home;

这是导航栏("NavigationBar"):

代码语言:javascript
复制
export const NavigationBar = () => (
    <Styles>
        <nav class="navbar navbar-light navbar-dark imageWrapper">
            <ul class="links">
                <li>
                    <a class="nav-link" href="/">Home</a>
                </li>
                <li>
                    <a class="nav-link" href="/projects">Projects</a>
                </li>
                <li>
                    <a class="nav-link" href="/contact">Contact</a>
                </li>
            </ul>
        </nav>
    </Styles>
)

目前,我的react应用程序看起来像this。

任何形式的帮助/建议都非常感谢!

EN

回答 2

Stack Overflow用户

发布于 2020-05-04 11:32:58

将这些样式用于您的图像及其包装的div标签。它应该使它位于顶部,您需要确保Image位于nav组件内部,以便相应地定位它。

代码语言:javascript
复制
<nav class="navbar navbar-light navbar-dark imageWrapper">
            <ul class="links">
                <li>
                    <a class="nav-link" href="/">Home</a>
                </li>
                <li>
                    <a class="nav-link" href="/projects">Projects</a>
                </li>
                <li>
                    <a class="nav-link" href="/contact">Contact</a>
                </li>
            </ul>
            <div className="img"></div>
        </nav>


nav.imageWrapper{
    position: relative
}

nav.imageWrapper div.img { position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 0;
    max-height: 70vh;
    background-size: cover;
background: url('../images/background.jpg');
z-index: -1
}

https://stackblitz.com/edit/react-kliqc3?file=index.js (检查此示例)

票数 0
EN

Stack Overflow用户

发布于 2020-05-06 02:24:38

本地图像导入在React中的工作方式略有不同,因为它的捆绑方式不同。此处的图像可能未正确加载。我建议将导入更改为如下所示:

代码语言:javascript
复制
nav.imageWrapper div.img { 
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 0;
  max-height: 70vh;
  background-size: cover;
  background-image: url('../images/background.jpg'); //replace background, wrap in URL reference
}

如果你直接导入图片也有问题,你可以在this discussion上阅读更多。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61584626

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档