我有一些容器,它们的子容器仅处于绝对/相对位置。如何设置容器的高度,使其孩子在容器内?
代码如下:
HTML
<section id="foo">
<header>Foo</header>
<article>
<div class="one"></div>
<div class="two"></div>
</article>
</section>
<div style="clear:both">Clear won't do.</div>
<!-- I want to have a gap between sections here -->
<section id="bar">
<header>bar</header>
<article>
<div class="one"></div><div></div>
<div class="two"></div>
</article>
</section>
CSS
article {
position: relative;
}
.one {
position: absolute;
top: 10px;
left: 10px;
background: red;
width: 30px;
height: 30px;
}
.two {
position: absolute;
top: 10px;
right: 10px;
background: blue;
width: 30px;
height: 30px;
}
这里有一个jsfiddle。我希望“栏”文本出现在4个方格之间,而不是它们后面。
http://jsfiddle.net/Ht9Qy/
有简单的解决办法吗?
请注意,我不知道这些孩子的身高,也不能为容器设置身高:xxx。
这是一个迟来的答案,但是通过查看源代码,我注意到当视频全屏时,“mejs-容器-全屏”类被添加到“mejs-容器”元素中。因此,可以根据此类更改样式。
.mejs-container.mejs-container-fullscreen {
// This rule applies only to the container when in fullscreen
padding-top: 57%;
}
此外,如果您希望使用CSS使MediaElement视频流畅,下面是Chris Coyier的一个绝妙技巧:http://css-tricks.com/rundown-of-handling-flexible-media/
只需将此添加到您的CSS:
.mejs-container {
width: 100% !important;
height: auto !important;
padding-top: 57%;
}
.mejs-overlay, .mejs-poster {
width: 100% !important;
height: 100% !important;
}
.mejs-mediaelement video {
position: absolute;
top: 0; left: 0; right: 0; bottom: 0;
width: 100% !important;
height: 100% !important;
}
我希望有帮助。
这是我的解决方法,
在您的示例中,您可以添加具有相同样式的. one的第三个元素
HTML
<article>
<div class="one"></div>
<div class="two"></div>
<div class="three"></div>
</article>
CSS
.three{
height: 30px;
z-index: -1;
visibility: hidden;
width:0!important; /* if you got unnecessary horizontal scroll*/
}
如果我理解你试图正确地做什么,那么我不认为CSS在保持孩子绝对定位的同时是可能的。
绝对定位的元素完全从文档流中删除,因此它们的维度不能改变其父元素的维度。
如果您真的必须在保持子元素为位置:绝对
的同时实现这种影响,您可以通过JavaScript找到绝对定位的子元素渲染后的高度,并使用该高度来设置父元素的高度。
或者,只需使用float:left
/float:right
和边距即可获得相同的定位效果,同时将子项保留在文档流中,然后可以在父项上使用overflow:hidden
(或任何其他clearfix技术)使其高度扩展到其子项的高度。
article {
position: relative;
overflow: hidden;
}
.one {
position: relative;
float: left;
margin-top: 10px;
margin-left: 10px;
background: red;
width: 30px;
height: 30px;
}
.two {
position: relative;
float: right;
margin-top: 10px;
margin-right: 10px;
background: blue;
width: 30px;
height: 30px;
}
问题内容: 我有一些容器,他们的孩子只是绝对的/相对的。如何设置容器的高度,以便他们的孩子进入其中? 这是代码: HTML CSS 这是一个jsfiddle。我希望“栏”文本出现在4个正方形之间,而不是在它们后面。 有简单的解决方法吗? 请注意,我不知道这些子项的高度,也无法为容器设置高度:xxx。 问题答案: 如果我了解您要正确执行的操作,那么我认为使用CSS保持孩子的绝对位置是不可能的。 绝对
问题内容: 我在另一个div内有两个div,我想使用css将一个子div放在父div的右上角,另一个子div放在父div的底下。即,我想对两个子div使用绝对定位,但是将它们相对于父div而不是页面定位。我怎样才能做到这一点? 范例html: 问题答案: 这工作,因为手段类似“使用,,,来定位自己相对于谁拥有最近的祖先或”。 因此,我们使have 和子代都有,然后使用和定位子代。
我有一个与我的CSS有关的div位置的问题。 我的父div设置为,子div设置为 但由于某些原因,子div显示在父div的边界下方和外部。。。 这是我的CSS: 超文本标记语言: 我提供了一个JSFiddle来向您展示它的实际操作: http://jsfiddle.net/j6VLc/1/ 在使用时,如何修复它以使子div位于父div内?
问题内容: 我有3个要素。 第一个更大(包装)并具有 第2个相对于第1个相对位置绝对定位(并包含在第1个中) 第3个包含在第2个中,并且也具有绝对定位。 为什么第3个位置相对于第2个绝对位置(这也是第1个位置的绝对位置)而不是相对位置的第一个位置? 因为3rd 是绝对定位到2nd的绝对定位。 问题答案: 因为就像重置孩子的相对位置一样。 这是无法解决的-如果您希望第三个相对于第一个绝对定位,则必须
我在另一个div中有两个div,我想使用CSS将一个子div放置在父div的右上方,另一个子div放置在父div的底部。例如,我想对两个子div使用绝对定位,但是相对于父div而不是页面定位它们。我怎么能这么做? HTML示例:
问题内容: 和CSS 和有什么不一样?那你什么时候应该使用呢? 问题答案: CSS绝对定位 绝对定位是最容易理解的。您从CSS 属性开始: 这告诉浏览器应将要定位的所有内容从文档的正常流程中删除,并将其放置在页面上的确切位置。它不会影响HTML中它之前或之后的元素在网页上的放置方式,但是除非您重写它,否则 它将 取决于其父级的位置。 如果你想一个元素从文档窗口的顶部10个像素的位置,你会使用偏移与