css:绝对位置不';你不喜欢右和底的价值吗?
我想绝对定位iframe并定义其左、上、右、下偏移:css:绝对位置不';你不喜欢右和底的价值吗?,css,position,positioning,css-position,absolutelayout,Css,Position,Positioning,Css Position,Absolutelayout,我想绝对定位iframe并定义其左、上、右、下偏移: #x { position: fixed; left: 10px; top: 10px; right: 10px; bottom: 10px; width: auto; height: auto; border: 2px solid #aaa; z-index: 100002; background: #abc; display:none } 我发现左
#x {
position: fixed;
left: 10px;
top: 10px;
right: 10px;
bottom: 10px;
width: auto;
height: auto;
border: 2px solid #aaa;
z-index: 100002;
background: #abc;
display:none
}
我发现左侧和顶部值受到尊重,而右侧和底部值被忽略。如果没有设置左值和顶值,则正确处理右值和底值。检查这把小提琴:
有什么想法吗
注意我不想设置元素的宽度和高度,因为我希望它相对于视口,也不想将宽度和高度设置为百分比,我只想保持边界偏移为固定值,比如“10px”这里。您可以通过javascript和设置iframe大小后找到容器大小。您可以通过javascript和设置iframe大小后找到容器大小。不确定原因,但是,经过一番尝试后,iframe似乎出于某种原因不喜欢这种定位方式 我可以做的一个解决方案是将它封装在一个div中,并将div设置为您想要的大小/位置
此外,尽管是500x500px,但正文背景色将继续填充页面中的所有空间,但div的大小仍然正确。(调整主体的大小以查看它…不确定原因,但是,经过一段时间的尝试后,iFrame似乎出于某种原因不喜欢这种定位方式 我可以做的一个解决方案是将它封装在一个div中,并将div设置为您想要的大小/位置 此外,尽管是500x500px,但正文背景色将继续填充页面中的所有空间,但div的大小仍然正确。(调整主体大小以检出它…不能同时设置“左”和“右”或“上”和“下”属性编辑:事实证明,只要你是绝对定位的,你就可以做到这一点,正如我刚刚从这篇文章中学到的:(所有提示都归功于@thirdender!)。不过,iFrame的行为似乎有所不同 您可以通过以下方式实现您的目标: 请注意,不需要绝对定位。我还使用了css3属性框大小调整。您必须添加特定于浏览器的前缀,如下所述 请注意,此解决方案在旧浏览器中不起作用,最终将使用滚动条。如果你想让它与浏览器完全兼容,我想你必须求助于一些js,但是你会遇到与禁用此功能的人的问题。你也可以尝试两者的结合。这完全取决于您的受众以及您如何找到它。您不能同时设置left和right属性,也不能同时设置top和bottom属性编辑:事实证明,只要你是绝对定位的,你就可以做到这一点,正如我刚刚从这篇文章中学到的:(所有提示都归功于@thirdender!)。不过,iFrame的行为似乎有所不同 您可以通过以下方式实现您的目标: 请注意,不需要绝对定位。我还使用了css3属性框大小调整。您必须添加特定于浏览器的前缀,如下所述
请注意,此解决方案在旧浏览器中不起作用,最终将使用滚动条。如果你想让它与浏览器完全兼容,我想你必须求助于一些js,但是你会遇到与禁用此功能的人的问题。你也可以尝试两者的结合。这一切都取决于你的受众以及你如何找到它……我在这里找到了这个页面,它解释了一些解决方案,这些解决方案也与只使用CSS的旧IE浏览器兼容。否则,可能需要进行一些JavaScript计算。我在这里找到了这个页面,它解释了一些解决方案,这些解决方案也与只使用CSS的旧IE浏览器兼容。否则可能需要一些JavaScript计算。奇怪的是,它不能同时设置左、右、上、下,如果我将“上、左、右、下”设置为“0”,一切都可以。但我喜欢你的答案。CSS规范的一部分是,你可以在绝对位置的元素上同时设置所有四个
顶部
、右侧
、底部
、和左侧
属性,只要你不指定固定的宽度或高度。图元的宽度或高度将自动计算。此外,该技术非常可靠,适用于IE7以后的所有浏览器。瞧,@thirden,这对我来说是新鲜事。你的小提琴给我留下了深刻的印象,尽管你把我和你正在使用的非标准css混淆了一点(看起来和我不太习惯的css相似,我想这不会真正影响结果)。你能从原来的问题中更新提琴以达到预期的结果吗?我很好奇,也很想学习…@PeterVR,是的,jsFiddle可以让你使用而不是CSS。我试着用IFRAME
做同样的把戏,但显然当width:auto时,它们的行为与DIV
或SPAN
元素不同代码>被使用。它们的行为更像TABLE
元素,需要特定的宽度,否则它们将根据内容的宽度进行调整(参见此)。我必须把一个额外的DIV
放在我想要的位置,然后将IFRAME
放在DIV
内,设置为width:100%;身高:100%代码>@第三,你应该将此作为答案发布!你的比我的要好得多(我自己不太喜欢盒子大小),我们应该停止关心-IE7。你会得到我的选票!将更正我的答案和thx的教训和有趣的阅读!奇怪的是,它不能同时设置左、右、上、下,如果我将上、左、右、下设置为“0”,一切都可以。但我喜欢你的答案。CSS规范的一部分是,你可以在绝对位置的元素上同时设置所有四个顶部
、右侧
、底部
、和左侧
属性,只要你不指定固定的宽度或高度。元素的宽度或高度是自动计算的