Css 我无法让这个元素位于另一个的内部?

Css 我无法让这个元素位于另一个的内部?,css,html,Css,Html,我有两个div,一个在另一个里面。innerdiv的行为与我预期的不同。它不是坐在右侧maindiv的内部。有人能解释一下原因吗 JsFiddle: 这是我的html: <!DOCTYPE html> <head> <meta charset = "UTF-8"/> <title>Home</title> <link rel="stylesheet" text="text/css" href="css.cs

我有两个div,一个在另一个里面。innerdiv的行为与我预期的不同。它不是坐在右侧maindiv的内部。有人能解释一下原因吗

JsFiddle:

这是我的html:

<!DOCTYPE html>
<head>
    <meta charset = "UTF-8"/>
    <title>Home</title>
    <link rel="stylesheet" text="text/css" href="css.css">
</head>
<body>
    <div class = "maindiv">
        <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum. Typi non habent claritatem insitam; est usus legentis in iis qui facit eorum claritatem. Investigationes demonstraverunt lectores legere me lius quod ii legunt saepius. Claritas est etiam processus dynamicus, qui sequitur mutationem consuetudium lectorum. Mirum est notare quam littera gothica, quam nunc putamus parum claram, anteposuerit litterarum formas humanitatis per seacula quarta decima et quinta decima. Eodem modo typi, qui nunc nobis videntur parum clari, fiant sollemnes in futurum.
            </p>
        <div class = "innerdiv">
            <p>This is innerdiv content</p>

        </div>
    </div>
</body>

您需要对家长使用众多技巧之一。例如:

div.maindiv:after {
  content: "";
  display: table;
  clear: both;
}
有关clearfix技巧的更多详细信息,请查看

如果希望右上角出现右框,只需将其放在Html中主div段落之前:

<div class = "maindiv">
  <div class = "innerdiv">
    <p>This is innerdiv content</p>
  </div>
  <p>Text</p>
</div>
清理?这是什么疯狂? 为了解释这里发生了什么以及它可能会产生什么影响,让我从解释什么是浮点开始

从技术上讲,浮动是从列表中删除的元素。正常流只是指行为类似于块或内联框的元素。要从正常流中删除元素,可以做很多事情。设定位置:绝对位置;这是一个例子。正如我之前所说,浮动是另一个例子

那么,一个浮点数是如何工作的呢?嗯,它占用水平空间,但不占用垂直空间

这对于我想象中的浮动的预期用途之一是非常理想的:段落旁边的图像。这允许浮动元素显示如下:

图像来源:w3c CSS2规范

该图像显示了文章中的常见布局,并且只有当浮动元素不向下推下下一段时才可能出现。因此,当涉及页面的垂直格式时,浮动被忽略

该图像来自规范本身,这就是为什么我认为规范的作者打算将浮动用于此目的

因此,通过对布局使用浮动,我们可能会迫使他们做一些他们不一定要做的事情。但这并不是担心的理由,因为Css仍然是相对较新的,我们往往需要做很多。更好的格式化系统即将问世,即

但是,是的,当涉及到布局时,我们不希望出现上图中的行为。我们希望元素在占据垂直空间的同时,也能拥抱一侧。虽然浮动在默认情况下不会这样做,但我们可以强制它们这样做。当你这样做的时候,它被称为clearfixing

我将解释上面使用的方法:使用clear属性。此属性允许您限制元素两侧的浮动。明确:两者皆有;防止两侧浮动

我们将此属性应用于父元素的:after伪元素,这样它就不会出现在标记中,但仍会呈现在浏览器中。瞧!我们已经成功地清除了


有关clear属性的更多信息,请参阅。

您需要在父级上使用众多技巧之一。例如:

div.maindiv:after {
  content: "";
  display: table;
  clear: both;
}
有关clearfix技巧的更多详细信息,请查看

如果希望右上角出现右框,只需将其放在Html中主div段落之前:

<div class = "maindiv">
  <div class = "innerdiv">
    <p>This is innerdiv content</p>
  </div>
  <p>Text</p>
</div>
清理?这是什么疯狂? 为了解释这里发生了什么以及它可能会产生什么影响,让我从解释什么是浮点开始

从技术上讲,浮动是从列表中删除的元素。正常流只是指行为类似于块或内联框的元素。要从正常流中删除元素,可以做很多事情。设定位置:绝对位置;这是一个例子。正如我之前所说,浮动是另一个例子

那么,一个浮点数是如何工作的呢?嗯,它占用水平空间,但不占用垂直空间

这对于我想象中的浮动的预期用途之一是非常理想的:段落旁边的图像。这允许浮动元素显示如下:

图像来源:w3c CSS2规范

该图像显示了文章中的常见布局,并且只有当浮动元素不向下推下下一段时才可能出现。因此,当涉及页面的垂直格式时,浮动被忽略

该图像来自规范本身,这就是为什么我认为规范的作者打算将浮动用于此目的

因此,通过对布局使用浮动,我们可能会迫使他们做一些他们不一定要做的事情。但这并不是担心的理由,因为Css仍然是相对较新的,我们往往需要做很多。更好的格式化系统即将问世,即

但是,是的,当涉及到布局时,我们不希望出现上图中的行为。我们希望元素在占据垂直空间的同时,也能拥抱一侧。虽然浮动在默认情况下不会这样做,但我们可以强制它们这样做。当你这样做的时候,它被称为clearfixing

我将解释上面使用的方法:使用clear属性。此属性允许您限制元素两侧的浮动。明确:两者皆有;防止两侧浮动

我们将此属性应用于父元素的:after伪元素,以便它不会出现 在我们的标记中,但仍在浏览器中呈现。瞧!我们已经成功地清除了

有关clear属性的更多信息,请参阅。

刚刚设置溢出:div.mainDiv上的自动

只需设置溢出:div.mainDiv上的自动


从div.innerdiv中删除float:right,第二个div将位于第一个div中。尝试将溢出:隐藏添加到maindivSet溢出:auto在外部div CSS中。设置溢出:auto在外部div CSS中删除float:right;确实修复了innerdiv位于maindiv之外的问题,但问题是它位于maindiv的左侧,而不是右侧。我希望它拥抱innerdiv的右侧,从顶部开始。谢谢你,但是如何使它从maindiv的顶部开始?删除float:right from div.innerdiv,第二个div将位于第一个div内。尝试添加overflow:hidden to maindivSet overflow:auto在外部div CSS中。Set overflow:auto在外部div CSS中删除float:right;确实修复了innerdiv位于maindiv之外的问题,但问题是它位于maindiv的左侧,而不是右侧。我想让它紧靠innerdiv的右侧,从顶部开始。谢谢你,但是我如何让它从maindiv的顶部开始呢?谢谢,这是可行的,但是你介意解释一下它到底是做什么的吗?它还可能影响什么?还有,有没有办法使innerdiv显示从maindiv的顶部开始?对于您的第一个问题:文章中的第一个链接用非技术术语解释了它。我将用一些技术术语来编辑我的文章,解释为什么家长不在上面加上浮子的高度。关于你的第二个问题:看到我答案的第二部分了吗?这是你想要的吗?谢谢,这很有效,但你能解释一下这到底是做什么的吗?它还可能影响什么?还有,有没有办法使innerdiv显示从maindiv的顶部开始?对于您的第一个问题:文章中的第一个链接用非技术术语解释了它。我将用一些技术术语来编辑我的文章,解释为什么家长不在上面加上浮子的高度。关于你的第二个问题:看到我答案的第二部分了吗?这是你想要的吗?