css-如何在一行中使用不同数量的项目网格

This is my current UI.
enter image description here

这是我想做的网格项目。

    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%;
}
Codesandbox
https://codesandbox.io/s/relaxed-meadow-zxclh?file=/src/styles.css
2

按定义的网格具有一定数量的列。你可以做的是定义多个列,并使用grid-column将“column-span”规则应用于特定的 div。

网格列

grid-columnCSS 速记属性指定网格项的大小和在网格列中的位置,方法是为其网格放置贡献一条线、一个跨度或什么都没有(自动),从而指定其网格区域的 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>

Edit css-how-to-use-grid-with-different-number-of-item-in-a-row

enter image description here enter image description here

你甚至可以明确地表达你想要它们被布置的网格轨道。

<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>

enter image description here enter image description here

在 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>

enter image description here enter image description here

希望通过这一点,更清楚如何使用网格轨道来布局你喜欢的内容。

0

您可以将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>
0

您可以使用 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

enter image description here

-2

使用 bootstrap for grid。它有行和列的类。我会让它变得容易

本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处

(65)
如何沙箱不受信任的用户提交的JavaScript内容
下一篇

相关推荐

  • css参考手册:标题

    CSS参考手册是一本关于CSS语言的参考书,由W3C组织出版,包含了CSS语言的完整语法、属性、值和案例等。它提供了一个完整的CSS语言参考,可以帮助开发者快速学习和使用CSS语言,从而更好地创建网页。…

    2023-06-29 01:40:51
    0 99 23
  • css登录界面模板代码:登录你的账号,开启新的旅程

    CSS登录界面模板代码是一种使用CSS来制作登录界面的代码,它可以帮助开发者快速制作出美观且易于使用的登录界面,以下是一个简单的CSS登录界面模板代码:…

    2023-05-06 06:17:54
    0 35 10
  • html引用css文件:My Webpage Welcome to My Webpage!

    示例示例在html文件中引用css文件,可以使用标签,代码示例如下:其中,rel属性表示关系,type属性表示文件的类型,href属性表示css文件的路径。…

    2023-06-21 12:33:03
    0 33 22
  • css鼠标移入移出:标题

    CSS鼠标移入移出,可以使用CSS中的:hover伪类来实现,代码如下:上面的代码表示,当鼠标移入.example元素时,将其文字颜色改为白色。…

    2023-04-28 12:13:20
    0 70 91
  • css自动换行:标题

    CSS自动换行可以使用CSS的word-wrap属性来实现,代码如下:该属性有两个可选值:…

    2023-11-21 11:03:53
    0 61 63
  • css布局技巧:和3个段落 标题 段落1 段落2 段落3

    CSS布局技巧是指使用CSS来实现页面布局的方法。这些技巧可以帮助开发人员快速实现页面布局,并且可以更好地控制页面的外观和行为。…

    2023-04-17 01:31:53
    0 38 40
  • css 超出自动换行:这是一个标题

    css 超出自动换行,可以使用 css 的 word-wrap 属性来实现,该属性允许长单词或 URL 地址换行到下一行。代码如下:…

    2023-04-08 01:41:59
    0 24 20
  • css出现滚动条控制页面内容的浏览

    当页面内容超出浏览器窗口的大小,会出现滚动条,可以通过CSS来控制。例如:…

    2023-06-05 08:29:43
    0 18 24

发表评论

登录 后才能评论

评论列表(13条)