这是我想做的网格项目。
1 2
3 4 5
6 7
我该怎么做?
应用.js
import "./styles.css";
export default function App() {
return (
<div className="App">
<div className="container">
<div className="item">1</div>
<div className="item">2</div>
<div className="item">3</div>
<div className="item">4</div>
<div className="item">5</div>
<div className="item">6</div>
<div className="item">7</div>
</div>
</div>
);
}
style.css
.App {
font-family: sans-serif;
text-align: center;
}
.container {
display: grid;
grid-gap: 10px 12px;
grid-template-columns: auto auto;
}
.item {
width: 50px;
height: 50px;
border: 1px solid grey;
border-radius: 50%;
}
Codesandboxhttps://codesandbox.io/s/relaxed-meadow-zxclh?file=/src/styles.css
按定义的网格具有一定数量的列。你可以做的是定义多个列,并使用grid-column将“column-span”规则应用于特定的 div。
网格列
grid-column
CSS 速记属性指定网格项的大小和在网格列中的位置,方法是为其网格放置贡献一条线、一个跨度或什么都没有(自动),从而指定其网格区域的 inline-start 和 inline-end 边缘。
示例使用 6 列,每个 div 跨越 2 或 3 列,以获得正确的元素“每行”。您可以从这里调整样式 / 布局。
CSS:
.container {
display: grid;
grid-gap: 10px 12px;
grid-template-columns: repeat(6, auto);
justify-items: center;
}
JSX
<div className="App">
<div className="container">
<div className="item" style={{ gridColumn: 'span 3' }}>1</div>
<div className="item" style={{ gridColumn: 'span 3' }}>2</div>
<div className="item" style={{ gridColumn: 'span 2' }}>3</div>
<div className="item" style={{ gridColumn: 'span 2' }}>4</div>
<div className="item" style={{ gridColumn: 'span 2' }}>5</div>
<div className="item" style={{ gridColumn: 'span 3' }}>6</div>
<div className="item" style={{ gridColumn: 'span 3' }}>7</div>
</div>
</div>
你甚至可以明确地表达你想要它们被布置的网格轨道。
<div className="App">
<div className="container">
<div className="item" style={{ gridColumn: "2/4" }}>
1
</div>
<div className="item" style={{ gridColumn: "4/6" }}>
2
</div>
<div className="item" style={{ gridColumn: "1/3" }}>
3
</div>
<div className="item" style={{ gridColumn: "3/5" }}>
4
</div>
<div className="item" style={{ gridColumn: "5/7" }}>
5
</div>
<div className="item" style={{ gridColumn: "2/4" }}>
6
</div>
<div className="item" style={{ gridColumn: "4/6" }}>
7
</div>
</div>
</div>
在 5 轨道网格上,因此您不需要在轨道之间“居中”。
grid-template-columns: repeat(5, auto);
...
<div className="App">
<div className="container">
<div className="item" style={{ gridColumn: "2" }}>
1
</div>
<div className="item" style={{ gridColumn: "4" }}>
2
</div>
<div className="item" style={{ gridColumn: "1" }}>
3
</div>
<div className="item" style={{ gridColumn: "3" }}>
4
</div>
<div className="item" style={{ gridColumn: "5" }}>
5
</div>
<div className="item" style={{ gridColumn: "2" }}>
6
</div>
<div className="item" style={{ gridColumn: "4" }}>
7
</div>
</div>
</div>
希望通过这一点,更清楚如何使用网格轨道来布局你喜欢的内容。
您可以将align-items: center;
和justify-content: center;
用于具有display: flex;
的框
这将自动调整对齐方式,并将内容放在框的中心。
.flex-container {
display: flex;
background-color: grey;
align-items: center;
justify-content: center;
}
.flex-container > div {
background-color: #f1f1f1;
margin: 1px;
padding: 1px 10px;
font-size: 30px;
}
<div class="flex-container">
<div>1</div>
<div>2</div>
</div>
<div class="flex-container">
<div>1</div>
<div>2</div>
<div>3</div>
</div>
<div class="flex-container">
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
</div>
<div class="flex-container">
<div>1</div>
<div>2</div>
</div>
您可以使用 bootstrap 内置类。
步骤 1:只需将引导 CDN 链接添加到 inedx.html 从这里
<link
href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css"
rel="stylesheet"
integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3"
crossorigin="anonymous"
/>
第 2 步:使用此类
import "./styles.css";
export default function App() {
return (
<div className="App">
<div className="container p-4 text-center">
<div className="row d-flex justify-content-evenly ">
<div className="item col-6">1</div>
<div className="item col-6">2</div>
</div>
<div className="row d-flex justify-content-evenly ">
<div className="item col-4">3</div>
<div className="item col-4">4</div>
<div className="item col-4">5</div>
</div>
<div className="row d-flex justify-content-evenly ">
<div className="item col-6">6</div>
<div className="item col-6">7</div>
</div>
</div>
</div>
);
}
Step-3 并使用此style.css
.item {
width: 50px;
height: 50px;
border: 1px solid grey;
border-radius: 50%;
}
如果justify-content-evenly
不起作用,则可以尝试justify-content-around
。
使用 bootstrap for grid。它有行和列的类。我会让它变得容易
本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处
评论列表(66条)