QQ登录

只需要一步,快速开始

APP扫码登录

只需要一步,快速开始

手机号码,快捷登录

泡泡马甲APP 更多内容请下载泡泡马甲手机客户端APP 立即下载 ×
查看: 96|回复: 0

[HTML/CSS/JS] 实现自适应九宫格布局

[复制链接]

等级头衔

积分成就    金币 : 2804
   泡泡 : 1516
   精华 : 6
   在线时间 : 1243 小时
   最后登录 : 2024-5-2

丰功伟绩

优秀达人突出贡献荣誉管理论坛元老

联系方式
发表于 2023-12-20 09:46:50 | 显示全部楼层 |阅读模式
如果你有一个列表,希望在页面上一行展示三个元素,可以使用 CSS 中的弹性布局(flexbox)来实现。
! \+ a( F( ]) K2 _, i 1.jpg 2 k: D3 _9 w' W8 }5 H
HTML 结构:
5 h: B+ _& ?- Z) M& x+ X
  1. <div class="container">
  2.   <div class="list-item">Item 1</div>
  3.   <div class="list-item">Item 2</div>
  4.   <div class="list-item">Item 3</div>
  5.   <div class="list-item">Item 4</div>
  6.   <div class="list-item">Item 5</div>
  7.   <!-- 其他列表项 -->
  8. </div>
CSS 样式:( q; v. C$ u6 x1 ?( Y9 {* \: `
  1. .container {
  2.   display: flex;
  3.   flex-wrap: wrap;
  4. }
  5. .list-item {
  6.   flex: 0 0 33.33%;
  7.   /* 或者使用 flex-basis 属性
  8.      flex-basis: 33.33%;
  9.   */
  10.   /* 其他样式属性,例如边距、填充等 */
  11. }
在上面的示例中,我们创建了一个包含列表项的容器 <div class="container">,并为每个列表项添加了类名 <div class="list-item">。通过设置容器的显示属性为 flex,并使用 flex-wrap: wrap 来使得列表项可以换行。通过设置列表项的 flex 属性为 0 0 33.33%,或者使用 flex-basis: 33.33%,我们将宽度平均分配给每个列表项,使其一行显示三个。! y) z8 X1 j2 N5 n4 H9 r
你可以根据实际情况调整容器和列表项的样式,例如添加边距、填充等。如果列表项的数量超过三个,超出的列表项会自动换行到下一行。
! n$ F$ s7 \, W4 t如果只有中间的一个元素需要左右间隙,而页面的左边和右边不需要间隙,你可以使用 CSS 的 margin 属性来实现。下面是相应的代码示例:
/ m) x: R  \. a3 |1 o! M8 SHTML 结构:
  1. <div class="container">
  2.   <div class="list-item">Item 1</div>
  3.   <div class="list-item with-margin">Item 2</div>
  4.   <div class="list-item">Item 3</div>
  5.   <div class="list-item">Item 4</div>
  6.   <div class="list-item with-margin">Item 5</div>
  7.   <!-- 其他列表项 -->
  8. </div>
CSS 样式:
8 U$ F/ F. t5 t/ F
  1. .container {
  2.   display: flex;
  3.   flex-wrap: wrap;
  4. }
  5. .list-item {
  6.   flex: 0 0 calc(33.33% - 10px); /* 考虑到间隙,减去 10px */
  7.   margin-top: 5px; /* 上方间隙为 5px */
  8.   margin-bottom: 5px; /* 下方间隙为 5px */
  9.   /* 其他样式属性,例如背景颜色、文字样式等 */
  10. }
  11. .with-margin {
  12.   margin-left: 15px; /* 左边间隙为 15px */
  13.   margin-right: 15px; /* 右边间隙为1 5px */
  14. }
在上面的示例中,我们为中间的元素添加了一个额外的类名 .with-margin,并使用该类名来设置左右间隙。  J  T9 ^9 K: M  }
我们使用 calc() 函数来计算每个列表项的宽度,考虑到间隙,我们将宽度设置为 33.33% - 10px。每个元素减去 10px 那么一行的就预留出了 30px 的间隙。对于具有 .with-margin 类名的元素,我们使用 margin-left 和 margin-right 属性为其添加左右各 15px 的间隙。- q  h; r5 b! B% f% L0 ]& y
这样,只有中间的一个元素会有左右间隙,而页面的左边和右边则没有间隙。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|paopaomj.COM ( 渝ICP备18007172号 )

GMT+8, 2024-5-2 20:16

Powered by paopaomj X3.4 © 2016-2024 sitemap

快速回复 返回顶部 返回列表