首页 web前端 css教程 CSS 中的网格和 Flex 布局

CSS 中的网格和 Flex 布局

Sep 06, 2024 pm 02:31 PM

Grid and Flex Layout in CSS

介绍

  • FlexBox 和网格布局都是强大的布局。

弹性盒:

  • Flexbox 是一种一维布局模型,最适合在单行或单列中排列元素。
  • 当元素的大小或容器的大小未知时,Flexbox 特别有用。
  • 它非常适合水平和垂直对齐项目,并且对于创建导航栏、侧边栏或工具栏非常有用。

CSS 网格:

  • 网格是一种二维布局模型,最适合同时将元素排列成行和列。
  • 它非常适合创建复杂的布局,并且可以同时处理列和行,这使其成为构建复杂页面布局的不错选择。

网格布局详细

grid-template-columns: repeat(3, 1fr);
grid-template-row: repeat(3, auto);
grid-column: 1/3
grid-row: 1/4

行覆盖

  • repeat(3, minmax(200px, 1fr)) 语句创建三行(或列,具体取决于使用位置),每行的最小尺寸为 200px,最大尺寸为 1fr。
  • 1fr 单位表示网格容器中可用空间的一小部分。因此,如果容器的大小超过所有行的总最小大小(在本例中为 600px),则剩余空间将在行之间平均分配。
repeat(3, minmax(200px 1fr))

自动调整和自动填充

CSS 网格中的自动填充和自动调整关键字控制当网格项不占用网格容器中的额外空间时网格的行为方式。

自动填充

.container {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
}

在此示例中,网格将创建容器中能够容纳的尽可能多的 100 像素列。 如果还有剩余空间,它将在各列之间平均分配。

自动调整:

  • 这个关键字还告诉网格创建尽可能多的轨道,但它会折叠空轨道,因此网格末尾没有空轨道。
.container {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
}

在此示例中,网格将创建容器中能够容纳的尽可能多的 100 像素列。 如果还有剩余空间,它将在各列之间平均分配,并且任何空列都将被折叠。

子网格

  • 当您希望网格项成为网格容器并与其父网格对齐时,将使用 CSS 网格布局中的子网格值。
.container {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
}

.item {
  display: grid;
  grid-template-columns: subgrid;
}

注意:-

  • 当您希望嵌套网格与父网格对齐时,这会很有用。
  • 但是,子网格并未在所有浏览器中得到广泛支持。

容器查询

  1. 集装箱尺寸查询
  • 宽度 媒体查询考虑视口宽度 但容器大小查询考虑容器宽度容器是被查询的元素。

规则:-

  • 规则仅对容器后代有效而不是容器本身

  • 容器大小查询是响应式设计的补充,而不是媒体查询的替代品。

<article class="card">
    <h2>That's No Moon. It's a Space Station.</h2>
    <p class="text">At 198km diameter, Mimas is bigger than the first Death Star (120km) but smaller than the second (800km). </p>
    <p class="link"><a href="https://science.nasa.gov/saturn/moons/mimas/" target="_blank" class="button">More about Mimas</a></p>
  </article>

<!-- we can't query cards in container query so only work with descendants-->
<!-- Workaround solution would be check below-->
<div class="card">
<article >
    <h2>That's No Moon. It's a Space Station.</h2>
    <p class="text">At 198km diameter, Mimas is bigger than the first Death Star (120km) but smaller than the second (800km). </p>
    <p class="link"><a href="https://science.nasa.gov/saturn/moons/mimas/" target="_blank" class="button">More about Mimas</a></p>
  </article>
</div>

.card {
  container-name: card;
  container-type: inline-size;
}

@container card (min-width: 200px) {
  article {
    background-color: red;
  }
}

@container card (min-width: 250px) {
  article {
    ...
  }
}

以上是CSS 中的网格和 Flex 布局的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Stock Market GPT

Stock Market GPT

人工智能驱动投资研究,做出更明智的决策

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

如何使用纯CSS创建下拉菜单 如何使用纯CSS创建下拉菜单 Sep 20, 2025 am 02:19 AM

使用HTML和CSS可创建无需JavaScript的下拉菜单。2.通过:hover伪类触发子菜单显示。3.利用嵌套列表构建结构,CSS设置隐藏与悬浮显示效果。4.可添加过渡动画提升视觉体验。

如何使用CSS中的指针事件属性 如何使用CSS中的指针事件属性 Sep 17, 2025 am 07:30 AM

Thepointer-eventspropertyinCSScontrolswhetheranelementcanbethetargetofpointerevents.1.Usepointer-events:nonetodisableinteractionslikeclicksorhoverswhilekeepingtheelementvisuallyvisible.2.Applyittooverlaystoallowclick-throughbehaviortounderlyingelemen

如何防止图像拉伸或缩小CSS 如何防止图像拉伸或缩小CSS Sep 21, 2025 am 12:04 AM

useobject-fitormax-widthwithheight:自动置换式; object-fitControlshowimagesfillcontainersfillcontainerswhilepreservingaspectratios,andmax-width:100%;高度;高度:autoEsoensuresResresresResresRessersRessiveScalingScalingWithOutStertracterging。

如何使用CSS添加盒子阴影效果 如何使用CSS添加盒子阴影效果 Sep 20, 2025 am 12:23 AM

USETHEBOX-SHADOWPROPERTYTOADDDROPSHADOWS.DEFINEHORIZONTALANDVERTICALESTESETSETSETSETSETSETSETSETSETSETSETSETSETSETSETSETSETSETESTESTESTESTESTESTEMENG:MMULTIPLESHADOWSARECOMMA-SEPARAWS.MEULTIPLESHADOWSARECOMMA-SEPARATED.EXAMPL

如何将过滤器应用于CSS的图像 如何将过滤器应用于CSS的图像 Sep 21, 2025 am 02:27 AM

thecssfilterpropertyallowseasyagestylinglingwisslikeblur,亮度和格雷斯卡尔(Grayscale.UseFilter):滤波器函数(值)onimagesorbackgroundImages.commonfunctionsIncludeBlurblur(px),亮度(brightness),亮度(%),偏见(%),损坏(%),sancale(%),饱和度(%)

如何在CSS中添加梯度背景 如何在CSS中添加梯度背景 Sep 16, 2025 am 05:30 AM

要添加CSS渐变背景,使用background或background-image属性配合linear-gradient()、radial-gradient()等函数即可;首先选择渐变类型,设置方向与颜色,并可通过颜色停靠点、形状、大小等参数精细控制,例如linear-gradient(toright,#ff7e5f,#feb47b)创建从左到右的线性渐变,radial-gradient(circle,#ff9a9e,#fecfef)创建圆形径向渐变,还可通过repeating-linear-gr

如何在CSS中创建圆形图像? 如何在CSS中创建圆形图像? Sep 15, 2025 am 05:33 AM

使用border-radius:50%将等宽高的图像变为圆形,结合object-fit和aspect-ratio确保形状和裁剪,可添加边框、阴影等样式增强视觉效果。

如何在CSS网格布局中创建空白? 如何在CSS网格布局中创建空白? Sep 22, 2025 am 05:15 AM

使用gap、row-gap或column-gap属性可在CSSGrid布局中创建网格项之间的间距,gap是设置行列间距的简写属性,可接受一个或两个长度值,row-gap和column-gap则分别单独控制行与列的间距,支持px、rem、%等单位。

See all articles