在过去几年中,由于弹性盒子和网格布局的演变,CSS布局设计的艺术发生了重大变化。...这些属性是强大的工具,一旦掌握,可以帮助开发人员创建更复杂、响应式和适应性强的网页布局。 然而,这些属性往往会让开发人员感到困惑,因为它们的名称相似且职责有所重叠。...它们非常有助于处理项目在交叉轴和主轴上的对齐方式。 对齐项(align-items) 对齐项(align-items)属性设置了弹性盒子或网格容器中所有项在交叉轴上的默认对齐方式。...例如,如果弹性盒子的主轴方向是行(默认值),那么交叉轴就是垂直的,这个属性将决定子项在垂直方向上的对齐方式。 它可以接受的值包括: stretch(默认值):项被拉伸以填充容器。...总结: 理解这四个属性——align-content、justify-content、align-items和justify-items——对于希望创建稳健且响应式布局的开发人员来说至关重要。
6. justify-items 定义所有网格项相对于列轴在水平方向上的对齐方式 start :项目与网格轨道的左端对齐 end:项目与网格轨道的右端对齐 center:在项目所在轨道居中对齐 stretch...,使网格之间以及边缘的网格到边缘的距离都相等。...9. align-content 和上面的 justify-content 道理是一样的,不过 align-content是网格在垂直方向上的对齐方式 10. grid-auto-columns 和 grid-auto-rows...,所以会自动创建隐式轨道来填补空白。...5. align-self 定义 某个网格项 相对于行轴在垂直方向上的对齐方式(可以定义某个网格项不同于 使用 align-items 的对齐方式) 这个与justify-self属性相同,不过是在垂直方向上
可选值: row(默认):水平方向,从左到右。 row-reverse:水平方向,从右到左。 column:垂直方向,从上到下。 column-reverse:垂直方向,从下到上。...wrap:换行,项目在多行中排列。 wrap-reverse:换行,第一行在下方,后续行向上排列。...,我们可以结合CSS Grid和Flexbox的优点,创建更复杂的响应式布局。...} .container > div { height: 100%; /* 保持子元素高度 */ } } 首先使用CSS Grid创建了一个自适应列宽的网格布局。...每个网格项(子元素)内部使用Flexbox,使内容垂直居中。当屏幕宽度小于768px时,通过媒体查询切换到单列布局,以适应移动设备。
,子视图上报给父视图自身大小的值是指 组件内容区的大小ArkUI中常用布局容器如何选择使用哪种布局线性布局(Row/Column)线性布局的子元素在线性方向上(水平方向和垂直方向)依次排列线性布局容器包括...Column容器内子元素按照垂直方向排列,Row容器内子元素按照水平方向排列主轴线性布局容器在布局方向上的轴线,子元素默认沿主轴排列。Row容器主轴为横向,Column容器主轴为纵向。...:子元素在水平方向左对齐HorizontalAlign.Center:子元素在水平方向居中对齐HorizontalAlign.End:子元素在水平方向右对齐。...Row容器内子元素在垂直方向上的排列Row() {...}.alignItems(VerticalAlign.Top)VerticalAlign.Top:子元素在垂直方向顶部对齐VerticalAlign.Center...:子元素在垂直方向居中对齐VerticalAlign.Bottom:子元素在垂直方向底部对齐层叠布局(Stack)层叠布局主要用于实现基于Z轴的布局,容器中的子元素(子组件)依次入栈,后一个子元素覆盖前一个子元素
】变量详解 轮播图swiper框架的基本使用 【Transform3D】转换详解(看完就会) 【css动画】移动的小车 【CSS3】 float浮动与position定位常见问题(个人笔记) 如何完成响应式布局...行和列 整个grid页面布局是由行和列构成的,在使用grid布局时,需要单独设计行和列。 ...单元格 每行每列都会分布单元格,在单元格内我们可以添加想要的内容。 网格线 格子的边框为网格线,分为上下网格线和左右网格线。...*100px内的方格内水平垂直居中,整个网格 也水平居中在了页面中,如果不设置红色方块大小的话 里面的文字将会水平垂直居中。 ...grid-column-start 属性:左边框所在的垂直开始网格线 grid-column-end 属性:右边框所在的垂直终点网格线 grid-row-start 属性:上边框所在的水平开始网格线 grid-row-end
容器和项目:我们通过在元素上声明 display:grid 或 display:inline-grid 来创建一个网格容器。一旦我们这样做,这个元素的所有直系子元素将成为网格项目。...行和列 网格单元:一个网格单元是在一个网格元素中最小的单位, 从概念上来讲其实它和表格的一个单元格很像。...Grid 会为我们创建编号的网格线来让我们来定位每一个网格元素。m 列有 m + 1 根垂直的网格线,n 行有 n + 1 跟水平网格线。比如上图示例中就有 4 根垂直网格线。...属性和 grid-auto-rows 属性之前,先来看看隐式和显示网格的概念 隐式和显示网格:显式网格包含了你在 grid-template-columns 和 grid-template-rows...其中它跟 .three (垂直网格线是从3 到 4,水平网格线是从 1 到 4) 是有冲突的。可以设置 z-index 去决定它们的层级关系 ?
https://www.cnblogs.com/sun8134/p/6395947.html 微信小程序 View 支持两种布局方式:block 和 flex 所有 View 默认都是 block 要使用...首先是横向布局和竖向布局,要设置属性 flex-direction ,它有4个可选值: row:从左到右的水平方向为主轴 row-reverse:从右到左的水平方向为主轴 column:从上到下的垂直方向为主轴...column-reverse:从下到上的垂直方向为主轴 设置元素在横向上的布局方向,需要设置 justify-content 属性,它有5个值可选: flex-start:主轴起点对齐(默认值) flex-end...:主轴结束点对齐 center:在主轴中居中对齐 space-between:两端对齐,除了两端的子元素分别靠向两端的容器之外,其他子元素之间的间隔都相等 space-around:每个子元素之间的距离相等...,两端的子元素距离容器的距离也和其它子元素之间的距离相同 设置元素在纵向上的布局方向,需要设置 align-items 属性,它有5个值可选: stretch 填充整个容器(默认值) flex-start
下面的HORIZONTAL_ALIGN_FILL代表在水平方向上 * * 按单元格拉伸对其,而FILL_BOTH代表双向拉伸充满。当然还有水/*平方向上的FILL_HORIZONTAL等。...GridData的相关属性 GridLayout布局的灵活之处在于它利用网格布局数据GridData。...VerticalAlignment:表示子组件的垂直对齐方式,值和水平方式一样。 HorizontalIndent:表示子组件水平偏移多少像素。...此属性和“horizontalAlignment = GridData.BEGINNING”属性一起使用。 HorizontalSpan:表示组件水平占据几个网格。...下面的HORIZONTAL_ALIGN_FILL代表在水平方向上 * * /*按单元格拉伸对其,而FILL_BOTH代表双向拉伸充满。
组件 之前我们聊过Harmony的两个布局容器Column和Row,分别表示垂直布局和水平布局。...SpaceAround:元素在主轴方向均匀分配弹性元素,相邻元素之间距离相同。 第一个元素到行首的距离和最后一个元素到行尾的距离是相邻元素之间距离的一半。...alignItems Column容器的主轴是垂直方向,交叉轴是水平方向,其参数类型为HorizontalAlign(水平对齐),HorizontalAlign定义了以下几种类型: Start:设置子组件在水平方向上按照起始端对齐...Center(默认值):设置子组件在水平方向上居中对齐。 End:设置子组件在水平方向上按照末端对齐。...Row容器的主轴是水平方向,交叉轴是垂直方向,其参数类型为VerticalAlign(垂直对齐),VerticalAlign定义了以下几种类型: Top:设置子组件在垂直方向上居顶部对齐。
(这里我们就不贴代码了) 而在其他任何布局模式中,创建这样的区块的唯一方法就是「添加更多的 DOM 节点」。...❞ 它会动态增长和收缩。其实,网格容器仍然使用流式布局,而流式布局中的块级元素会垂直增长以容纳其内容。「只有子元素使用网格布局进行排列」。...隐式和显式行 隐式行 如果我们向一个两列网格添加「超过两个子元素」会发生什么呢? 从结果来看,gird将第三个元素放置到了第二行。 ❝grid算法希望确保「每个子元素都有自己的网格单元」。...:在每个网格项之间放置相等量的空间,两端的空间为一半大小 space-between:在每个网格项之间放置相等量的空间,两端没有空间 space-evenly:在每个网格项之间放置相等量的空间,包括两端...到目前为止,我们一直在讨论如何在水平方向上对齐内容。
现在,提供本人对这些属性的理解: 1, gridx: 表示组件的左边缘与网格左部之间的距离,如果学过HTML的话,那么gridx就 相当于HTML 里面的leftmargin属性。...2, gridy: 表示组件的上边缘与网格顶部之间的距离,相当于HTML里面的topmargin属性!...3, ipadx: 表示组件在默认的大小上,往水平方向上再加上多少像素的大小! 4, ipady: 表示组件在默认的大小上,往垂直方向上再加上多少像素的大小!...7,insets: 设置组件之间彼此的间距,它有四个参数,分别是上,左,下,右, 默认值为(0,0,0,0) 8,weightx: 用来设置当窗口变大时,各组件沿水平方向跟着变大的比例...所以,我们在设计这种布局方式前,可以先在纸上画一下每个组件的大概位置,然后保证每一行的长度(即每一行的gridwidth之和)都相等,且每一列的长度(即每一列的gridheight之和)也相等,这样,就能按我们要的蓝图而得到实现
现在,提供本人对这些属性的理解: 1, gridx: 表示组件的左边缘与网格左部之间的距离,如果学过HTML的话,那么gridx就 相当于HTML 里面的leftmargin属性。...2, gridy: 表示组件的上边缘与网格顶部之间的距离,相当于HTML里面的topmargin属性!...3, ipadx: 表示组件在默认的大小上,往水平方向上再加上多少像素的大小! 4, ipady: 表示组件在默认的大小上,往垂直方向上再加上多少像素的大小!...7, insets: 设置组件之间彼此的间距,它有四个参数,分别是上,左,下,右, 默认值为(0,0,0,0) 8,weightx: 用来设置当窗口变大时,各组件沿水平方向跟着变大的比例...所以,我们在设计这种布局方式前,可以先在纸上画一下每个组件的大概位置,然后保证每一行的长度(即每一行的gridwidth之和)都相等,且每一列的长度(即每一列的gridheight之和)也相等,这样,就能按我们要的蓝图而得到实现
所有子布局元素的偏好高度相加,并加上它们之间的间距。得到的结果便是垂直布局组的偏好高度。 如果垂直布局组处于其最小高度或更小值,则所有子布局元素也将具有最小高度。...用于在Canvas中垂直排列子元素,方便开发者快速创建垂直布局的UI界面。...所有子布局元素的偏好宽度相加,并加上它们之间的间距。得到的结果便是水平布局组的偏好宽度。 如果水平布局组处于其最小宽度或更小值,则所有子布局元素也将具有最小宽度。...用于在Canvas中水平排列子元素,方便开发人员快速创建水平布局的UI界面。...Aim Constraint可以在不同的方向上约束对象,例如只在水平方向上约束、在垂直方向上约束、在任意方向上约束等。
它简化了基于网格或弹性盒子的布局的创建,通过提供一种设置网格或弹性盒子项在行和列中的间隙的简写方式。 要理解 gap 属性,让我们分别看一下它在网格和弹性盒子布局中的用法。...网格布局中的 gap 在网格布局中, gap 属性设置了网格项之间的水平和垂直间距。它允许我们通过一次声明来控制行和列之间的间隔。...这个属性在创建独特和视觉上吸引人的设计时非常有用,特别是在需要垂直或侧向文本的情况下。...设置元素的宽高比在处理响应式设计或保持特定视觉比例时非常有用。例如,可能希望创建一个容器,始终保持16:9的宽高比,确保图像无论其原始尺寸如何都能正确显示。...这在响应式设计中特别有用,其中元素需要适应不同的屏幕尺寸,同时保持其宽高比。
水平垂直居中 如何实现水平垂直居中 可以说是CSS面试题中的经典面试题,在多年前这个面试题给很多同学都带来了困惑,但 Flexbxo布局模块 和 CSS Grid布局模块 的到来,可以说实现水平垂直居中已是非常的容易...Flexbox中实现水平垂直居中 在Flexbox布局模块中,不管是单行还是多行,要让它们在容器中水平垂直居中都是件易事,而且方法也有多种。...Grid布局模块中,只要显式设置了display: grid(或inline-grid)就会创建Grid容器和Grid项目,也会自动生成网格线,即行和列(默认为一行一列)。...display的值为flex或inline-flex,该容器的所有子元素的高度都相等,因为容器的align-items的默认值为stretch。...这是因为我们示例中通过grid-template-areas来声明网格,在使用grid-template-areas创建网格时,其实也隐式的创建了网格线,只不过他和grid-template不同的是grid-template
响应式布局的想法已经过去十多年了,因为越来越多的浏览器进入市场,他们都以不同的方式实现了 CSS,导致代码可以在一个浏览器中运行,但在另一个浏览器中,可能需要你编写一堆浏览器的前缀,以使其在所有浏览器上都能正常工作...它还在 HTML 中提供了有用的注释,例如当一个元素导致另一个元素溢出时,Firefox 还为 flex 和网格布局提供了非常漂亮的图形,谈到哪个布局或元素相对于彼此的位置历来是最重要的布局之一。...在具有挑战性的 CSS 方面,例如如何在水平和垂直方向上居中 div 的古老问题。 ?...,允许你在 UI 中的任何位置创建灵活的列或行,当元素具有显示 flex 时,它还具有 x 和 y 轴,你可以在其上对齐其子项。...Grid 允许你考虑大图布局,当你将元素设置为显示网格时,它对开发人员更加友好,你可以将其子项定义为一堆列和行。 ? 列的宽度可以用网格模板列属性定义,我们在这里有三个值: ?
页面响应式 在进行项目交付的场景中,常常会存在项目系统在不同设备,不同屏幕尺寸下使用和展示。因此在开发过程中需要针对此场景做针对性处理。...而不同的布局,可以选择提前开发完成,或者采用判断窗口大小的方式动态地调整最终页面来实现效果,业内称之为页面的响应式布局。...不同尺寸下的响应式页面布局 那么,在低代码领域,对于提前设计好的页面元素,是如何实现页面的响应式变化呢?让我们来看一看活字格是如何实践的! 活字格的实践 对于页面的响应式能力,活字格一直在持续的增强。...活字格为用户提供了五种拉伸模式,方便用户在不同的场景下进行选择: 无拉伸:页面在浏览器中不会进行拉伸,与设计原型保持一致。 水平拉伸:页面在不同浏览器中随着浏览器尺寸进行水平方向上的拉伸。...垂直拉伸:页面在不同浏览器中随着浏览器尺寸进行垂直方向上的拉伸。 双向拉伸:页面在不同浏览器中随着浏览器尺寸进行水平和垂直方向上的拉伸,使得在充满不同分辨率的浏览器时都具有较好的视觉效果。
行内元素在垂直方向上可按照顶部、底部或基线对其。...水平方向上,当行内元素的总宽度比行盒要小,那么行内元素在水平方向上的分部由 text-align 决定。...行内元素撑开父元素高度,通过 vertical-align 属性进行垂直居中 水平垂直居中 ?...text-align: center; } .big { font-size: 60px; vertical-align: middle; } 其他还有 GFC、FFC 就是二维的网格布局和自适应的...两种布局产生网格布局格式化上下文和自适应格式化上下文。
清除浮动的另一个方法是在容器内创建BFC。一个BFC元素完全包裹住了它内部的所有元素,包括内部的浮动元素,保证浮动元素不会超出其底部。...弹性布局 Flex布局是2009年W3C提出了一种新的方案,可以简便、完整、「响应式」地实现各种页面布局。目前,它已经得到了所有浏览器的支持,这意味着,现在就能很安全地使用这项功能。...网格布局 5.1 Grid 布局是什么 网格是一组相交的水平线和垂直线,它定义了网格的列和行。CSS 提供了一个基于网格的布局系统,带有行和列,可以让我们更轻松地设计网页,而无需使用浮动和定位。...3行 x 3列,因此有4根垂直网格线和4根水平网格线。...比如,区域名为header,则起始位置的水平网格线和垂直网格线叫做header-start,终止位置的水平网格线和垂直网格线叫做header-end。
BFC的约束规则内部的BOX会在垂直方向上一个接一个的放置;垂直方向上的距离由margin决定。(完整的说法是:属于同一个BFC的俩个相邻的BOX的margin会发生重叠,与方向无关。)...垂直居中:创建一个IFC,用其中一个元素撑开父元素的高度,然后设置其vertical-align:middle,其他行内元素则可以在此父元素下垂直居中。...item)上定义网格行(grid row)和网格列(grid columns)为每一个网格项目(grid item)定义位置和空间。...伸缩容器外和伸缩项目内的一切元素都不受影响。简单地说,Flexbox 定义了伸缩容器内伸缩项目该如何布局。...多栏布局(column-*) 在 Flexbox 中也是失效的,就是说我们不能使用多栏布局在Flexbox 排列其下的子元素Flexbox 下的子元素不会继承父级容器的宽
领取专属 10元无门槛券
手把手带您无忧上云