Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 为什么块元素的行为类似于内联元素?_Html_Css_Css Float - Fatal编程技术网

Html 为什么块元素的行为类似于内联元素?

Html 为什么块元素的行为类似于内联元素?,html,css,css-float,Html,Css,Css Float,:目标{ 边框:2px实心#d4; 背景色:#e5eecc; } 李先生{ 列表样式类型:无; 浮动:左; 填充:1em; } 同侧眼睑 请自便,伙计 我们是自由软件爱好者 是的 从类中删除浮动:左 嗨,学生 li不像内联元素,它是Block元素本身。如果块元素具有Float:left始终前后对齐 通过这一点,您可以清楚地了解内联和块元素的确切含义。问题是ul中的所有元素都是浮动的,因此ul的行为就好像它没有内容一样 如果希望lis保持在一行上,一种解决方案是在它们上使用dis

:目标{
边框:2px实心#d4;
背景色:#e5eecc;
}
李先生{
列表样式类型:无;
浮动:左;
填充:1em;
}
同侧眼睑


请自便,伙计

我们是自由软件爱好者

是的

类中删除
浮动:左

嗨,学生

li
不像内联元素,它是
Block
元素本身。如果块元素具有
Float:left
始终前后对齐


通过这一点,您可以清楚地了解内联和块元素的确切含义。问题是
ul
中的所有元素都是浮动的,因此
ul
的行为就好像它没有内容一样

如果希望
li
s保持在一行上,一种解决方案是在它们上使用
display:inline
而不是
float:left

:目标{
边框:2px实心#d4;
背景色:#e5eecc;
}
李先生{
列表样式类型:无;
显示:内联;
填充:1em;
}
同侧眼睑


请自便,伙计

我们是自由软件爱好者

解决方案 将
clear:left
添加到
p
标记中。这将使其下降到其前面的左浮动图元下方

ul
标签上使用:

.cf:before,
.cf:after {
  content: " "; /* 1 */
  display: table; /* 2 */
}

.cf:after {
  clear: both;
}

/**
 * For IE 6/7 only
 * Include this rule to trigger hasLayout and contain floats.
 */
.cf {
  *zoom: 1;
}
这将导致
ul
标记扩展到其包含的
li
元素的大小

解释 浮动元素不会占用文档流中的空间,因此它们所包装的元素,在本例中,
ul
,不会增长到占用空间的程度,因此它是0 px高

p
标签紧跟在
ul
之后,不占用任何空间,因此它显示在顶部


li
标记向左浮动,这意味着它们向左滑动,并将可以向左推的所有东西向右推。在这种情况下,
p
标记。

您还可以在浮动的li之后添加一个clear:left样式,这将解决问题。

li的浮动导致Home和About us显示在Line中。真正的原因是您没有清除浮动。最简单的方法是将
overflow:hidden
添加到父级,即本例中的
ul
。更多信息-@Abhitalks 2个不同的块元素(如工具中所示)不应在一行中。那么,
ul
p
是如何在单行中显示的呢。这里的概念是什么?@学生:从你在上面问题中发布的片段来看,
ul
p
不是一行。我看到的问题是
ul
出现在第一个
p
之后。这是因为非清算浮动。有关浮动如何影响此问题的更多详细信息,请阅读此答案-+1。然而,我知道删除它将如何解决问题,但我的问题是关于两个
元素的
排列。@student这是我的更新但是如果我们检查,
ul
p
都是
display:block
,它们都不是
float:left
。因此,如果
float
元素位于
元素中,它会使容器变空吗?怎么做?clearfix的目的是什么?仅
p{clear:left;}
就足以将第一个p元素定位在浮动的li元素下面。@Alohci我也觉得这比just好。@学生-clearfix并不比
clear:left
好,但它有不同的用途。clearfix的目的是将容器元素框的底部至少扩展为它所包含的最后一个浮动元素的底部。当您希望在容器元素上放置背景或边框时,这将非常有用。但在你的例子中,你两个都不做。@Alohci我对这个概念感兴趣。你能解释一下吗?@student-遗憾的是没有。问题是你对“内联”的理解是错误的。内联框是放置在线框内部的框,这与水平放置相邻框的概念不同。浮动元素不在行框中布局,因此不“内联”。首先需要在长方体模型和正常流中建立坚实的基础,然后才能了解浮动图元如何从该流中取出,以及线框(而非未清除的块框)如何避免浮动图元。