0

后,我有这种情况http://jsfiddle.net/m_aleksandrova/9THdb/为什么分度:使水平滚动到父元素

div.with,后有:伪元素(流到右)之后。 其父级(div.container)需要垂直滚动。

<div class="container"> 
    <div class="with-after"></div> 
</div> 

问题是为什么:之后导致水平滚动?我认为如果:之后是绝对定位的,它不再是流动的。

是否有可能:在元素在垂直滚动下方流动并进一步向右移动之后?

Illustration of my question

回答

1

要acheive的变3,你必须做出以下修改您的类-后。

这里是Fiddle

变化CSS:

.with-after { 
    border: 1px solid green; 
    height: 50px; 
    padding: 0 93px; 
    position: absolute; 
    right: 480px; 
    z-index: -1; 
} 

你必须使你的情况下,主类即赢,后有绝对位置。这将消除它的流动,并通过Z-indexing它将位于垂直滚动的下方。希望这可以帮助。

的逻辑:

就像我刚才所说,你无法通过使位置欺骗CSS:相对主类和现在的位置是:绝对的同一类的伪元素。因此,为了达到在垂直滚动条下创建div的效果,必须为父级元素下面的类定义position:absolute。因此,定义一个具有不同位置的同一个类的psudo对于浏览器来说不会让浏览器识别出你想要的东西,并且通过同时使用伪类和实际元素类来表现奇怪行为,因此使它对于浏览器知道你想要什么,声明主要的后续类作为位置:绝对的,只是让浏览器知道它必须在父元素下面带有负Z指标。希望这有助于现在。

+0

谢谢,解释。现在我明白了,相对定位后不可能做到.with-after。并且我了解了关于欺骗CSS的观点。 – Maryna

1

有什么东西不喜欢这项工作吗? http://jsfiddle.net/David_Knowles/3arca/

.my-position-base {position: relative;} 

添加此包装给出了实现你在找什么所需的疯狂绝对定位的情况下。

+0

谢谢@Timidfriendly,据我了解,你使用与Nathan Lee相同的技术。谢谢! – Maryna