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

Grid layout + 媒体查询轻易实现常用响应式布局

;display: inline-grid;display: flow-root;布局模式使用场景擅长解决布局问题不擅长解决布局问题优势劣势block段落、容器、导航栏垂直布局、容器尺寸控制水平布局复杂性...、内联元素布局易于理解和使用、强大高控制布局较为僵硬、不适合复杂布局inline文本、图像水平布局、内联元素排列垂直边距不生效、大小控制与文本流自然融合无法设置高、边距和填充有限制inline-block...网格布局基本使用创建一个简单网格容器:.container { display: grid; grid-template-columns: repeat(3, 1fr); grid-gap:...使用行和列来布局项目:.item { grid-column: 1 / 3; grid-row: 1;}.item 将占据从第一列到第三列之前空间(即两列),并位于第一行。...);}这将创建尽可能多列,每列至少150px,但不会超过可用空间。

40731

总结了 42 种前端常用布局方案

使用text-align属性 若元素为行内块级元素,也就是 display: inline-block 元素,可以通过为其父元素设置t ext-align: center 实现水平居中。...定块级元素水平居中(方法一) 对于定块级元素实现水平居中,最简单一种方式就是 margin: 0 auto;,但是值得注意是一定需要设置宽度。...行内块级元素垂直居中 若元素是行内块级元素, 基本思想是子元素使用display: inline-block, vertical-align: middle;并让父元素行高等同于高度。...两列布局 所谓两列布局就是一列定(也有可能由子元素决定宽度),一列自适应布局。最终效果如下所示: 这里用到 HTML 结构如下: <!...4. float+overflow完成左列定右列自适应 步骤如下: 左侧元素开始浮动 右侧自适应元素设置overflow会创建一个BFC完成自适应 实现CSS代码如下: .left { /* 1.

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

总结了42种前端常用布局方案

使用text-align属性 若元素为行内块级元素,也就是 display: inline-block 元素,可以通过为其父元素设置t ext-align: center 实现水平居中。...定块级元素水平居中(方法一) 对于定块级元素实现水平居中,最简单一种方式就是 margin: 0 auto;,但是值得注意是一定需要设置宽度。...行内块级元素垂直居中 若元素是行内块级元素, 基本思想是子元素使用display: inline-block, vertical-align: middle;并让父元素行高等同于高度。...两列布局 所谓两列布局就是一列定(也有可能由子元素决定宽度),一列自适应布局。最终效果如下所示: 这里用到 HTML 结构如下: <!...4. float+overflow完成左列定右列自适应 步骤如下: 左侧元素开始浮动 右侧自适应元素设置overflow会创建一个BFC完成自适应 实现CSS代码如下: .left { /* 1.

4K30

CSS实现垂直居中布局

元素高 position+margin 使用margin: auto使水平居中,将子容器设定为relative以在不脱离文档流情况下偏移50%,由于本身子容器占用一定高,会将其撑下,使用margin...父元素不定高 flex flex布局可以说是布局神器,极其强大,现在大部分浏览器都兼容性flex布局 <div class="dy-parent" style="<em>display</em>: flex;justify-content...父<em>元素</em>不定<em>宽</em>高 <em>grid</em> <em>Grid</em><em>布局</em>将网页划分成一个个网格,可以任意组合不同<em>的</em>网格,做出各种各样<em>的</em><em>布局</em> <em>Grid</em><em>布局</em>与Flex<em>布局</em>有一定<em>的</em>相似性,都可以指定容器内部多个项目的位置。...Flex <em>布局</em>是轴线<em>布局</em>,只能指定"项目"针对轴线位置,可以看作是一维布局Grid 布局则是将容器划分成"行"和"列",产生单元格,然后指定"项目所在"单元格,可以看作是二维布局。...-- 父元素不定grid --> <div class="dy-parent" style="<em>display</em>: <em>grid</em>;justify-content: center;align-content

1.8K30

最强大 CSS 布局 —— Grid 布局

容器和项目:我们通过在元素上声明 displaygriddisplay:inline-grid创建一个网格容器。一旦我们这样做,这个元素所有直系子元素将成为网格项目。...Grid 会为我们创建编号网格线来让我们来定位每一个网格元素。m 列有 m + 1 根垂直网格线,n 行有 n + 1 跟水平网格线。比如上图示例中就有 4 根垂直网格线。...我们先来看容器属性 display 属性 display 属性演示[3] 我们通过在元素上声明 displaygriddisplay:inline-grid创建一个网格容器。...一般这个属性跟网格元素 grid-area 一起使用,我们在这里一起介绍。...如果你在网格定义之外又放了一些东西,或者因为内容数量而需要更多网格轨道时候,网格将会在隐式网格中创建行和列 假如有多余网格(也就是上面提到隐式网格),那么它行高和列可以根据 grid-auto-columns

2.3K20

如何使用Flexbox和CSS Grid,实现高效布局

幸运是,在现代网页设计时代,使用 Flexbox 和 CSS Grid 来对齐元素,变得相对容易起来。 使用 Flexbox 可以使元素对齐变得容易,因此 Flexbox 已经被广泛使用了。...在不久将来,当 CSS Grid 布局获得完整浏览器支持时,设计人员就能够利用每个 CSS 组合优势,来创建最有效和最有趣布局设计。....container { display: flex; flex-direction: column; } 通过 display: flex; 自动创建一个 header(header...尤其在控制列表元素样式和设置导航与按钮之间间距方面,特别有用。 使用 CSS Grid 创建布局 为了测试效率,接下来使用 CSS Grid 创建相同基本布局。...和 CSS Grid 创建布局 最后,我们通过组合 Flexbox 和 CSS Grid创建更复杂布局

3.4K10

栈之前端 | 6.CSS3基础知识之网页几种布局方法学习(2)

CSS 布局相关属性一览 # 传统布局 display (前已学习): 此章节主要几个布局属性,即 flex、grid position (前已学习):此章节主要几个布局属性, 即 静态定位(默认)...# Grid 布局 grid-template-columns 属性: 定义网格列数量及宽度大小,建议使用 fr 单位来设置灵活网格,此单位代表网格容器中可用空间一份(`1fr 1fr 1fr`...网格布局相关属性 column-count: 创建指定数量列 column-width: 创建列具有弹性宽度(尽可能按照宽度创建列,若容器与宽度成比例数量) column-fill:此属性控制在分解为列时如何平衡元素内容.../* 格式 */ column-count: 3; column-count: auto; column-width - 列设置 描述: 此属性设置多列布局理想列,容器将创建尽可能多列,其中任何列宽度都不小于列值...温馨提示: 弹性盒设计上是一维, 它处理单个维度,行或者列; 我们不能创建一个对行列严格要求网格,意即如果我们要在我们网格上使用弹性盒的话,我们仍然需要计算浮动布局百分比。

21020

栈之前端 | 6.CSS3基础知识之网页几种布局方法学习(1)

然后,一个块级元素会填充其父元素所有的行向空间,并沿着其块向伸长以容纳其内容,行级元素大小就是其本身大小;如果你想要控制行级元素 display 属性,请使用 CSS 将其设置为块级元素(例如,使用...总之,当你使用 css 创建一个布局时,此时默认正常布局流将会被改变,通常使用 display、float、position 、表格、多列布局样式设置会覆盖默认布局, 这些我们在上一章【5.CSS基础知识之定位浮动学习笔记...值来转到 grid 布局 display: grid, 并使用 grid-template-rows 和 grid-template-columns 两个属性定义了一些行和列轨道,最后使用grid-gap..."a c c"; /* 两行 三列 */ /* 使用 . 来占位元素位置。 */ 亲,文章就要看完了,不关注一下【栈工程师修炼指南】吗?...示例演示 示例 1.使用 grid-template-areas 属性放置元素,来区别使用grid-column、grid-row布局网格方法, 此处仍然使用上一个示例文件中html内容。

25220

CSS 面试要点:盒模型

# 使用 BFC 解决边距重叠问题 块格式化上下文(Block Formatting Context,BFC) (opens new window) 是 Web 页面的可视 CSS 渲染一部分,是块级盒子布局过程发生区域...BFC 决定了元素如何对其内容进行定位,以及与其他元素关系和相互作用。当设计到可视化布局时候,BFC 提供了一个环境,HTML 元素在这个环境中按照一定规则进行布局。...一个环境中元素不会影响到其他环境中布局。...计算BFC高度时候,浮动元素也会参与计算(清除浮动) # 创建 BFC 方式 根元素() 浮动元素 (float 值不为 none) 绝对定位元素 (position 值为 absolute...值为 flex 或 inline-flex 元素直接子元素),如果它们本身既不是 flex、grid 也不是 table 容器 网格元素display 值为 grid 或 inline-grid

53160

简明 CSS Grid 布局教程

来自字节游戏中台 - 杨杰强同学内部分享 网格布局是由一系列水平及垂直线构成一种布局模式,使用网格,我们能够将设计元素进行排列,帮助我们设计一系列具有固定位置以及宽度元素页面,使我们网站页面更加统一...一、定义一个网格 我们可以将 display 属性设为 grid 来定义一个网格。与弹性盒子一样,将父容器改为网格布局后,他直接子项会变为网格项。....container { display: grid; grid-template-columns: 1fr 1fr; } 上面我们创建了等分两列。...150px列,剩余 50px 不足以再创建一列,所以第四个元素就被放置到了第二行。...另外,虽然 gap 属性在 grid 布局兼容性挺好,但在 flex 布局兼容性目前看起来还不行: 二、放置元素 2.1 基于线放置元素 我们网格中有许多分隔线,我们可以根据这些分割线来放置元素

2.5K20

(译)一篇对css网格布局介绍

综合运用它们,可以帮助我们在css中实现在之前无法想象布局 基础知识 1、定义表格容器 Grid 布局开始都是开始于创建一个布局容器,可以通过在父元素声明display:grid;。....parent { display: grid; } ? 现在所有直属子元素都是表格项目了。然后这并没有改变子元素显示方式,因为我们只创建了一列。这里我们需要创建网格轨道来创建更多列。...现在我们有了3列,并分别给了他们100px 100px 和 200px宽度。如果我们继续添加子元素,新增加元素素会继续按照100px 100px 和 200px宽度顺序 ?...最后障碍 最后一个问题就是当所有的元素都在第一行时候 ? 使用auto-fill,Grid 创建尽可能多元素放置在容器内。所以当没有这么多元素时候,会在后面留下一块空白。...auto-fill = 使用轨道充满空间 auto-fit = 使用元素充满空间 .parent { display: grid; grid-template-columns: repeat(auto-fit

3.3K30

一篇文章搞定多列布局--等宽,等高,自适应

多列布局在一个网页设计中非常常见,不仅可以用来做外部容器布局,在一些局部也经常出现多列布局,比如下面圈出来都是多列布局: 定 + 自适应 定 | 自适应 我们先讲一个最简单两列布局,左边列定...但如果我给上面第一个child再套一个容器,使用overflow:hidden;他就成了一个BFC,根据BFC特性,BFC元素不会影响外面的元素,margin就不会合并,两个child间距就是30px...两个子级设置display为table-cell,这样他们其实就相当于table两个单元格。由于我们要固定左边宽度,父级table应该使用布局优先,即table-layout: fixed;。...不定 + 自适应 两列布局,左边不定,宽度由内容决定,右边自适应常见解决方案: 不定:float + overflow 跟前面定写法很像,只是左边子级宽度不能写死了,要留给它元素决定。...我们这里主要用到了grid布局两个属性: grid-template-columns: 指定grid布局排列,支持绝对值(像素),百分比,auto。

2.6K10

新时代布局中一些有意思特性

首先,我们只需要设定元素,或者元素高,再通过 aspect-ratio 属性,即可以控制元素整体宽高: <div class="height"...其次,设定了 aspect-ratio 元素元素其中一个发生变化,另外一个会跟随变化: 宽高比1:1 <div...: masonry 是 firefox 在 firefox 87 开始支持一种基于 grid 布局快速创建瀑布流布局方式。...控制每个 grid item 所占格子大小,但是这样做成本太高了,元素一多,计算量也非常大,并且还是在我们提前知道每个元素前提下。...而在有了 grid-template-rows: masonry 之后,一切都会变得简单许多,对于一个不确定每个元素高度 4 列 grid 布局: .container { display: grid

1.3K10

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

当父元素使用了transform时候,会以父元素定位。 sticky 粘性定位,可以简单理解为relative和fixed布局混合。...这与之前讲到flex一维布局不相同, 设置display:grid/inline-grid元素就是网格布局容器,这样就能出发浏览器渲染引擎网格布局算法。...属性 同样,Grid 布局属性可以分为两大类: 容器属性, 项目属性 关于容器属性有如下: display 属性 文章开头讲到,在元素上设置displaygriddisplay:inline-grid...来创建一个网格容器 displaygrid 则该容器是一个块级元素 display: inline-grid 则容器元素为行内元素 grid-template-columns 属性,grid-template-rows...stretch:拉伸,占满单元格整个宽度(默认值) 应用场景 文章开头就讲到,Grid是一个强大布局,如一些常见 CSS 布局,如居中,两列布局,三列布局等等是很容易实现,在以前文章中,也有使用

10711

css经典布局——圣杯布局

大家好,又见面了,我是你们朋友栈君。...container中left、center、right依次排布即可 给container设置弹性布局 display: flex; left和right区域定,center设置 flex: 1; 即可...布局 如上图所示,我们把body划分成三行四列网格,其中有5条列网格线 给body元素添加display: grid;属性变成一个grid(网格) 给header元素设置grid-row: 1; 和...给left元素设置grid-row: 2; 和 grid-column: 1/2; 意思是占据第二行网格从第一条列网格线开始到第二条列网格线结束 给center元素设置grid-row: 2; 和...grid-column: 2/4; 意思是占据第二行网格从第二条列网格线开始到第四条列网格线结束 给right元素设置grid-row: 2; 和 grid-column: 4/5; 意思是占据第二行网格从第四条列网格线开始到第五条列网格线结束

2.5K10

前端|Grid实现自适应九宫格布局

1 前言 现在无论是做app还是做网站,宫格布局也是必然存在,那么如何使用css实现自适应九宫格布局呢?下面简单来介绍一下css里面的grid实现九宫格布局。...下面将每一列和行更改为一个 fraction 单位值: .grid {display: grid;//划容器为三个1frgrid-template-columns: 1fr 1fr 1fr;/...总现在是四个 fraction 单位,第二列占据两个 fraction 单位,其它列各占一个 fraction,此时这些子元素都会随着屏幕宽度变化而跟着变化了。...2.3 gap属性 创建宫格布局时,每一个网格之间肯定会有间隙,可以使用grid-gap来控制其大小,代码如下: grid-row-gap:2%; //控制行间隙 grid-column-gap...,这时候高就始终相等了 */ } .grid { display: grid; /*网格布局*/

3K30

IT课程 CSS基础 031_网格布局 Grid

网格布局 Grid 网格是由一系列水平及垂直线构成一种布局模式。根据网格,我们能够将设计元素进行排列,帮助我们设计一系列具有固定位置以及宽度元素页面,使我们网站页面更加统一。...网格容器可以是任何元素,但通常使用 div 元素。 **网格项 (grid item)**:网格项是放置在网格容器中元素。网格项可以是任何元素,但通常使用 div 元素。...网格容器必须设置为 display: griddisplay: inline-grid 才能使用网格布局。...grid-template-columns: 设置网格容器列数和列使用fr、px、em 等单位)。...网格布局 定义固定和自适应、行宽 示例: .grid-example{ display: grid; grid-template-columns: 100px 200px auto

5110
领券