我在CSS方面非常精通,但今天我偶然发现了一个让我头疼的片段(here和here)。我从没想过可以通过margin:0auto将绝对定位的元素居中,但考虑到所讨论的元素具有设置的宽度并且有left:0和对:0,它实际上似乎有效:#parent{background:#999;height:300px;position:relative;width:300px;}#child{background:#333;height:50px;left:0;margin:0auto;position:absolute;right:0;width:50px;}(JSFiddle)我一直认为left:0
我在CSS方面非常精通,但今天我偶然发现了一个让我头疼的片段(here和here)。我从没想过可以通过margin:0auto将绝对定位的元素居中,但考虑到所讨论的元素具有设置的宽度并且有left:0和对:0,它实际上似乎有效:#parent{background:#999;height:300px;position:relative;width:300px;}#child{background:#333;height:50px;left:0;margin:0auto;position:absolute;right:0;width:50px;}(JSFiddle)我一直认为left:0
我注意到HTML中的元素会忽略CSS中的“左”和“右”属性对。“顶部”和“底部”对也是如此。请参阅下面的示例代码:应该占据浏览器中几乎所有的空间(除了周围10px的边框)。它在Safari中工作正常,但在FireFox和IE中在浏览器的左上角保持较小。如果我使用“left”和“width”,以及“top”和“height”,那么一切正常。但是我不知道宽度和高度是多少,我希望它们根据浏览器窗口的大小进行调整。有什么解决办法吗?谢谢。 最佳答案 您可以使用包装器DIV 关于html<i
我注意到HTML中的元素会忽略CSS中的“左”和“右”属性对。“顶部”和“底部”对也是如此。请参阅下面的示例代码:应该占据浏览器中几乎所有的空间(除了周围10px的边框)。它在Safari中工作正常,但在FireFox和IE中在浏览器的左上角保持较小。如果我使用“left”和“width”,以及“top”和“height”,那么一切正常。但是我不知道宽度和高度是多少,我希望它们根据浏览器窗口的大小进行调整。有什么解决办法吗?谢谢。 最佳答案 您可以使用包装器DIV 关于html<i
因此,我将我的父元素定位为相对位置,以便让工具提示元素绝对定位在其内部的顶部。我知道您需要添加“左:0,右:0”,这样元素的宽度仍然可以设置为自动,我已经这样做了。但是,我的父元素有一个固定的宽度,工具提示被限制到这个宽度,所以自动宽度不能超出它,有什么办法解决这个问题吗?CSS:.parent{position:relative;width:100px;height:100px;}.tooltip{position:absolute;top:0;left:0;right:0;margin:0auto;text-align:center;width:auto;padding:5px10
因此,我将我的父元素定位为相对位置,以便让工具提示元素绝对定位在其内部的顶部。我知道您需要添加“左:0,右:0”,这样元素的宽度仍然可以设置为自动,我已经这样做了。但是,我的父元素有一个固定的宽度,工具提示被限制到这个宽度,所以自动宽度不能超出它,有什么办法解决这个问题吗?CSS:.parent{position:relative;width:100px;height:100px;}.tooltip{position:absolute;top:0;left:0;right:0;margin:0auto;text-align:center;width:auto;padding:5px10
(关于StackOverflow的第一个问题。希望我做对了。)我正在尝试创建一个float菜单,该菜单从其内容继承其宽度(因为我事先不知道宽度,即从URL加载)。我可以通过让菜单div绝对定位而不设置宽度或高度来做到这一点。当内容足够高需要滚动时,就会出现问题。我设置了“溢出:自动;”这样它就可以垂直滚动,但是新的滚动条不会使div变宽。取而代之的是,div保持相同的宽度,并且滚动条伸入其先前大小合适的内容中,迫使内容换行。示例:http://jsfiddle.net/w7Mm8/在示例中:在Firefox中,“五”换行到下一行,但在Chrome中(至少对于Mac),它全部显示在一行上
(关于StackOverflow的第一个问题。希望我做对了。)我正在尝试创建一个float菜单,该菜单从其内容继承其宽度(因为我事先不知道宽度,即从URL加载)。我可以通过让菜单div绝对定位而不设置宽度或高度来做到这一点。当内容足够高需要滚动时,就会出现问题。我设置了“溢出:自动;”这样它就可以垂直滚动,但是新的滚动条不会使div变宽。取而代之的是,div保持相同的宽度,并且滚动条伸入其先前大小合适的内容中,迫使内容换行。示例:http://jsfiddle.net/w7Mm8/在示例中:在Firefox中,“五”换行到下一行,但在Chrome中(至少对于Mac),它全部显示在一行上
假设我有两个div,一个在另一个里面,如下所示:现在,内部div的宽度为屏幕尺寸的50%的100%,即屏幕尺寸的50%。如果我要将内部div更改为绝对定位,如下所示:在这种情况下,内部div占据了100%的屏幕空间,因为它的位置设置为绝对位置。我的问题是:当内部div的位置设置为绝对时,有什么方法可以保持它的相对宽度吗? 最佳答案 将position:relative添加到您的外部div。更新:之所以有效,是因为position:absolute中的位置是相对于具有某些定位(静态除外)的第一个父级的。在这种情况下,没有这样的容器,因
假设我有两个div,一个在另一个里面,如下所示:现在,内部div的宽度为屏幕尺寸的50%的100%,即屏幕尺寸的50%。如果我要将内部div更改为绝对定位,如下所示:在这种情况下,内部div占据了100%的屏幕空间,因为它的位置设置为绝对位置。我的问题是:当内部div的位置设置为绝对时,有什么方法可以保持它的相对宽度吗? 最佳答案 将position:relative添加到您的外部div。更新:之所以有效,是因为position:absolute中的位置是相对于具有某些定位(静态除外)的第一个父级的。在这种情况下,没有这样的容器,因