使用媒体查询反应内联 BackgroundImage
React Inline BackgroundImage with Media Queries
我正在开发一个响应式的 React 应用程序。当视口缩小或增加时,'backgroundImage' 应该改变。我使用了内联样式,因为我无法使用 public 文件夹中图像的相对路径。
我在一个变量中创建了一个媒体查询来响应它们应该改变的宽度。
我已将样式放在 .hearder-flex 潜水元素中。
Header.js
const Header = () => {
const media = {
'@media (max-width: 650px)':{
backgroundImage: 'url("starter-code/assets/mobile/bg-pattern-header.svg")' ,
},
'@media (min-width: 750px)':{
backgroundImage: 'url("starter-code/assets/tablet/bg-pattern-header.svg")' ,
}
}
return (
<div className="header-wrapper">
<main className="header-flex" style={media}>
<img src="starter-code/assets/desktop/logo.svg" alt="logo" className="logo-img"/>
<div class="space-around">
<img src="starter-code/assets/desktop/icon-sun.svg" alt="icon-sun" className="sun-img"/>
<label className="switch">
<input type="checkbox" />
<span className="slider"/>
</label>
<img src="starter-code/assets/desktop/icon-moon.svg" alt="icon-moon" className="moon-img"/>
</div>
</main>
<div className="input-search">
<img src="starter-code/assets/desktop/icon-search.svg" alt="icon-search" className="icon-search"/>
<input type="text" placeholder="Enter desired job..." className="enter-job"/>
</div>
</div>
);
}
export default Header;
嗯,媒体查询不能用作内联样式。
但是您可以使用这种方法来分配背景图像:
首先如下创建css样式并将其保存在名为css的变量中:
const css = `@media (max-width: 650px) {
.backimage {
background-image: url("https://picsum.photos/200/300")
}
}
@media (min-width: 750px) {
.backimage {
background-image: url("https://picsum.photos/200");
}
}`;
然后,在main
标签上方的style
标签中的组件中使用它:
<style scoped>{css}</style>
<main style={{ height: 300 }} className="backimage">
请同时检查 this sandbox link
我正在开发一个响应式的 React 应用程序。当视口缩小或增加时,'backgroundImage' 应该改变。我使用了内联样式,因为我无法使用 public 文件夹中图像的相对路径。
我在一个变量中创建了一个媒体查询来响应它们应该改变的宽度。
我已将样式放在 .hearder-flex 潜水元素中。
Header.js
const Header = () => {
const media = {
'@media (max-width: 650px)':{
backgroundImage: 'url("starter-code/assets/mobile/bg-pattern-header.svg")' ,
},
'@media (min-width: 750px)':{
backgroundImage: 'url("starter-code/assets/tablet/bg-pattern-header.svg")' ,
}
}
return (
<div className="header-wrapper">
<main className="header-flex" style={media}>
<img src="starter-code/assets/desktop/logo.svg" alt="logo" className="logo-img"/>
<div class="space-around">
<img src="starter-code/assets/desktop/icon-sun.svg" alt="icon-sun" className="sun-img"/>
<label className="switch">
<input type="checkbox" />
<span className="slider"/>
</label>
<img src="starter-code/assets/desktop/icon-moon.svg" alt="icon-moon" className="moon-img"/>
</div>
</main>
<div className="input-search">
<img src="starter-code/assets/desktop/icon-search.svg" alt="icon-search" className="icon-search"/>
<input type="text" placeholder="Enter desired job..." className="enter-job"/>
</div>
</div>
);
}
export default Header;
嗯,媒体查询不能用作内联样式。
但是您可以使用这种方法来分配背景图像:
首先如下创建css样式并将其保存在名为css的变量中:
const css = `@media (max-width: 650px) {
.backimage {
background-image: url("https://picsum.photos/200/300")
}
}
@media (min-width: 750px) {
.backimage {
background-image: url("https://picsum.photos/200");
}
}`;
然后,在main
标签上方的style
标签中的组件中使用它:
<style scoped>{css}</style>
<main style={{ height: 300 }} className="backimage">
请同时检查 this sandbox link