如何将媒体查询与 emotion/styled/macro 一起使用?
How can I use media query with emotion/styled/macro?
我找不到任何将样式化宏与媒体查询一起使用的代码,也不明白为什么很少找到使用 emotion/styled/macro
的代码。
我知道它允许在对象字面量中使用 css 样式
const StyledUl = styled("ul")(
{
backgroundColor: "#fff",
height: "200px",
width: "100%",
overflowY: "scroll",
position: "absolute",
margin: 0,
padding: "5px",
boxShadow: "-1px 15px 34px -21px rgba(0,32,86,0.21)",
boxSizing: "border-box",
borderRadius: "8px",
zIndex: 9999,
}
)
但是如何使用media
查询呢?
我在哪里可以找到关于 emotion/styled/macro
的文档?
没有什么特别的要求。只需将 @media ...
查询添加为 属性:
import styled from "@emotion/styled/macro";
const StyledUl = styled("ul")({
"@media (max-width: 600px)": {
backgroundColor: "#000",
color: "#fff"
},
backgroundColor: "#fff",
height: "200px",
width: "calc(100% - 40px)",
overflowY: "scroll",
position: "absolute",
margin: 0,
padding: "5px",
boxShadow: "-1px 15px 34px -21px rgba(0,32,86,0.21)",
boxSizing: "border-box",
borderRadius: "8px",
zIndex: 9999
});
export default StyledUl;
您可以选择使用模板文字来设置样式 styled.HTMLElement
:
import styled from "@emotion/styled/macro";
const StyledUlTemplate = styled.ul`
@media (max-width: 600px) {
background-color: #000;
color: #fff;
}
background-color: #fff;
height: 200px;
width: calc(100% - 40px);
overflow-y: scroll;
position: absolute;
top: 60%;
margin: 0;
padding: 5px;
box-shadow: -1px 15px 34px -21px rgba(0, 32, 86, 0.21);
box-sizing: border-box;
border-radius: 8px;
z-index: 9999;
`;
export default StyledUlTemplate;
演示(拖动中间条left/right调整Browser
选项卡的大小以触发样式更改):
我找不到任何将样式化宏与媒体查询一起使用的代码,也不明白为什么很少找到使用 emotion/styled/macro
的代码。
我知道它允许在对象字面量中使用 css 样式
const StyledUl = styled("ul")(
{
backgroundColor: "#fff",
height: "200px",
width: "100%",
overflowY: "scroll",
position: "absolute",
margin: 0,
padding: "5px",
boxShadow: "-1px 15px 34px -21px rgba(0,32,86,0.21)",
boxSizing: "border-box",
borderRadius: "8px",
zIndex: 9999,
}
)
但是如何使用media
查询呢?
我在哪里可以找到关于 emotion/styled/macro
的文档?
没有什么特别的要求。只需将 @media ...
查询添加为 属性:
import styled from "@emotion/styled/macro";
const StyledUl = styled("ul")({
"@media (max-width: 600px)": {
backgroundColor: "#000",
color: "#fff"
},
backgroundColor: "#fff",
height: "200px",
width: "calc(100% - 40px)",
overflowY: "scroll",
position: "absolute",
margin: 0,
padding: "5px",
boxShadow: "-1px 15px 34px -21px rgba(0,32,86,0.21)",
boxSizing: "border-box",
borderRadius: "8px",
zIndex: 9999
});
export default StyledUl;
您可以选择使用模板文字来设置样式 styled.HTMLElement
:
import styled from "@emotion/styled/macro";
const StyledUlTemplate = styled.ul`
@media (max-width: 600px) {
background-color: #000;
color: #fff;
}
background-color: #fff;
height: 200px;
width: calc(100% - 40px);
overflow-y: scroll;
position: absolute;
top: 60%;
margin: 0;
padding: 5px;
box-shadow: -1px 15px 34px -21px rgba(0, 32, 86, 0.21);
box-sizing: border-box;
border-radius: 8px;
z-index: 9999;
`;
export default StyledUlTemplate;
演示(拖动中间条left/right调整Browser
选项卡的大小以触发样式更改):