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

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

如果垂直方向上有多个div,他们都有margin,那垂直的margin会合并 上述代码两个child之间的间距是20px,不是30px,因为垂直的margin会合并。...两个子设置display为table-cell,这样他们其实就相当于table的两个单元格。由于我们要固定左边的宽度,table应该使用布局优先,即table-layout: fixed;。...table-layout有两个值: fixed: 是表格布局优先,列宽由表格宽度和列宽度设定,而与单元格的内容无关。...flex 又遇到flex了,用flex做这种布局太简单了,直接设置display: flex, 左子定宽,右子设置flex:1就行了,如果要间距,可以直接用margin。...所以将超出的100px分成7份,每份约14px,然后按照flex-shrink进行收缩。

2.7K10

寒假提升 | Day10 CSS 第八部分

来进行布局的方案称之为flex布局(flex layout); flex布局是目前web开发中使用最多的布局方案: flex 布局(Flexible 布局,弹性布局); 目前特别在移动端可以说已经完全普及...; 在PC端也几乎已经完全普及和使用, 只有非常少数的网站依然在用浮动来布局; 为什么需要flex布局呢?...举例说明: 比如在内容里面垂直居中一个块内容。 比如使容器的所有子项等分可用宽度/高度,不管有多少宽度/高度可用。...比如使多列布局中的所有列采用相同的高度,即使它们包含的内容量不同。...axis 方向的 size 为 auto 时,会 自动拉伸填充 flex container flex-start:与 cross start 对齐 flex-end:与 cross end 对齐

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

开源UI界面布局框架MyLayout1.9发布

在选择布局时我将使用布局类的优先列出来,供大家参考: ---- 浮动布局->流式布局->线性布局->弹性布局->栅格布局->相对布局->框架布局->表格布局->路径布局 ---- 您可以从如下地址下载这两个版本的工程...3.视图尺寸和位置的压缩 在一些场景中我们希望当所有子视图的尺寸总和超过布局视图的尺寸时为了能让所有子视图都得到完全的显示需要对子视图的尺寸进行适当的压缩,对于位置也是如此。...拉伸间距时第一个以及最后一个子视图离布局视图的间距将是0,子视图之间的间距将会平分剩余的空间。...下面的界面展示了Between和Around的区别: 位置 尺寸的拉伸和环绕 在以前的版本中如果我们希望填充拉伸所有子视图之间的尺寸来占满布局视图的尺寸时我们可以通过MyGravity_Horz_Fill...MyGravity_Horz_Stretch以及MyGravity_Vert_Stretch则效果和填充是一样的,只不过它只会拉伸那些没有设置尺寸约束的子视图以及设置了尺寸自适应的子视图(设置了尺寸自适应的布局视图除外

1.7K10

从零开始学 Web 之 CSS3(七)多列布局,伸缩布局

注意: 当所有子元素的宽度之和大于盒子的宽度时,所有子元素的宽度会平均收缩,变窄,以适应盒子的宽度。 但是这样就不是我想要的了,我想要其换行怎么办?...示例: .first{ flex-grow: 1; /*first子元素宽度拉伸拉伸的宽度占据元素剩余空间的三分之一*/ } .second{ flex-grow: 0;/*second...子元素宽度不拉伸*/ } .third{ flex-grow: 2;/*third子元素宽度拉伸拉伸的宽度占据元素剩余空间的三分之二*/ } 3.2、flex-shrink 同 flex-grow...相反,flex-grow 设置的是盒子剩余空间的比例分配, flex-shrink 设置的是,如果盒子宽度不够时,子元素的收缩比例。...stretch:(默认值)拉伸:让子元素在侧轴方向上进行拉伸填充满整个侧轴方向。

4K10

【CSS】1287- 一行 CSS 实现 10 种强大的布局

.parent { display: grid; place-items: center; } 这使得内容能够在内完美居中,不管内部大小。 02....正因为如此,如果您想让您的框填充到它们的 大小,缩小到更小的尺寸,但不拉伸填充任何额外的空间,请写入:flex: 0 1 。...如果您确实希望框在换到下一行时拉伸填充空间,请将 设置为 1 ,所以应该是这样: .parent { display: flex; } .child { flex:...但是,这次是水平尺寸(宽度)不是垂直尺寸(高度)。...您可以看到,当我拉伸和收缩尺寸时,这张卡片的宽度会增加到其最大限制点并减小到其限制最小点。然后它保持在的中心,因为我们已经应用了其他的属性来将它居中。

4.6K20

善用TableLayout表格布局,事半功倍

表格布局中,列的宽度由该列中最宽的那个单元格决定,整个表格布局的宽度则取决于容器的宽度(默认总是占满容器本身)。 在表格布局管理器中,可以为单元格设置如下3种行为方式。...Shrinkable:如果某个列被设为Shrinkable,那么该列的所有单元格的宽度可以被收缩,以保证该表格能适应容器的宽度。...Stretchable:如果某个列被设为Stretchable,那么该列的所有单元格的宽度可以被拉伸,以保证组件能完全填满表格空余空间。...同样使用WidgetSample工程,继续使用app/main/res/layout/目录下的activity_main.xml文件,在其中填充如下代码片段: <?...需要注意的是TableRow不需要设置宽度layout_width和高度layoutJieight,其宽度一定是match_parent,即自动填充容器,高度一定为wrap_content,即根据内容改变高度

1.6K90

给萌新的Flexbox简易入门教程

原文出处:https://www.sitepoint.com/flexbox-css-flexible-box-layout/ 近几年,CSS领域出现了一些复杂的专用布局工具,用以代替原有的诸如使用表格...那好,同样的,flexbox是你的朋友(虽然像在此例中,可能你得跟你的客户好好谈谈,不是跟随指示)。...可以的值有center,flex-start,flex-end,stretch(默认值:子项被拉伸以适应它们的容器)和baseline(子项被放置在容器的baseline上)。...例子在flexbox-demo-7.html。 那仅仅是对flex属性最简单的应用。同样可以设置flex-grow,flex-shrink和flex-basis这些值,不过那超出本文的话题范围了。...它非常稳固和可靠,让以前那些我们每天使用的诸如使 让容器坍缩之类的奇技淫巧,成为了过去。

3.2K20

CSS布局解决方案(上)

(1)原理、用法 原理:先将子框设置为块表格来显示(类似 ),再设置子框居中以达到水平居中。...当然,在此之前,我们需要设置框为相对定位,使框成为子框的相对框。...:通过将框转化为一个表格单元格显示(类似 和 ),再通过设置属性,使表格单元格内容垂直居中以达到垂直居中。...将子框设置为绝对定位,移动子框,使子框上边距离相对框上边边框的距离为相对框高度的一半,再通过向上移动子框的一半高度以达到垂直居中。当然,在此之前,我们需要设置框为相对定位,使框成为子框的相对框。...用法:先将框设置为display:table、width:100%、table-layout:fixed,再设置左右框display:table-cell,最后设置左框width、padding-right

1.2K40

Flex布局弹性布局模型

Flex布局非常适合结构化布局。 设置方式:元素添加 display:flex,子元素可以自带的挤压或拉伸。...:space-evenly; 间距加载子的两侧 视觉效果:子之间的距离是两头距离的2倍 justify-content:spance-around; 侧轴对齐方式 使用 align-items...: center; } 注意:当侧轴方向不给宽高值或者给 stetchi时,弹性盒子会自动拉伸到跟一样高。...若给了高或拉伸后,弹性盒子的宽高为给出的宽高值或内容充满的值。 伸缩比 使用 flex属性修改弹性盒子伸缩比 语法: flex:值; 取值为整数值,按份计算,只占用剩余尺寸。...因为 Flex布局中都是是弹性盒子,所以伸缩比的好处是根据盒子的变化变化,当浏览器窗口发生变化后,弹性盒子的尺寸也会随着容器变化后剩余的尺寸去继续计算。

76910

CSS笔记

可以为拥有指定属性的 HTML 元素设置样式,不仅限于 class 和 id 属性。...empty-cells 设置是否显示表格中的空单元格。 table-layout 设置显示单元、行和列的算法。...隐藏模块 opacity 属性 指定了一个元素的透明度,0:元素完全透明(即元素不可见);(0.0-1.0):元素半透明(即元素后面的背景可见);1:元素完全不透明(即元素后面的背景不可见)。...对容器的印象 3. 对相邻元素的影响 3. 行内元素和块元素 行内元素 display:inline 行内元素会在一条直线上排列(默认宽度只与内容有关),都是同一行的,水平方向排列。...行内元素设置width无效,height无效(可以设置line-height),margin上下无效,padding上下无效 块元素 display:block 块元素各占据一行(默认宽度是它本身容器的

2.2K10

CSS样式

:bottom; } 表格填充:如果在表的内容中控制空格之间的边框,应使用td和th元素的填充属性 td { padding:15px; } 表格颜色:下面的例子指定边框的颜色,和th元素的背景和文本颜色...| flex-end | center flex-start 弹性项目向行头紧挨着填充。...,对布局是不利的,所以我们必须清除副作用 解决方案有很多种: 元素设置高度 受影响的元素增加clear属性 overflow清除浮动 伪对象方式 overflow清除浮动 如果有塌陷,并且同级元素也收到了影响...,可以使用overflow清除浮动 标签的样式里面加: overflow:hidden;clear: both; .container{ width: 350px; border:...1px solid red; overflow: hidden; clear: both; } 伪对象方式 如果有塌陷,并且同级元素也收到了影响,还可以使用伪对象方式处理 为标签添加伪类

23630

理解CSS布局和块格式化上下文

[image.png] 在进行html布局及css编写的时候,你是否遇到过这样的问题: 子元素设置浮动脱离文档流后,元素无法将其完全包裹 子元素浮动实现两栏布局时,另一个子元素与浮动子元素重叠 垂直方向的外边距...为 inline-block) 表格单元格(元素的 display为 table-cell,HTML表格单元格默认为该值) 表格标题(元素的 display 为 table-caption,HTML表格标题默认为该值...常见应用场景 使元素包含浮动元素 下面例子解释如何让浮动内容和元素等高,清楚浮动负面影响 html I am a floated...float: left; width: 200px; margin: 0 20px 0 0; } 通过给左侧文字设置向左浮动实现文字环绕效果是很常见的做法,当文本足够长时,会看到如下效果,元素可以完全包裹子元素...[enter image description here] 这时候为元素设置overflow: auto或者除invisible默认值之外的任何有效值都能创建BFC解决这个问题,使元素包含浮动元素

2.1K30

CSS中各种布局的背后(*FC)

描述元素跟它的元素与兄弟元素之间的表现。...有些块盒,比如表格不是块容器盒。相反,一些块容器盒,比如非替换行内块及非替换表格单元格,不是盒。描述元素跟它的后代之间的影响。 块盒(Block boxes):同时是块容器盒的块盒。...inline-table 和 inline-block boxes)中的文字和空格做出拉伸。...垂直居中:创建一个IFC,用其中一个元素撑开元素的高度,然后设置其 vertical-align:middle,其他行内元素则可以在此元素下垂直居中。...布局规则 设置为 flex 的容器被渲染为一个块元素 设置为 inline-flex 的容器则渲染为一个行内元素 弹性容器中的每一个子元素都是一个弹性项目。弹性项目可以是任意数量的。

2.1K50

分享 10 个 常用且必须要掌握的 CSS 知识点

如何使用 CSS flex-box 绘制布局? 第 1 步:创建一个 flex container。 为了使 flex container成为容器,我们将 display 属性设置为 flex。...d) space-between: space-between 值仅在弹性项目之间添加空间,不是分别在第一个和最后一个元素之前或结尾。...e) stretch 拉伸拉伸弹性项目以填充弹性容器。如果未指定其他值,则这是 align-items 属性的默认值。...f) stretch 拉伸值相对于行容器中最长的项目垂直拉伸弹性行。 第 2 步:应用于弹性项目的属性: 这些是用于 flex 容器的直接子的属性。...CSS 网格布局在将大型网页划分为小组件并根据大小、位置和优先或重要性定义这些组件之间的关系方面做得非常出色。 此外,CSS 网格布局有点类似于表格,因为它像表格一样将大布局划分为行和列。

6.8K10

.移动端常见布局

通过盒子宽度设置成百分比来根据屏幕的宽度来进行伸缩,不受固定像素限制,内容向两侧填充。...总结:就是通过给盒子添加flex属性,(display: flex;)来控制子盒子的位置和排列方式 6.2.3 flex布局项常见属性 以下六个属性是对元素设置的 flex -direction...子元素是跟着主轴来排列的 属性值 说明 row 默认值从左到右 row-reverse 从右到左 column 从上到下 column-reverse 从下到上 6.2.3.2 justify-content...、下对齐、居中和拉伸 align-content适用于换行(多行)情况下(单行情况下无效),可设置上对齐、下对齐、居中、拉伸以及平均分配剩余空间等属性值 6.2.3.6 flex-flow flex-flow...flex布局子项常见属性 6.2.4.1flex属性 flex属性定义子项目分配剩余空间,用flex来表示占多少份数 可为数字,也可为百分比,百分比相对于来说 6.2.4.2align-self控制子项自己在侧轴上的排列方式

74931

由FlexBox算法强力驱动的Weex布局引擎

; // 注意下面这些数组里面的值初始化为undefined,不是0 node->style.dimensions[CSS_WIDTH] = CSS_UNDEFINED; node->style.dimensions...接着下面数组里面存的都是UNDEFINED,不是0,因为0会和结构体里面的0冲突。 最后缓存的变量初始化都为-1。...= NULL; css_align_t alignItem = getAlignItem(node, child); // 在递归layout之前,先预填充侧轴上可以被拉伸的子视图...= remainingMainDim / totalFlexible; // 不可以拉伸的子视图可以在视图内部overflow,在这种情况下,假设没有可用的拉伸space...第一种测试模型是随机生成完全不相关联的View。如下图: ? 第二种测试模型是生成相互嵌套的View。嵌套规则设置一个简单的:子视图依次比视图高度少一个像素。

2.5K40

CSS Grid 那些鲜为人知的内幕

❝Grid 布局远比 Flex 布局强大。 ❞ Grid 相关术语 容器 容器是应用了 display: grid 样式的元素。它是所有网格项的「直接元素」。...Flexbox 设计用于沿单个轴分配项目,这个我们在CSS_Flex 那些鲜为人知的内幕有过介绍 Grid是我们今天的主角 Position[4]用于设计一些脱离文档流的元素 Table布局[5]设计用于表格数据...其实,网格容器仍然使用流式布局,流式布局中的块元素会垂直增长以容纳其内容。「只有子元素使用网格布局进行排列」。...,布局排布的原理是一样的,只不过Grid和Flex最大的区别在于,我们正在「对齐列,不是项本身」。...,就像流式布局中的 会横向拉伸以填满其容器一样。

11210

前端面试题2(CSS)

Y轴的铺放,从而实现一种等高列的假像 模仿表格布局等高列效果:兼容性不好,在ie6-7无法正常运行 css3 flexbox 布局: .container{display: flex; align-items...50%*/ margin-top: -150px; /*自身高度一半*/ } 未知高度的块父子元素居中,模拟表格布局 缺点:IE67不兼容, overflow:hidden 失效 .container...px 相对于显示器屏幕分辨率,无法用浏览器字体放大功能 em 值并不是固定的,会继承的字体大小: em = 像素值 / font-size 解释下什么是浮动和它的工作原理?...元素竖向的百分比设定是相对于容器的宽度,不是高度 全屏滚动的原理是什么? 用到了CSS的那些属性?...响应式设计就是网站能够兼容多个终端,不是为每个终端做一个特定的版本 基本原理是利用CSS3媒体查询,为不同尺寸的设备适配不同样式 对于低版本的IE,可采用JS获取屏幕宽度,然后通过resize方法来实现兼容

2.8K11

FLOAT坍塌原理及解决方案

; 绝对定位:在绝对定位模型中,一个框会从排版流中完全脱离出来(它对后续的兄弟没有影响),并相对其包含块来指定其位置(包括 absolute, fixed )。...表格标题 display: table-caption overflow不为visible的元素 弹性盒 flex boxs (display: flex 或 inline-flex) 一个BFC包含创建该上下文元素的所有子元素...简单地说,就是浮动会脱离普通流(属于一种比较‘特殊’的脱离,其他内容还会围绕在浮动元素周围),并且创建了新的BFC,元素不具备产生 BFC 的条件,这时候元素无法感知到它的存在,所以它的高度为0。....parent-container::after {   content: "";  /* 空内容的默认高度为0,避免生成的内容破坏原有布局的高度 */   display: block;  /* 使生成的内容以块元素显示...display: table .parent-container { width: 400px; border: 5px solid #FF6B5B; display: table; //使元素拥有创建

39520
领券