- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
哪些 CSS 规则解释了以下场景:
假设我有以下 HTML CSS 片段
HTML:
<div id="main">
<div id="first">
first div float left
</div>
<div id="second">
second div does not have a float property set
and appears in a new line instead of next to
the first div
</div>
</div>
CSS:
#first
float: left
我想知道的是,为什么第二个 div float 在第一个 div 旁边,只有当它的宽度被设置时。如果我用一个段落替换第二个 div,它也会 float 在第一个 div 的旁边。那么,为什么第二个 div 仅在其宽度已设置或其自身的 float 属性设置为向左浮动时才位于第一个 div 的旁边?
顺便说一下。我不想在这里实现任何类型的布局。我只是想了解 div 元素和其他 block 元素的这些特殊行为。
编辑:
好的。首先感谢您的回答。我遇到的问题是基于我确实将第一个和第二个 div 的宽度设置为相同的值,因此第二个的内容不能围绕第一个 float 。综上所述,我想知 Prop 有 float 属性集的元素被放置在页面流中并且不占用任何空间是很重要的。其次,应该记住只有内容可以流动,而不是实际的 div。
最佳答案
A <div>
是一个 100% 宽的 block 级元素,当它在正常内容流中时前后有一个换行符。
从技术上讲,当你 float 一个 <div>
,您将元素从正常流中取出,因此它前后不再有换行符,其他页面内容也围绕它流动。
So why does the second div only position next to the first one when its width is set or its own float property is set to float left?
float <div>
仅当有足够的空间将它们并排放置时,它们才会始终并排出现。否则下浮<div>
将换行。这是因为 float <div>
的在内容流之外并且defined to behave this way in the spec .
但是,您在设置第二个宽度(非 float )<div>
时会发生什么的问题中做出了一些不正确的假设。 .
第二个<div>
, 本身总是在 float 的 <div>
下方(意思是后面) .而第二个的“内容”<div>
总是围绕着漂浮的<div>
流动. (见下面三个例子)
所以无论你是否设置第二个div
的宽度, 它的内容仍将围绕 向左浮动 div
流动正如您在此处看到的三个示例所示。 (出于说明目的,第一个 <div>
是红色,不透明度为 50%,第二个是蓝色,带有粗绿色边框。)
正如您从上面所有三个示例中看到的,尽管存在 float 第一个 <div>
...
第二个<div>
尽管第二个 <div>
的宽度总是从屏幕的左边缘开始.
第二个<div>
始终从屏幕的顶部边缘开始,因为第二个页面上方没有其他页面流内容 <div>
.
第二个的实际内容<div>
围绕(在其右侧) float 的第一个 <div>
流动只有在其容器内有足够空间使其能够围绕 float <div>
流动的地方.否则,it appears as if it's starting a new line where really only its content is continuing to flow around the bottom float 的 <div>
.
W3C Spec: 9 Visual formatting model, 9.5 Floats
A float is a box that is shifted to the left or right on the current line. The most interesting characteristic of a float (or "floated" or "floating" box) is that content may flow along its side (or be prohibited from doing so by the 'clear' property). Content flows down the right side of a left-floated box and down the left side of a right-floated box. The following is an introduction to float positioning and content flow; the exact rules governing float behavior are given in the description of the 'float' property.
A floated box is shifted to the left or right until its outer edge touches the containing block edge or the outer edge of another float. If there is a line box, the outer top of the floated box is aligned with the top of the current line box.
If there is not enough horizontal room for the float, it is shifted downward until either it fits or there are no more floats present.
Since a float is not in the flow, non-positioned block boxes created before and after the float box flow vertically as if the float did not exist. However, the current and subsequent line boxes created next to the float are shortened as necessary to make room for the margin box of the float.
这里有一大堆例子......
W3C Spec: 9 Visual formatting model, 9.8 Comparison of normal flow, floats, and absolute positioning
关于css - float 属性设置为左侧的 div 不沿着前面的 div float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7946425/
我正在使用这段代码: border-right:0px solid #ddd; height:85px; box-shadow :5px 5px 10px 1px #eaeaea; 但我刚刚得到
我遇到的问题是将文本放在图像的左侧... HTML 和 CSS h2, social-hand { font-family: 'PT Sans', sans-serif; display: i
美好的一天 我今天的 CSS 很糟糕。我有 3 列 div(水平,这就是我使用 float 的原因),但我想将我的文本居中对齐,但在包含列 div 的左侧。 HTML:
在我的应用程序中,我在截取屏幕截图时在我的 Imageview 中获得了透明像素。如何剪切顶部、左侧、右侧 和 Imageview 的底部。我尝试了下面的代码但没有工作 Bitmap bitmap =
如何在左侧的以下 LinearLayout 内部添加边框,使其宽度为 5dp 并适合 LinearLayout 的整个高度? LinearLayout 的高度是动态的,这意味着有时它可以是 50dp
我是第一次做网站。我在使用下拉菜单时遇到问题。它正在向左侧移动。请帮助我处理代码,使其位于导航菜单的正下方,并且将鼠标悬停在其上时应该可见。提前致谢。 这是我的 CSS 代码: ul { li
我对 html 和 css 有点生疏,我无法让 2 个图像 float ,一个在另一个之上。这是代码...   &nbs
我有一个固定宽度 (px) 的左侧边栏,右侧是我的主要内容。 这是我的演示:http://jsfiddle.net/fxWg7/4031/ 代码如下: 这是我的 html 代码: left co
所以我正在尝试做一个弹出式菜单,但我遇到了一点问题。 我已经申请了: .menu-side, .menu { -webkit-transition: left 0.2s ease; -
在下面的 CSS @media screen and (max-width: 750px) { .flexbox { display: block; } .menu ul {
@import 'https://fonts.googleapis.com/css?family=PT+Sans'; * { font-family: 'PT Sans', sans-serif
我想在我的标题旁边放一个图标。但它不合适..我怎样才能让它合适? My heading 最佳答案 使用vertical-align:middle,因此如果您更改文本或图像的大小,位
我正在使用参数方程围绕一个圆定位图像 ( How do I calculate a point on a circle’s circumference? ) 我使用简单的数学方法以更少的方式完成此操作
我想使用外部列表属性将 ul 列表正确定位在左浮动 img 的右侧,但元素符号未在图像右侧对齐,因为没有任何图像,但更多在左边。 Lorem ipsum dolor sit amet, c
我有一个layer-list.xml 现在我想在运行时更改 (top,right) 等项目的
我通过按:M-x linum-mode 来启用它们。如何将其“翻译”到 my.emacs 文件中,以便每次打开 EMACS 时自动启用它? 最佳答案 如果您希望每个缓冲区都使用它,请将 (global
我的Code : HTML 1 2 3 CSS #score { height:50px; } .myDiv { width:40px; height:40px;
我可以轻松设置 canvas.width 和 canvas.height 属性。我找不到正确的 JavaScript 语法来使用顶部和左侧设置 Canvas 的偏移量。我尝试过直接在 Canvas 上
我正在尝试为我正在编写的单人纸牌游戏完成条件游戏。 我把所有的 Action 和棋子都移除了。每一 block 都作为椭圆 UI 元素保存在一个二维数组中,当一 block 被拿走时,它会被替换为边框
我正在使用导航 View 修改 Android 应用程序。对于前几个菜单项,我给出了一个图标,但之后,我只给出了菜单标题。但是在导航面板中,没有图标的菜单项有一个空白区域。 如何删除空白区域?我希望菜
我是一名优秀的程序员,十分优秀!