【问题标题】:How do I get one component "below" another in React?如何在 React 中让一个组件“低于”另一个组件?
【发布时间】:2018-02-26 23:36:54
【问题描述】:

这是我的 React 代码。我有两个组件:BlackBox 和 SomeText。我希望 BlackBox 是全屏的, SomeText 在它下面。我会假设一行中的两个 div 会按顺序呈现(彼此相邻或彼此下方,但本示例中的 BlackBox 完全位于 SomeText 之上)。

class BlackBox extends React.Component {
    render() {
        return (<div id="blackbox"></div>);
    }
}

class SomeText extends React.Component {
    render() {
        return(<div id="sometext">Hello</div>);
    }
}

class App extends React.Component {
    render() {
        return(
            <div>
                <BlackBox/>
                <SomeText/>
            </div>
        );
    }
}

这里是使 BlackBox 全屏显示的 CSS 代码:

#blackbox {
    background-color: #00000;
    height: 100%;
    width: 100%;
    left: 0;
    top: 0;
    position: absolute;
}

为什么 BlackBox 会覆盖 SomeText?

【问题讨论】:

    标签: html reactjs css


    【解决方案1】:

    为什么 BlackBox 会覆盖 SomeText?

    因为它是绝对定位的。而且,据我所知,SomeText 不是。

    使#blackbox 位置相对。您很可能会遇到使其全高的问题。这很容易解决,但需要对页面上的其他 html 元素进行一些样式设置。看看这个例子:https://stackoverflow.com/a/4550198/7492660

    或者只是这样做:

    #block1{
      position: absolute;
      top: 0; left: 0; right: 0; bottom: 0;
      background: #000;
      z-index: 0;
    }
    
    #block2{
      position: absolute;
      left: 0; right: 0; bottom: 0;
      background: #ff4444;
      padding: 3px 8px;
      color: #fff;
      z-index: 1;
    }
    <div id="block1"></div>
    <div id="block2">Some Text</div>

    【讨论】:

    • 如何在 React 中更改 html 和 body 标签的属性?我可以做document.body.style.height来改变body标签,但是如何改变html标签的属性呢?
    • 像这样:document.getElementsByTagName('div').style.height = "100px";.
    • 但是当然这取决于你想要做什么。因为您可以为此使用 css 样式表,或者您可以使用其他库以及 React(例如 jQuery)。
    • 非常感谢!我实际上只是使用 CSS 来更改 组件呈现的“div”标签。无论如何,那个 div 标签的行为就像一个 或 标签,所以它确实成功了!谢谢!!
    • 太棒了!没问题!
    猜你喜欢
    • 2022-11-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-09
    • 2019-02-03
    • 2018-01-26
    • 2016-12-04
    • 2018-05-15
    • 2020-04-28
    相关资源
    最近更新 更多