Me gustaría tener un pequeño div rojo con ancho completo en una posición superior fija, dentro de otro div que tiene overflow: scroll
. Espero que jsFiddle lo aclare: http://jsfiddle.net/mCYLm/2/.Usar ancho completo excluyendo la barra de desplazamiento de desbordamiento con "posición: absoluta"
El problema es que el div rojo se superpone a la barra de desplazamiento. Supongo que right: 0
significa el lado derecho de div.wrapper
; no resta la barra de desplazamiento de div.main
. Cuando muevo el overflow: scroll
en div.wrapper
, el banner rojo tiene el tamaño correcto (fiddle). Sin embargo, ya no está en una posición fija (desplazarse hacia abajo hace que la pancarta se desplace hacia arriba).
¿Cómo puedo lograr las siguientes dos cosas juntas?
- El cartel rojo está en la posición fija como en this fiddle.
- El banner rojo tiene ancho completo excepto la barra de desplazamiento como en this fiddle.
Me gustaría hacer que esto funcione en Google Chrome.
HTML:
<div class="wrapper">
<div class="red-banner"></div>
<div class="main">
<div class="item">foo</div>
<div class="item">foo</div>
<div class="item">foo</div>
<div class="item">foo</div>
</div>
</div>
CSS:
div.wrapper {
position: relative;
}
div.main {
height: 200px;
overflow-y: scroll;
}
div.item {
border: 1px solid black;
margin: 20px;
padding: 20px;
}
div.red-banner {
background-color: red;
position: absolute;
left: 0;
top: 0;
right: 0;
height: 20px;
}
Usted podría alterar la propiedad 'right' para que coincida con el ancho de la barra de desplazamiento ... requiere JS para asegurarse de que cualquier barra de desplazamiento se mide correctamente .. –
@Gaby alias G. Petrioli : Sí, eso funciona, gracias.Aunque no es muy satisfactorio. Continuaré con eso si no habrá respuestas exclusivas de CSS. – pimvdb
¿Por qué no simplemente colocar el elemento desplazado debajo de la barra? Me gusta [en este ejemplo] (http://jsfiddle.net/mCYLm/6/). Esa es la única forma sencilla en que veo que puedes hacer esto. – Qtax