这一切都归结为 CSS。无论您使用的是 vanilla CSS、SCSS、LESS 还是 CSS-in-JS,您都希望使用 CSS 选择器来定位您的组件,以适应分辨率的变化。
这是一个基本示例:
// ./foo.js
import React from "react";
import "./styles.css";
// Either as a Class
export default class FooClass extends React.Component {
render() {
return <div className="foo">Foo</div>;
}
}
// Or as a function
export default FooFunction = (props) => <div className="foo">Foo</div>;
在你的styles.css中:
.foo {
background-color: red;
width: 100%;
margin: 0 auto;
/* Small Devices, Tablets */
@media only screen and (min-width : 768px) {
width: 75%;
background-color: green;
}
/* Medium Devices, Desktops */
@media only screen and (min-width : 992px) {
width: 50%;
background-color: pink;
}
}
上述样式以移动优先方法应用,这意味着默认类声明提供元素在目标最小屏幕上的外观。这些移动样式将被后续媒体查询覆盖。多年来,这些直接在 CSS 类下的“内联”媒体查询已成为我最喜欢的组织响应式样式的方式。
以下是一些响应式设计资源:
https://css-tricks.com/nine-basic-principles-responsive-web-design/
媒体查询的完整列表