首页
学习
活动
专区
圈层
工具
发布

webkit中BFC元素临近浮动元素时的边距bug

一直以来我们都很熟悉IE的“浮动边距加倍”的bug,并且绝大多数重构人员都已经很擅长在需要浮动时就直接绕过他。...这个BFC元素没有指定宽度值(或者指定width:auto) 当满足触发条件时,该BFC元素的另一侧的边距将不再受css控制(在webkit核心浏览器下),而是由你所指定的与浮动元素相同的边距决定,即使你在...css中明确指定另一侧的边距为0或任意值也没用。...具体来说,可以分为两种情况: 当BFC与浮动方向相同的边距小于或等于浮动元素占据的总宽度(width+margin+padding+border)时,BFC另一侧的边距等于所设定方向上的边距(下图前两种情况...); 当BFC与浮动方向相同的边距大于浮动元素占据的总宽度时,BFC另一侧的边距等于浮动元素占据的总宽度(下图第三种情况)。

2.1K50

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

是,如果我们将元素item的宽度更改为100%而不是auto会发生什么? 该元素将占用其父项的100%,加上左侧和右侧的边距。...手机和 PC 之间的宽度不同 ? 我们有一组按钮。在移动设备上,我们希望它们彼此相邻(每个按钮包装器占据其父元素的50%),而在桌面设备上,每个按钮都应该占据其父元素的全部宽度。该怎么做?...,因此使用width: auto可以很好地填充其父元素的可用空间。...,并会收缩到其最小尺寸以适合该容器,这等效于设置“ flex:1 1 auto”。...如果内容适合填充框内部,则它看起来与可见内容相同,但仍会建立新的块格式化上下文。 如果内容溢出,桌面浏览器会提供滚动条。

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

    CSS(三)

    它为每个 Box 提供了四个属性: Content: 一个元素的文本,图片或其他媒体内容 Padding: box 的内容和边框之间的距离 Border: box 的填充和边距之间的线 Margin:...h1 { border: 1px solid #5D6063; } Margin 边距定义元素边框外的空间。或者更确切地说,一个盒子和它周围的盒子之间的空间。...您选择其中一个的最常见原因是: 填充具有背景,而边距始终是透明的 填充包含在元素的单击区域中,而边距则不包括在内 边距会发生垂直折叠,而填充则不会 块级元素和内联元素之间最明显的对比之一是它们对边距的处理...垂直外边距折叠最可能发生的两种简单情况: 两个紧邻的兄弟元素的外边距发生折叠 父子元素的外边距发生折叠 首子元素与父元素的上外边距发生折叠 尾子元素与父元素的下外边距发生折叠 预防边距折叠 有时我们确实希望防止边距折叠...做法就是在它们之间放置另一个不可见的元素。 一定要记住,填充不会折叠。

    2.4K20

    揭示不为人知的CSS

    你需要知道什么: HTML的每一个元素都是一个矩形的盒子。每个盒子都有4个区域,用于定义元素的边距(margin)、边框(border)、填充(padding)和内容区域。...在这种情况下,它似乎可以感觉到在内容上田间的填充和边距,但实际上,是重新计算宽度以确保一切都适合。 通过比较,设置宽度为“100%”时,不管边距、填充和边框的大小是多少,内容区域都将填充可用空间。...当两个或多个相邻的垂直边距接触时,边距有时会发生重叠,并且不会用填充或边框分隔。如果子元素的边缘扩展到父元素的边缘,并且不会被填充分隔开,那么就会出现边距重叠的现象。...您需要知道的主要事情是当元素没有填充或边框时,垂直边距可能会重叠。 如果你想了解的更详细, CSS Tricks 有一篇很好的 边距重叠释义的文章推荐你看一下。...它的子元素外部类型也可以是block,但它们的布局受到Flexbox容器的格式上下文的影响。 思考这个问题的一种方式是,显示的职责在元素和它的父元素之间共享。

    2K30

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

    行内盒子是沿文本流水平排列的,也会随文本换行而换行。它们之间的水平间距可以通过水平方向的内边距、边框和外边距来调节。...这样的计算方式也符合现实中的包装箱模型。对于包装箱,箱子的四壁就是边框,从视觉上决定了箱子的大小;内边距就是箱子内部的填充层,用于保护装在箱子内的物品。...在箱子尺寸(长宽高)固定的情况下,箱子四壁的厚度和填充层的厚度会压缩箱子内部用于放物品的空间。在堆放箱子时,不管箱子之间的间距(类似外边距)是多少,都不会影响箱子的可视大小。...最后,内边距、边框和外边框可以应用于元素的四边,也可以单独用于某一边。外边距甚至可以使用负值,从而使得元素在页面中移动。...包含块并不一定就是父元素,后面我们会介绍。 3.1.3 外边距折叠 前面,我们认识了各种盒子以及如何计算盒子的大小。 其中外边距只会影响元素与元素之间的距离,是一个比较简单的概念。

    1.6K20

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

    简单来说,CSS 盒模型是一个包含多个组件的容器,包括边框、边距、内边距和内容本身。 总之,它是一个用于自定义不同元素布局的 CSS 工具包。...box-sizing 的默认值为 content-box。 简单来说,这意味着边距、边框和填充将添加到使用 width 和 height 属性指定的总高度和宽度中。...或者换句话说,当向元素添加边距、内边距和边框时,元素的总高度和总宽度不会增加。 CSS盒子模型的组成部分: 1、内容: 这是 CSS 盒子模型的主要元素。...填充左:填充顶部:填充右:填充底部: 3、边框: 边框在元素周围创建分隔线或空间,标记元素的结束。填充和内容包含在其中。边框可根据要求定制。...4、边距: 边距是元素边界之外的空间。它在相邻元素之间创建了一个空间。

    8.1K10

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

    因此,在本文中,我将分享关于 CSS 中的间距、实现该间距的不同方法以及何时使用填充或边距的所有信息。 现在,让我们开始吧。 间距类型 CSS 中的间距有两种类型,一种在元素外,另一种在元素内。...在上面的模型中,一个元素具有底部边缘,而另一个元素具有顶部边缘。 具有较大边距的元素获胜。 为避免此类问题,建议根据本文使用单向边距。...请参阅下面的问题是如何解决的: CSS: .element:not(:last-child) { margin-bottom: 1rem; } 使用 :not CSS 选择器,你可以轻松地删除最后一个子元素的边距以避免不必要的间距...处理底边距 假设以下组件堆叠。 每个组件都有一个底部边距。 请注意,最后一个元素有边距。 这是不正确的,因为边距应该只在元素之间。...由于应用于父元素 .card__content 的填充,边框不会粘在边缘上。 是的,你猜对了! 负边距是解决办法。

    14.7K40

    CSS_Flex 那些鲜为人知的内幕

    ❝子元素将「默认」根据以下两个规则定位: 主轴(Primary Axis):子元素将「紧密」排列在容器的「起始位置」。 交叉轴(Cross Axis):子元素将「伸展」以「填充整个容器」。...❞ flex-shrink 在我们迄今为止看到的大多数示例中,我们有额外的空间可以使用。如果我们的子元素太大而父容器无法容纳怎么办?...Flexbox算法可能会「将元素收缩到低于这个期望大小」,但「默认情况下,它们将始终按比例缩放,保持两个元素之间的比例」。 如果我们不希望元素按比例缩小,可以使用flex-shrink属性。...间距 ❝gap允许我们在每个 Flex 子元素之间创建空间。 ❞ 这对于诸如导航标题之类的东西非常有用: 自动边距 margin属性用于在特定元素周围添加空间。...在 Flexbox 中,自动边距变得更加有趣: >> 「自动边距将吞噬额外的空间,并将其应用于元素的边距」。它使我们能够精确控制在哪里分配额外的空间。

    1.4K10

    Web-CSS

    外边距重叠 块的上外边距(margin-top)和下外边距(margin-bottom)有时合并(折叠)为单个边距,其大小为单个边距的最大值(或如果它们相等,则仅为其中一个),这种行为称为边距折叠。...绝对定位的元素可以设置外边距(margins),且不会与其他边距合并。...space-evenly:flex项都沿着主轴均匀分布在指定的对齐容器中。相邻flex项之间的间距,主轴起始位置到第一个flex项的间距,主轴结束位置到最后一个flex项的间距,都完全一样。...取值: flex-start:所有行从垂直轴起点开始填充。第一行的垂直轴起点边和容器的垂直轴起点边对齐。接下来的每一行紧跟前一行。 flex-end:所有行从垂直轴末尾开始填充。...最后一行的垂直轴终点和容器的垂直轴终点对齐。同时所有后续行与前一个对齐。 center:所有行朝向容器的中心填充。每行互相紧挨,相对于容器居中对齐。

    9.2K20

    IT课程 CSS基础 025_边距和填充

    边距 在CSS中,边距与填充是两个不同的概念,都是用于控制元素之间的空间和影响页面的布局。...边距(外边距) 边距(margin)是指元素与其相邻元素之间的空间,边距可以用于控制元素之间的距离,影响页面的布局,边距本身没有背景颜色,是完全透明的,不会影响元素的实际大小。...div class="base example3"> 效果: 可使用 margin-top、margin-right、margin-bottom、margin-left 单独设置某一方向的边距...(内边距) 填充(padding)是指元素内部内容与元素边框之间的空间,填充可以用于调整元素内部内容与边框之间的距离,影响元素的尺寸和布局,填充会继承元素的背景颜色,会影响元素的实际大小。...base example3">padding测试 效果: 可使用 padding-top、padding-right、padding-bottom、padding-left 单独设置某一方向的填充

    37710

    如何用CSS解决边距合并问题?

    边距合并(Margin Collapse)是 CSS 中一个常见的问题,通常发生在相邻块级元素之间。当两个元素的上下边距相遇时,较大的边距将取代较小的边距,从而导致意外的布局效果。...添加填充或边框 在合并的元素之间添加填充(padding)或边框(border)可以有效防止边距合并: .element { padding-top: 1px; /* 或者 border-top:...使用 Flexbox 或 Grid 现代布局模型如 Flexbox 和 CSS Grid 可以完全避免边距合并问题,使用这些布局方式可以更容易地管理元素之间的间距: .container { display...使用伪元素 在相邻元素之间插入一个伪元素(如 ::before 或 ::after)也可以防止边距合并: .element::before { content: ''; display: block...: inline; */ } 结论 通过上述方法,可以有效地解决 CSS 中的边距合并问题。

    20310

    HTML学习之初识CSS盒子模型

    什么是盒子模型 CSS 盒子模型是一个包含多个属性的容器,包括边框、边距、填充和内容本身。它用于创建网页的设计和布局。它可以用作自定义不同元素布局的工具包。...Web 浏览器根据 CSS 框模型将每个元素渲染为矩形框。...CSS 中的盒子模型有多种属性,以下列出主要属性: content:即内容属性,它包含文本、图像或其他媒体形式的实际数据,并且可以使用 width 和 height 属性调整其大小。...padding:填充或内边距属性,用于定义元素边框与元素内容之间的空间,可以同时设置上下左右四个方向的内边距。 border:即边框属性,用于设置元素边框的样式、宽度和颜色。...margin:即外边距属性,用于定义元素外面的空间,在border属性周围。 2.

    16410

    分享100 个鲜为人知的 CSS 技巧

    形状边缘 当与 CSS 形状结合使用时,形状边距指定浮动元素形状周围的边距,从而可以精确控制文本换行和布局。 .shape { shape-margin: 20px; } 75....滚动边距 滚动边距设置滚动容器边缘和滚动内容开始之间的边距,通过提供滚动缓冲空间来增强用户体验。 .container { scroll-margin-top: 100px; } 76....选项卡大小 滚动边距设置滚动容器边缘和滚动内容开始之间的边距,通过提供滚动缓冲空间来增强用户体验。 pre { tab-size: 4; } 77....内联滚动填充 设置在可滚动内联容器周围添加的填充空间,以增强滚动交互期间的用户体验。 .container { scroll-padding-inline: 10px; } 87....字间距 字间距调整文本元素中字之间的间距,使您可以微调版式布局并提高可读性。

    1.2K10

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

    属性 说明 layoutLeftMargin 左侧边距,设置或获取布局内容与容器左边界的距离 layoutRightMargin 右侧边距,设置或获取布局内容与容器右边界的距离 layoutTopMargin...上方边距,设置或获取布局内容与容器上边界的距离 layoutBottomMargin 下方边距,设置或获取布局内容与容器下边界的距离 layoutSpacing 相邻元素之间的间距,设置或获取布局中各元素之间的默认间隔...核心属性(和 QVBoxLayout 属性是一致的) 属性 说明 layoutLeftMargin 左侧边距 layoutRightMargin 右侧边距 layoutTopMargin 上方边距 layoutBottomMargin...下方边距 layoutSpacing 相邻元素之间的间距 【使用 QHBoxLayout 管理控件】 编写代码,创建布局管理器和三个按钮,并且把按钮添加到布局管理器中,并且运行 可以看到此时界面上的按钮就存在于布局管理器中...属性 说明 layoutLeftMargin 左侧边距 layoutRightMargin 右侧边距 layoutTopMargin 上方边距 layoutBottomMargin 下方边距 layoutHorizontalSpacing

    1.2K10

    css学习--css基础

    ,是它本身父容器的100%(和父元素的宽度一直),除非设定一个宽度。...div{ display:inline; } 内联元素特点: 和其他元素都在一行上; 元素的高度、宽度及顶部和底部边距不可设置; 元素的宽度就是它包含的文字或图片的宽度,不可改变 解决行内元素间隙bug...inline-block元素特点: 和其他元素都在一行上; 元素的高度、宽度、行高以及顶和底边距都可以设置; 3.盒子模型 3.1什么是盒子模型 css中,盒子模型是关于元素的宽高的。如下图: ?...3.4盒模型填充 元素内容与边框之间可以设置距离,叫做padding(填充)。填充也可以分上右下左。如下: div{padding:20px 10px 15px 30px;} 顺序不要搞错!...: div{padding:10px;} 如果上下填充为10px,左右填充为20px: div{padding:10px 20px;} 3.5盒模型边界 元素与其他元素之间的距离可以使用边界margin

    2.6K101

    Flexbox布局杂谈

    使用Flexbox布局的视图元素叫Flex容器(flex container),其子视图元素会自动成为容器成员,叫做Flex项目(flex item)。...Flexbox布局的主要思想是,通过 Flex 容器设定的属性来改变内部 Flex 项目的宽高,并调整 flex 项目的位置来填充 flex 容器的可用空间。 ?...ASLayoutSpec的子类及其具体的功能如下: ASAbsoluteLayoutSpec,绝对布局 ASBackgroundLayoutSpec,背景布局 ASInsetLayoutSpec,边距布局...和vStack节点;最后,创建一个ASInsetLayoutSpec容器,设置四周边距为5,将hStack作为其子节点。...Flexbox算法 Flexbox算法的主要思想是:让flex容器能够改变其flex项目的宽高和顺序,以填充可用空间,flex容器可以通过扩大flex项目来填充可用空间,或者缩小flex项目来使其不超出可用空间

    2.4K30

    细细品读!深入浅出,官方文档看ConstraintLayout

    上面的这些属性需要结合id才能进行约束,这些id可以指向控件也可以指向父容器(也就是ConstraintLayout),比如: ? 外边距 ?...关于目标控件(如图 6中的A)设置为GONE时,受约束的控件(如图 6中的B)的外边距的变化设置请查看上面的外边距小节的GONE MARGIN属性。 ?...至于为何高度填充屏幕而宽度不填充,其玄机在于下面这句话,能理解它,就理解了比例使用的精髓: ?...MATCH_CONSTRAINT,那么控件将会把所有剩余的空间均分后“吃掉” CHAIN_SPREAD_INSIDE Chain两边的元素贴着父容器,其他元素在剩余的空间中采用CHAIN_SPREAD模式...例如,一个Chain中包含两个使用MATCH_CONSTRAINT的元素,第一个元素使用的权重为2,第二个元素使用的权重为1,那么被第一个元素占用的空间是第二个元素的2倍。

    1.2K40
    领券