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

译|CSS中的间距,前端开发中各种设置间距的优点缺点及实例

此外,CSS Tricks还在页边距底部和页边距顶部之间进行了投票。61%的开发者更喜欢 margin-bottom 而不是 margin-top。...另一个与边距折叠相关的例子是子节点和父节点。...所以,它将把 .wrapper 元素推到左边,取消那个不需要的空间。 另一个类似的概念是在两边都添加填充,然后边距为负。这是Facebook故事的一个示例: ?...更好的解决方案是通过向父元素添加负边距来取消不需要的间距。 .wrapper { margin-bottom: -16px; } 它用一个等于底部间距的值将元素推到底部。...结果表明,基于 writing-mode 的页边距工作得非常好。 我认为这些用例就足够了。让我们继续一些有趣的概念! 组件封装 大型设计系统包含许多组件。向其直接添加边距是否合乎逻辑?

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

    深入学习下 CSS 间距相关的知识

    边距折叠 简而言之,当两个垂直元素有一个边距,并且其中一个的边距大于另一个时,就会发生边距折叠。 在这种情况下,将使用较大的边距,而忽略另一个边距。...editors=1100 另一个与边距折叠相关的示例是子级和父级,让我们假设以下内容: HTML: div class="parent"> div class="child">I'm the child...因此,导航项的宽度取决于它们的内容。 以下是解决方案: 设置导航项的最小宽度 增加水平填充 在分隔符的左侧添加额外的边距 最简单更好的解决方案是第三种,即添加一个margin-left。...更好的解决方案是通过向父元素添加负边距来取消不需要的间距。 .wrapper { margin-bottom: -16px; } 这就是发生的事情, 它将元素推到底部,其值等于底部间距。...以下是我想到的一些问题: 间隔组件如何在父组件中获取其宽度或高度?它将如何在水平和垂直布局中工作?例如:堆栈内的间隔符与添加左侧空间的间隔符。

    13.5K40

    从头学前端-CSS基础03

    1.盒子模型盒子模型组成:> 盒子模型组成的主要有 边框border,外边距margin ,内边距padding,内容content;- 边框border:> border可以设置元素的边距,边距有三部分...,宽度,验收,颜色> border: border-width || border-style || border-color> 边框四个边可以分开来写,如border-top:> border-collapse...;- 浮动的盒子只会影响后面盒子的标准流,不会影响前面的标准流;div在服务的盒子前面,还是会独占一行;清除浮动很多情况下,父盒子不方便给高度,但子盒子浮动又不占有位置,最后父盒子的高度是0,就会影响到下面的标准流盒子...;- 额外标签法:在最后一个浮动元素的后面添加一个元素,添加样式属性 div style= "clear:both">div;会添加多个无意义的标签- 父级添加overflow属性,设置为auto...,hidden 或scroll- 父元素添加:after伪类; 不需要添加额外标签,- 给父元素添加 双伪元素;before和after; 原理是在父盒子中的第一个元素和最后一个元素添加一个块级元素;图片

    68020

    【面试题】CSS知识点整理(附答案)

    在div的width为固定的情况下,设置height为0,使内容自然溢出,再通过设置padding-bottom使元素有一定高度。...清除浮动常用的四种方式: 父级div定义height 额外标签法:在有浮动的父级元素的末尾插入了一个没有内容的块级元素div 并添加样式clear:both。...负边距[22]是这两种布局中的重中之重 不同点:解决“中间栏div内容不被遮挡”的思路不同 圣杯布局 1.三者都设置向左浮动 2.设置middle宽度为100%; 3.设置负边距, left设置负左边距为...3.设置 负边距,left设置负左边距为100%,right设置负左边距为负的自身宽度 4.设置middle-content的margin值给左右两个子面板留出空间。...对比两者可以发现,双飞翼布局与圣杯布局的主要差别在于: 1.双飞翼布局给主面板(中间元素)添加了一个父标签用来通过margin给子面板腾出空间 2.圣杯布局采用的是padding,而双飞翼布局采用的margin

    1.6K40

    掌握 CSS 浮动的关键

    比如,将多个按钮设置为浮动,可以让它们在一行上显示,节省页面空间。 二、float 属性值 left:左浮动,元素靠上靠左排列。...三、浮动元素的特性 (一)块盒特性 当一个元素浮动后,它必定变为块盒,就像设置了display: block;一样。这意味着它可以设置宽度、高度、边距等块级元素的属性。...即浮动元素的高度会根据其内部的内容自动调整。 margin为auto时,为 0。这意味着如果不明确设置边距,浮动元素的边距会自动设置为 0。 边框、内边距和百分比设置与常规流一致。...> div> 这样,:after伪元素会在父元素的内容之后插入一个新的元素,这个元素会清除浮动,从而使父元素的高度能够正确地包含浮动元素。...这种方法的优点是简单易用,不需要在 HTML 结构中添加额外的元素。同时,它也可以避免一些使用其他方法可能出现的问题,如清除浮动元素的边距问题等。

    7010

    一道面试题来看伪元素、包含块和高度坍塌

    不会发生边距坍塌的情况 根节点元素 水平边距(Horizontal margins)不会崩溃 「如果具有间隙的元素的顶部和底部相邻,他会与后续同级的元素边距一起坍塌,但是不会与父元素底部的一起坍塌(If...image-20200519203941769 可以看到如果在在没有 clearance 的情况下,父元素底部是会随着子元素一起坍塌的,但是如果中间有 clearance 的情况下,父元素的底部则不会坍塌...「如果'min-height'属性为零,并且框没有顶部或底部边框,也没有顶部或底部填充,并且框的'height'为0或'auto',并且框不包含边距,则框自身的边距会折叠 行框,其所有流入子页边距(如果有的话...,当边距全为正数的时候,结果页边距宽度是边距塌陷宽度的最大值。...2.当边距全为负数的时候,取最小值。 3.在存在负边距的情况下,从正边距的最大值中减去负边距的绝对值的最大值。

    1.1K20

    59道CSS面试题(附答案)

    (4)外墙法是指在父元素外面,添加“一道墙”,设置属性 clear:both (5)内墙法是指在父元素内部,浮动元素的最后面,添加“一道墙”,设置属性 clear:both (6)伪元素是指为了少创建元素...解决方法是给父级添加 position:relative (5)PNG图片半透明问题。...display:none隐藏对应的元素,在文档流中不再给它分配空间,它各边的元素会合拢,即脱离文档流。 visibility:hidden隐藏对应的元素,但是在文档流中仍保留原来的空间。...IE6双边距Bug是指在块属性标签float后又有横行的 margin时,在IE6中显示的margin比设置的大浮动IE产生的双倍距离(IE6的双边距问题是指在IE6下,如果对元素设置了浮动,同时又设置了...display:none隐藏对应的元素,在文档布局中不再给它分配空间,它各边的元素会合拢,就当它从来都不存在。 visibility:hidden隐藏对应的元素,但是在文档布局中仍保留原来的空间。

    5K50

    Web-CSS

    left right justify 可以继承父标签的属性 ---- line-height line-height CSS 属性用于设置多行元素的空间量,如多行文本的间距。...auto:让浏览器自己选择一个合适的外边距。有时,在一些特殊情况下,该值可以使元素居中。...外边距重叠 块的上外边距(margin-top)和下外边距(margin-bottom)有时合并(折叠)为单个边距,其大小为单个边距的最大值(或如果它们相等,则仅为其中一个),这种行为称为边距折叠。...绝对定位的元素可以设置外边距(margins),且不会与其他边距合并。...center:所有行朝向容器的中心填充。每行互相紧挨,相对于容器居中对齐。容器的垂直轴起点边和第一行的距离相等于容器的垂直轴终点边和最后一行的距离。 stretch:拉伸所有行来填满剩余空间。

    8.6K20

    CSS 实用手册

    #rgb #rrggbb 的缩写形式,只有在每两位数字相同的情况下可以使用简写,如:#ff0000 -> #f00 #ffaacd -> 无简写 (6). 颜色的英文表示法 6....负值 ④. auto 自动 ,由浏览器计算外边距的值应该是多少,默认情况下,auto 只对左右有效,上下无效,为块级元素设置宽度后,再设置其左右外边距为 auto,该元素能水平居中显示。 ⑤....为父元素增加边框(透明的),弊端:父元素会变高 b. 可以为父元素设置上内边距来取代子元素上外边距,弊端:父元素高度会变高 c....解决的两个问题 ①. 外边距溢出问题 外边距常规的解决方法: A. 为父元素添加边框 B. 使用父元素的内边距,取代子元素的外边距 D....位移 改变元素在 z 轴上的位置 语法:transform:translateZ(z) ④. transform-style 定义如何在 3D 空间中呈现被嵌套的元素 A. flat 默认值,子元素不保留其

    2.7K10

    前端面试题2(CSS)

    给div设置一个宽度,然后添加margin:0 auto属性 div{ width:200px; margin:0 auto; } 居中一个浮动元素 //确定容器的宽高 宽500 高...,采用绝对定位和负边距 .container { position: relative; } .vertical { height: 300px; /*子元素高度*/ position:...要求:三列布局;中间主体内容前置,且宽度自适应;两边内容定宽 好处:重要的内容放在文档流前面可以优先渲染 原理:利用相对定位、浮动、负边距布局,而不添加额外标签 .container {...双飞翼布局:对圣杯布局(使用相对定位,对以后布局有局限性)的改进,消除相对定位布局 原理:主体元素上设置左右边距,预留两翼位置。左右两栏使用浮动和负边距归位,消除相对定位。...添加额外标签,例如 div style="clear:both">div> 使用 br 标签和其自身的 clear 属性,例如 父元素设置 overflow

    2.8K11

    【CSS】CSS 总结 ⑦ ( 定位 | 静态定位 | 相对定位 | 绝对定位 | 子绝父相 | 固定定位 | 使用绝对定位设置水平垂直居中 | 堆叠顺序 | 显示模式 | 元素隐藏 ) ★

    ; 定位由 定位模式 + 边偏移 构成 ; 3、边偏移 边偏移 : 顶部偏移量 : 盒子模型 距离 父容器 上边线 的长度 , 如 : top: 10px ; 底部偏移量 : 盒子模型 距离 父容器...下边线 的长度 , 如 : bottom: 10px ; 左侧偏移量 : 盒子模型 距离 父容器 左边线 的长度 , 如 : left: 10px ; 右侧偏移量 : 盒子模型 距离 父容器 右边线 的长度...( 100, 100 ) 位置上 , 但是无法设置其浮动在其它盒子上方 ; 7、绝对定位 绝对定位 是以 父级元素 为基准 , 设置 边偏移 ; 为 子元素 添加 绝对定位 , 如果 父容器有定位 ,...在 标准流的父盒子 中 , 添加一个 标准流子盒子 ; 如果 子盒子设置 100 像素的外边距 , 父盒子也会被带下来 , 这就是外边距塌陷 ; 下面的示例 1 中 , 父盒子 和 子盒子 没有添加任何外边距...默认为 inherit , 继承自父元素 , 一般默认都是可见的 ; 一般情况下父元素设置不可见 , 子元素也同时不可见 ; visibility 设置属性值 visible , 表示该元素是可见的

    35710

    【CSS】定位 ③ ( 绝对定位 | 父容器有定位相对于父容器定位 | 父容器没有定位相对于浏览器进行定位 )

    一、绝对定位 ---- 绝对定位 是以 父级元素 为基准 , 设置 边偏移 ; 为 子元素 添加 绝对定位 , 如果 父容器有定位 , 则相对于父容器的坐标进行定位 ; 如果 父容器没有定位 , 则相对于浏览器左上角位置进行定位..., 使用的就是 相对定位 ; 为父容器添加了相对定位 , 子容器也会相对于 父容器 进行定位 ; 二、标准流下的父容器与子元素关系 ---- 1、标准流下父容器与子容器代码 标准流 父容器 中 包含一个...发现子容器也随着 父容器 一起移动 , 这种情况下 父容器 与 子容器 是绑定到一起的 ; 为父容器设置 100 像素的外边距 , 此时 父容器 与 嵌套的子元素 一起向下和向右移动了 100 像素...; 如果 父容器没有定位 , 则相对于浏览器左上角位置进行定位 ; 1、父容器没有定位的情况下为子容器添加定位 下面这种情况就是 父容器没有定位 , 子元素 相对于浏览器进行定位 ; 完整代码示例 :...; 2、父容器有定位的情况下为子容器添加定位 在上面代码的基础上 , 为父容器添加 relative 相对定位 , 不设置边偏移 , 也就是位置相对于标准流的原始位置偏移 0 位置 , 不移动位置

    90120

    【QT】控件 -- 多元素类 | 容器类 | 布局类

    ,可以添加标签页或者删除标签页 (2)编写 widget.cpp,进行初始化,给标签页中放个简单的 label 注意新创建的 label 的父元素,是 ui->tab 和 ui->tab_2 Qt 中使用父子关系决定该控件...上方边距,设置或获取布局内容与容器上边界的距离 layoutBottomMargin 下方边距,设置或获取布局内容与容器下边界的距离 layoutSpacing 相邻元素之间的间距,设置或获取布局中各元素之间的默认间隔...下方边距 layoutSpacing 相邻元素之间的间距 【使用 QHBoxLayout 管理控件】 编写代码,创建布局管理器和三个按钮,并且把按钮添加到布局管理器中,并且运行 可以看到此时界面上的按钮就存在于布局管理器中...属性 说明 layoutLeftMargin 左侧边距 layoutRightMargin 右侧边距 layoutTopMargin 上方边距 layoutBottomMargin 下方边距 layoutHorizontalSpacing...当然如果调整行列坐标全部为0的话,那么这四个按钮都在一行,就相当于 QHBoxLayout 注意 : 设置行和列的时候,如果设置的是一个很大的值,但是这个值和上一个值之间并没有其他的元素,那么并不会在中间腾出额外的空间

    12710

    CSS3入门

    ,但是会影响页面响应速度,不建议使用 样式的两个特性 层叠性:多个选择器设置的样式可以叠加在同一标签上 当样式出现冲突时,优先考虑权重;权重相同的情况下,采用就近原则 继承性:子标签继承父标签的某些样式...块元素从上向下的顺序排列 行内元素从左到右的顺序排列(碰到父元素边缘则自动换行) 浮动 让一行内容纳多个盒子 浮动的核心:脱离普通流(标准流)的控制(漂浮) 浮动后,会把本来占据的空间让给下一个元素...清除浮动 额外标签法 添加一个新标签,设置该标签清除浮动 clear : left | right | both 父级添加overflow法 产生问题的父标签添加 overflow 属性 overflow...visibility 方式隐藏的元素在页面中仍然占据空间 overflow 溢出 设置父盒子宽高的情况: 父盒子只有宽没有高,且内部都是另一个浮动的盒子 hidden|auto : 清除浮动,父盒子自适应子盒子的高...静态定位(static) 就是无定位,无法使用边便宜来调整盒子的位置。

    1.6K10

    你是否彻底了解margin属性?

    常见的浏览器下margin出现的bug有哪些?…… Margin是什么 CSS 边距属性定义元素周围的空间。通过使用单独的属性,可以对上、右、下、左的外边距进行设置。...也可以使用简写的外边距属性同时改变所有的外边距。——W3School 边界,元素周围生成额外的空白区。“空白区”通常是指其他元素不能出现且父元素背景可见的区域。...的最基本用途就是控制元素周围空间的间隔,从视觉角度上达到相互隔开的目的。...如15px + 20px的margin,将得到20px的空白。 何时应当时用padding:需要在border内测添加空白时。空白处需要背景(色)时。上下相连的两个盒子之间的空白,希望等于两者之和时。...原理分析:块级对象默认的display属性值是block,当设置了浮动的同时,还设置了它的外边距就会出现这种情况。也许你会问:“为什么之后的对象和第一个对象之间就不存在双倍边距的Bug”?

    88620

    CSS基础知识点整理笔记

    嵌套块元素垂直边距合并,当父级元素没有设置border、padding的情况下,父子元素的margin边距会合并,其取值为较大值 css3的新特性 答案解析 常用css3新特性:动画属性animation...可以用来解决子元素浮动,父元素的高度没有了、两栏布局右栏不自适应、垂直方向上两元素边距有误等情况。...实现两栏自适应的问题 外边距垂直方向重合的问题 都是利用触发BFC,使得元素有自己独立空间 如何清除浮动?...答案解析: 清除浮动是指的是父元素中的子元素设置float导致父元素的高度为0的情况 解决方案 父元素设置属性为:overflow:hidden (实质是触发BFC) 父元素中增加一个新的元素,添加属性...: 默认0,定义子元素相对于其他子元素在元素分配完还有剩余空间情况下的放大比例 flex-shrink:默认1,定义子元素相对于其他子元素在父元素空间不足时相对于其他子元素的缩放比例 flex-basis

    1.4K20

    《精通CSS》第3章 可见格式化模型

    在箱子尺寸(长宽高)固定的情况下,箱子四壁的厚度和填充层的厚度会压缩箱子内部用于放物品的空间。在堆放箱子时,不管箱子之间的间距(类似外边距)是多少,都不会影响箱子的可视大小。...最后,内边距、边框和外边框可以应用于元素的四边,也可以单独用于某一边。外边距甚至可以使用负值,从而使得元素在页面中移动。...3.2 可见格式化模型 3.2.1 包含块与定位 常规情况下,包含块是元素的最近块级父元素,但这并不是一定的。...也就是说这个父元素的display属性值必须提供类似块级的上下文,如block/inline-block/table-cell/list-item等。...可以在发生塌陷的父元素内添加一个空的元素,并清除浮动,这时空的元素前面会留下足够的空间来容纳浮动元素。 ?

    1.3K20

    前端面试之HTML && CSS

    *{margin:0;padding:0;} IE6双边距bug:块属性标签float后,又有横行的margin情况下,在IE6显示margin比设置的大。...的值不为visible BFC的使用场景 去除边距重叠现象 清除浮动(让父元素的高度包含子浮动元素) 避免某元素被浮动元素覆盖 避免多列布局由于宽度计算四舍五入而自动换行 让一个元素水平垂直居中 水平居中...当空间不足的情况下会等比例的缩小,如果 定义个 item 的 flow-shrink 为 0,则为不缩小 flex-basis 属性:定义了在分配多余的空间,项目占据的空间。...但是css像素和物理像素的比例是不一样的,等比的 viewport适配的优缺点 在我们设计图上所量取的大小即为我们可以设置的像素大小,即所量即所设 缺点破坏完美视口 清除浮动的方式 添加额外标签 div...class="parent"> //添加额外标签并且添加clear属性 div style="clear:both">div> //也可以加一个br标签 div> 父级添加

    4.4K10
    领券