- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 inline-flex
的奇怪行为元素在对其应用 clearfix 时。当我为具有 inline-flex
的元素设置 clearfix 时显示属性奇怪的空白出现在它之前:
但是当inline-block
使用行为是不同的:
我不明白为什么inline-flex
具有与 inline-block
不同的行为.. 以及为什么它有那个奇怪的空间。
.a,
.b {
border: 1px solid red;
}
.a {
text-align: center;
}
.b {
display: inline-flex;
height: 20px;
width: 20px;
}
.cf:before,
.cf:after {
content: " ";
display: table;
}
.cf:after {
clear: both;
}
<div class="a">
<div class="b cf"></div>
</div>
最佳答案
display: inline-flex
当您使用 display: inline-flex
,你建立一个 flex 容器。
flex 容器的初始设置是 flex-direction: row
.
这意味着容器的所有流入子元素(包括流入伪元素)将排成一行。 display
根据 flex formatting context 的规则,这些子级的值(在本例中为 table
)被覆盖/忽略。 .
您的 flex 容器在一行中有两个 flex 元素(伪元素):
.a,
.b {
border: 1px solid red;
}
.a {
text-align: center;
}
.b {
display: inline-flex;
height: 20px;
width: 20px;
}
.cf:before,
.cf:after {
content: "x";
display: table;
}
.cf:after {
clear: both;
}
<div class="a">
<div class="b cf"></div>
</div>
display: inline-block
display: inline-block
,您建立一个
block formatting context .
display
尊重子元素的属性。
display: table
是块元素,默认情况下,占据整个可用宽度。因此,伪代码创建了两行:
.a,
.b {
border: 1px solid red;
}
.a {
text-align: center;
}
.b {
display: inline-block;
height: 20px;
width: 20px;
}
.cf:before,
.cf:after {
content: "x";
display: table;
}
.cf:after {
clear: both;
}
<div class="a">
<div class="b cf"></div>
</div>
vertical-align: baseline
display
值,这会调用
vertical-align
属性,初始值为
baseline
.
div.b
当设置为
display: inline-flex
是由于基线对齐。
div.b
当设置为
display: inline-block
是由于基线对齐结合两个块元素子元素的影响。
clear
属性(property)
.cf:after {
clear: both;
}
clear
属性仅在处理浮点数时。
9.5.2 Controlling flow next to floats: the
clear
propertyThis property indicates which sides of an element's box(es) may not be adjacent to an earlier floating box.
float
和
clear
在 flex 格式化上下文中,属性仍然被忽略。
3. Flex Containers: the
flex
andinline-flex
display values
float
andclear
do not create floating or clearance of flex item, and do not take it out-of-flow.
关于html - 为什么带有 clearfix 的 inline-flex 元素有一个奇怪的空白?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38872761/
960 grid 的 clearfix 与 HTML5 Boilerplate 的 clearfix - 有什么区别? 这是在 Nathan Smith 的 960 网格的 css 中找到的 clea
我想删除我的 D7 主题(MD 照片)中由 clearfix 元素引起的灰线。特别是 div class="wrap clearfix" 元素,它在 body 元素的底部有一条不必要的灰线。 我已经尝
能否请您看一下我的网页(联系页面),让我知道为什么我在 clearfix 类中仍然遇到这个问题?我什至在所有元素上都使用了 clear,但这种情况仍在发生!并且 tghe #bizleft 和 #bi
我有一个包含绝对位置和左右浮动的 div。现在我想在第一个 div 下方放置一张图片。 现在的问题是图像重叠在第一个 div 下方。我希望图像显示在第一个 div 下方而不重叠。 https://js
在我的网站上 http://jonasolaussen.se/?page_id=16如您所见,文字位于页脚下方,如果我做广告 确实会更好就像在其他网站上一样。 谁有解决办法,不胜感激! 最佳答案
我有一个布局,其中边栏是固定的,主要内容容器是流动的。
我一直无法将 clearfix 应用于许多 div,我已经学习了几个教程,找到了 here和 here ,但我的名为 Bar 的 div 仍然不会扩展以容纳 Logo 和导航 div。 这是我的标记,
我为我的网站使用了响应式骨架框架(样板)(您可以从这里获取它:http://www.getskeleton.com/)。 我有 列出具有不同高度的列。要清除嵌套列,CSS 表示我需要将 .clearf
Content 1 Content 2 CSS: .parent { normal styling for pare
考虑这种情况: 有一个内容宽度可变的布局,固定侧边栏 float 到右侧。所述布局的容器正在使用 clearfix 清除右侧 float 在内容 block 内还有另一个 block 做同样的事情。第
这个 ( http://jsfiddle.net/77RRA/1/) 有效,而这个 (http://jsfiddle.net/77RRA/) 无效。 clearfix 不是应该替换行 吗? ? 最佳
我想给#footer 内的元素p 一个top-margin 值,但是clearfix 不起作用,而且margin 一直在其父元素外折叠,为什么?下面的代码,#fotter 和 clearfix 类在代
最后一个问题。我继承的代码如下: .clearfix:after { content: "."; display: block; height: 0; clear: both; visibility:
我是 Bootstrap 的新手,我遇到了 clearfix 的问题。我正在尝试设计一个具有 3 个内容列(可变高度)和第 4 个固定宽度的广告列的网站。
我正在尝试使用 clearfix 而不是清除两者,但由于某种原因它不起作用。我按照教程做了所有的事情。 我应该怎么做才能让它发挥作用? * { margin: 0;
我有以下 HTML 结构: %aside.sidebar %main %article %h2 %aside.picture %img %p %articl
最近我正在查看一些网站的代码,看到每个 上过课clearfix . 在 Google 上快速搜索后,我了解到它有时是针对 IE6 的,但实际上什么是 clearfix? 您能否提供一些带有 clear
我创建了一个html,可以找到http://temp87.web44.net/temp.html .我面临的问题是页脚后的页面底部有一条灰色 strip ,并且该页面未占用 100% 的浏览器空间。
是否有类似 float 和 clearfix 但用于垂直对齐的技术。 我想分隔不同的元素(内联或向左浮动),以便它们始终与顶部或底部对齐。 在此jsFiddle我希望红色和绿色水平对齐。我无法更改 C
我对 clearfix 到底是什么感到有点困惑。一方面,我们遇到零高度 div 的情况,其中 float 元素不占用空间。解决方案是将以下 clearfix 类放在容器上: .clearfix {
我是一名优秀的程序员,十分优秀!