使用 ReactJS 和 React Router 去新路由时如何更改浏览器的背景颜色?请参阅下面的编辑,了解我在此过程中发现的想法:
我可以<div>
在每个页面视图中使用它,但我需要它在完整背景上工作,以便完整浏览器窗口显示背景。
我在玩 jQuery,但想知道这是否是解决这个问题的正确方法?我也在尝试使用React.DOM.body
,但没有得到它的工作:
render: function() {
return (
<div>
React.DOM.body( {style: background-color: "green"} )
<MyHeader />
<this.props.activeRouteHandler/>
</div>
);
}
编辑1:
我得到了这个工作,但是......意味着我必须为我想要有不同背景的每个页面复制这个CSS类。要使用只需将每个返回包装<div className="my-signup-bkg">
:
.my-signup-bkg {
/*To support older browsers*/
height: 100%;
width: 100%;
/* Set the height to match that of the viewport. */
height: 100vh;
/* Set the width to match that of the viewport. */
width: 100vw;
background-image: url("../images/mod-yellow-bkg.jpg");
background-repeat: no-repeat;
background-size: 100%;
}
编辑 2: 这是另一种方式,我更喜欢这种方式,它需要更少的 CSS 行并且在 ReactJS 组件中更明确。我在 DIV 上设置了这个 CSS:
.my-page-text {
/*height: inherit;*/
padding: 8% 5% 5% 3%;
/*top: 55px;*/
/*To support older browsers*/
height: 100%;
width: 100%;
/* Set the height to match that of the viewport. */
height: 100vh;
/* Set the width to match that of the viewport. */
width: 100vw;
background-repeat: no-repeat;
background-size: 100%;
}
并在我的 ReactJS 组件中使用它:
var MyLoginView = React.createClass({
render: function() {
var style = { backgroundImage: 'url("static/images/mod-yellow-bkg.jpg")' };
return (
<div className="my-page-text" style={style}>
Do something.
</div>
);
}
});