首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

一文掌握css常见布局float、position、flex、grid

css在前端的学习中是一个绕不过去的课题,他决定如何显示的你网页内容,初学css你也许会觉得它很容易,无非就是控制元素的位置,大小,颜色等等表现层面的东西,但当你真正使用它去做一些事前的时候,往往会出现无处下抓的现象...,但是跟绝对定位区别的一点是,该元素边产生了浮动流,以至于其相邻的元素会向右或者想左靠近该元素,而不是跟绝对定位一样,相邻的元素会忽略该元素的所在位置,直接铺满整个空间。...flex分为flex容器以及flex项目两部分,理论任何元素都可以作为flex容器,同时这个容器也能够指定是单行显示还是行类显示,flex容器内的所有一级元素都会变成inline-block的元素,并且他们的...定义了项目在纵坐标的对其方式,主要用于当项目的高度不一致的时候如何显示,有以下几个值:flex-start: 顶部对齐flex-end: 顶部对齐center: 居中对齐baseline: 项目的第一行文字基线对齐...item的宽度项目属性 flex-grow定义了剩余空间如何利用,常用来当固定宽度的几个元素没有占满整个容器,然后剩余的宽度都由一个元素占满。

14210
您找到你想要的搜索结果了吗?
是的
没有找到

前端面试题归类-css

:●flex项目占的份数flex属性定义子项目分配剩余空间,用flex来表示占多少份数。...flex-grow:定义项目的的放大比例;默认为0,即使存在剩余空间,也不会放大;所有项目flex-grow为1:等分剩余空间(自动放大占位); flex-grow为n的项目,占据的空间(放大的比例)...flex-shrink:定义项目的缩小比例;默认为1,即 如果空间不足,该项目将缩小;所有项目flex-shrink为1:当空间不足时,缩小的比例相同;flex-shrink为0:空间不足时,该项目不会缩小...flex-basis: 定义在分配多余空间之前,项目占据的主轴空间(main size),浏览器根据此属性计算主轴是否有多余空间,默认值为auto,即 项目原本大小;设置后项目将占据固定空间。...如何DOM元素不显示在浏览器的可视范围内?

1.6K40

「译」Flexbox 基本原理

它是一种布局模型,允许我们方便地控制 html 元素之间的空间分布和对齐 [2]。 Flexbox 一次只能控制一个维度的定位(行或者列)。二维定位的控制需要依靠网格布局 [2]。...通过给项目设置 width: 33.3333%,容器能够完全被填满。 ? 但是当你子 div 之间有空隙时,它们将不会像预期的那样进行换行: ?...flex-grow:如果有额外空间,每个项目应该如何伸展 flex-shrink:如果空间不足,每个项目应该如何收缩 flex-basis:在设置以上两个属性之前项目的大小 flex-grow 该属性设置的是弹性增长系数...默认值是 0,这意味着如果有剩余空间,就把这个空间放在最后一个项目的后面 [1]。 ? 在上面的例子中,direction 设置为 row,每个弹性项目的宽度是 60px。...下面的 gif 中,项目 1 设置为 flex-shrink: 10,项目 4 设置为 flex-grow: 10。

1.9K30

CSS Flexbox 可视化手册

通过 flex-direction属性从上到下设置,wrap-reverse将其转换为从下到上。 ?...默认情况下所有的弹性项目都设置为 order: 0,这意味着所有项目都属于同一组,并且它们将按照原始顺序定位。 在两个或多个组的情况下,组会相对于它们的整数值进行排序。...flex-grow:如果有额外的空间,每个项目应该如何放大 flex-shrink:如果没有足够的空间,应该如何缩小每个项目 flex-basis:在设置上述两个属性之前,该项目的大小应该是多少 flex-grow...默认值为 0,这意味着如果还有可用空间,就把它放在最后一个项目之后。 ? 在上面的例子中,direction被设置为 row,每个弹性项目的 width被设置为 60px。...下面的动图显示了一个800px宽的容器和五个设置为 flex-basis:160px的弹性项目

3.1K20

界面设计技法之布局

很大原因在于我们可能没对css布局这块做一个系统的梳理~,偶然间发现了Learn CSS Layout,在此分享给大家,希望和大家共同提高,另外安利给大家一个如何写出更加优雅的html&&css代码的文章...这是微信端的展示,从中我们可以看出如果用百分比布局来做界面比较明朗的界面的话,那在兼容多种终端上,它能帮我们省下不少力气,另外该项目已经开源,喜欢的朋友可以去star一下哟;项目地址 ?...在实际项目中,为了Responsive设计在智能设备中能显示正常,也就是浏览Web页面适应屏幕的大小,显示在屏幕上,可以通过这个可视区域的meta标签进行重置,告诉他使用设备的宽度为视图的宽度,也就是说禁止其默认的自适应页面的效果...flex: 1; } .flex2 { -webkit-flex: 2; flex: 2; } .initial 空间足够的时候,我的宽度是200px,如果空间不足,我会变窄到100px....none 无论窗口如何变化,我的宽度一直是200px。 .flex1 剩余宽度的1/3。 .flex2 我会占满剩余宽度的2/3。

1.2K10

CSS 中你需要知道 auto 的一切!

我们可以使用下面方法具有绝对定位元素居中: 设置的宽度和高度。...当一个子项目flex: auto时,它等价于flex: 11 auto,与下面等价: CSS .item { flex-grow: 1; flex-shrink: 1; flex-basis...: auto; } MDN 描述 该项目根据其宽度和高度属性调整大小,但会增长以吸收flex容器中的任何额外自由空间,并会收缩到其最小尺寸以适合该容器,这等效于设置“ flex:1 1 auto”。...具有flex:auto的项目将根据其宽度和高度来调整大小,但它可以根据可用的额外空间来增大或缩小。 在研究本文之前,我不知道这一点!...考虑下面的模型: ? 我们有一个有内边距的 wrapper 元素,还有一个子项。子项目是绝对定位的,但没有任何定位属性。

5.1K30

CSS_Flex 那些鲜为人知的内幕

Flexbox专注于在行或列中排列一组项目,并提供对这些项目的分布和对齐具有极大控制权。正如其名称所示,Flexbox关注的是灵活性。我们可以控制项目是增长还是收缩,额外空间如何分配等。 3....当我们讨论交叉轴上的对齐时,每个项目都可以随心所欲。然而,在主轴上,我们「只能考虑如何分配整个组」。 ❞ 针对上面的内容,我们可以给出一个正确的定义: justify — 沿「主轴定位」某物。...无论如何,最终效果都是相同的。 ❞ 对flex-shrink:我们可以将其视为flex-grow的“反面”。它们是同一硬币的两面: flex-grow 控制当项目小于其容器时额外空间的「分配方式」。...flex-shrink 控制项目大于其容器时空间的「移除方式」。 这意味着这两个属性中只能有一个生效。如果有额外的空间flex-shrink没有影响,因为项目不需要缩小。...我们可以通过设置flex-wrap:wrap来子元素自动换行。 >> 当我们设置flex-wrap: wrap时,项目不会收缩到其假设大小以下。

22610

CSS笔记

z-index 属性 设定了一个定位元素及其后代元素或 flex 项目的 z-order,当元素之间重叠的时候, z-index 较大的元素会覆盖较小的元素在上层进行显示。...(从下到上) .box { flex-direction: row | row-reverse | column | column-reverse; } (2)flex-wrap 默认情况下,项目都排在一条线...定义项目在交叉轴上如何对齐。...(3)flex-shrink 定义了项目的缩小比例,默认为1,即如果空间不足,该项目将缩小。 如果所有项目flex-shrink属性都为1,当空间不足时,都将等比例缩小。...如果一个项目flex-shrink属性为0,其他项目都为1,则空间不足时,前者不缩小。 (4)flex-basis 定义了在分配多余空间之前,项目占据的主轴空间(main size)。

2.2K10

前端面试之HTML && CSS

然后,可以通过设置垂直 或水平位置,这个元素“相对于”它的起点进行移动。 在使用相对定位时,无论是 否进行移动,元素仍然占据原来的空间。因此,移动元素会导致它覆盖其它框。...BFC是CSS布局的一个概念,是一个独立的渲染区域,规定了内部box如何布局, 并且这个区域的子元素不会影响到外面的元素,其中比较重要的布局规则有内部 box 垂直放置,计算 BFC 的高度的时候,浮动元素也参与计算...如何创建BFC?...0 flex-grow 属性:定义项目的放大比例,即使存在空间,也不会放大 flex-shrink 属性:定义了项目的缩小比例,当空间不足的情况下会等比例的缩小,如果 定义个 item 的 flow-shrink...为 0,则为不缩小 flex-basis 属性:定义了在分配多余的空间项目占据的空间

4.4K10

前端面试之CSS重点概念精讲

flex-grow flex-grow属性定义项目的「放大比例」,「默认为0,即如果存在剩余空间,也不放大」。 如果所有项目flex-grow属性都为1,则它们将「等分剩余空间」(如果有的话)。...flex-shrink flex-shrink属性定义了项目的「缩小比例」,「默认为1,即如果空间不足,该项目将缩小」。...如果所有项目flex-shrink属性都为1,当空间不足时,都将「等比例缩小」。如果一个项目flex-shrink属性为0,其他项目都为1,则空间不足时,前者不缩小。...flex-basis属性 flex-basis属性定义了在「分配多余空间之前」,项目占据的主轴空间main size。浏览器根据这个属性,计算主轴是否有多余空间。...」; ❞ 在CSS属性改变时,重渲染会分为「回流」、「重绘」和「直接合成」三种情况,分别对应从「布局定位」/「图层绘制」/「合成显示」开始,再走一遍上面的流程。

2.4K30

给萌新的Flexbox简易入门教程

、浮动和绝对定位之类的各种变通方案。...flexbox来救场吧。 让我们Flex flexbox的要点是出现在display属性上的flex值,它需要被设置在容器元素上。如此设置会它的子元素变成“弹性项目flex item)”。...这些弹性项目拥有一些易于使用的默认属性。比如,它们被紧挨着放置,那些没有特别指明宽度的元素自动占满了剩余的空间。...HTML源码独立于CSS的Flexbox样式 但你的客户并不满足。她想成为页面的第一个元素,显示在之前。...如果你想它们之间有一些空间,但是不让第一个元素的左边有空间,也不想最后一个元素的右边有空间,你可以把.main(即它们的父容器)里的justify-content设置为space-between。

3.2K20

不受控制的 position:fixed

可能有部分同学还没 get 到上面这句话的意思,通俗的讲就是指定了 position:fixed 的元素,如果其祖先元素存在非 none 的 transform 值 ,那么该元素将相对于设定了 transform...而本文提到了生成了 Stacking Context 的元素会影响该元素定位关系 。按照上面的说法,堆叠上下文的创建,该元素会影响其子元素的固定定位。...So,如何触发一个元素形成 堆叠上下文 ?...方法如下(参考自 MDN): 根元素 (HTML), z-index 值不为 "auto"的 绝对/相对定位, 一个 z-index 值不为 "auto"的 flex 项目 (flex item),即:...这方面的问题,可以看看这篇文章:移动端web页面使用position:fixed问题总结 最后 系列 CSS 文章汇总在我的 Github ,持续更新,欢迎点个 star 订阅收藏。

2.1K40

CSS&HTML面经专题——(三)CSS定位盒模型经典布局浮动布局与BFC

,有两个轴,一个主轴一个交叉轴,常用属性: flex-direction属性决定主轴的方向(即项目的排列方向) flex-wrap属性定义,如果一条轴线排不下,如何换行。...flex-flow justify-content属性定义了项目在主轴上的对齐方式 align-items属性定义项目在交叉轴上如何对齐 align-content flexbox中的align-self...(1)flex-grow:定义项目的的放大比例 默认为0,即使存在剩余空间,也不会放大; 所有项目flex-grow为1:等分剩余空间(自动放大占位); flex-grow为n的项目,占据的空间(放大的比例...(2)flex-shrink:定义项目的缩小比例 默认为1,如果空间不足,该项目将缩小 所有项目flex-shrink为1:当空间不足时,缩小的比例相同; flex-shrink为0:空间不足时,该项目不会缩小...(3)flex-basis: 定义在分配多余空间之前,项目占据的主轴空间(main size),浏览器根据此属性计算主轴是否有多余空间 默认值为auto,即项目原本大小; 设置后项目将占据固定空间

1.9K30

每天10个前端小知识 【Day 13】

Position:absolute绝对定位,是相对于谁的定位CSS position属性用于指定一个元素在文档中的定位方式。...absolute的元素会被移出正常文档流,并不为元素预留空间,通过指定元素相对于最近的 非 static 定位祖先元素 的偏移,来确定元素位置。...怎么使用 CSS 如何画一个三角形 盒子模型,默认情况下是一个矩形,实现也很简单。...优点: 结构简单直观 可以结合 flex的其他功能实现更多效果,例如使用 order属性调整显示顺序,主体内容优先加载,但展示在中间。...完全兼容 CSS 代码,可以方便地应用到老项目中。LESS 只是在 CSS 语法上做了扩展,所以老的 CSS 代码也可以与 LESS 代码一同编译。 8. 怎么实现单行、多行文本溢出隐藏?

11710

CSS弹性布局(Flex) 详解

定位布局positon 随着页面复杂度的不断提升, 更多的属性被添加到HTML, CSS中 其中, CSS中的position属性具有革命性 使页面中的元素可以摆脱表格单元格的束缚,可以定位到窗口中的任何位置...: 序号 属性 描述 1 flex-direction 主轴方向(即项目排列方向) 2 flex-wrap 当多个项目在一行排列不下时,如何换行 3 flex-flow flex-direction,flex-wrap...有相同的功能,不过不同点是它是用来每一个单行的容器居中而不是整个容器居中 align-content属性只适用于多行的flex容器,并且当交叉轴上有多余空间使flex容器内的flex线对齐 align-items...3 flex-shrink 定义了项目的缩小比例,默认为1,即如何空间不足,则自动缩小项目来填充 4 flex-basis 定义了项目占据的主轴空间,默认值为auto, 即项目原始大小 5 flex...CSS语法: .item { flex-grow: number; /* default: 0 */ } 空间分配方案小案例: flex-grow: 1: 每个项目等分, 都占全部的空间的N分之一

1.1K31

【愚公系列】2023年03月 其他-Web前端基础面试题(CSS_42道)

对于容器中的项目,可以使用order属性来指定项目的排列顺序,还可以使用flex-grow来指定当排列空间有剩余的时候,项目的放大比例,还可以使用flex-shrink来指定当排列空间不足时,项目的缩小比例...34、CSS优先级如何排序? 优先级如下: !important>style(内联)>ld(权重100)> class(权重10)>标签(权重1)。同类别的样式中,后面的会覆盖前面的。...以下6个属性设置在容器上: flex-direction属性决定主轴的方向(即项目的排列方向)。 flex-wrap属性定义,如果一条轴线排不下,如何换行。...以下6个属性设置在项目上: order属性定义项目的排列顺序。数值越小,排列越靠前,默认为0。 flex-grow属性定义项目的放大比例,默认为0,即如果存在剩余空间,也不放大。...flex-shrink属性定义了项目的缩小比例,默认为1,即如果空间不足,该项目将缩小。 flex-basis属性定义了在分配多余空间之前,项目占据的主轴空间

3K20

148道 CSS 与 JavaScript 基础面试题

CSS 优先级算法如何计算? 相关知识点: CSS的优先级是根据样式声明的特殊性值来判断的。...以下6个属性设置在容器上: flex-direction属性决定主轴的方向(即项目的排列方向)。 flex-wrap属性定义,如果一条轴线排不下,如何换行。...以下6个属性设置在项目上: order属性 定义项目的排列顺序。数值越小,排列越靠前,默认为0。 flex-grow属性 定义项目的放大比例,默认为0,即如果存在剩余空间,也不放大。...flex-shrink属性 定义了项目的缩小比例,默认为1,即如果空间不足,该项目将缩小。 flex-basis属性 定义了在分配多余空间之前,项目占据的主轴空间。...浏览器根据这个属性,计算主轴是否有多余空间。它的默认值为auto,即项目的本来大小。

1.1K20

详解瀑布流布局的5种实现及oject-fit属性,附源码

object-fit CSS3 的 object-fit 属性是用来指定「可替换元素」的内容是如何适应到容器中的。它的值有 5 种。...2px solid red; img { width: 100%; height: 100%; object-fit: contain; } } 看到上面的显示效果...但为什么内容显示却有不同的效果呢,这我产生了疑惑。本着发现探索的精神,就去寻找答案了。 W3c 是这么描述的:标签创建的是被引用图像的占位空间。...Flex布局 首先给图片一个固定高度,然后利用flex-grow的比例分配的特性 给图片设定object-fit属性其保持比例充满容器 <div class="waterfall-height-<em>css</em>...<em>flex</em>-grow: 99999; } } 因为<em>flex</em>-grow: 99999的值非常大,所以会把最后一行的剩余<em>空间</em>几乎全部占用,导致图片分配不了,只会按照原尺寸显示,就不会缩放占满一行啦

1.2K20
领券