Mi piacerebbe avere un piccolo div rosso con larghezza completa in una posizione superiore fissa, all'interno di un altro div che ha overflow: scroll
. Spero che jsFiddle chiarisca: http://jsfiddle.net/mCYLm/2/.Usa la larghezza completa escludendo la barra di scorrimento con "posizione: assoluta"
Il problema è che il div rosso si sovrappone alla barra di scorrimento. Immagino che right: 0
significhi il lato destro di div.wrapper
; non sottrarre la barra di scorrimento di div.main
. Quando sposto lo overflow: scroll
in div.wrapper
, il banner rosso ha le dimensioni corrette (fiddle). Tuttavia, non si trova più in una posizione fissa (lo scorrimento verso il basso fa scorrere il banner verso l'alto).
Come posso ottenere le seguenti due cose insieme?
- Il banner rosso è nella posizione fissa come in this fiddle.
- Il banner rosso ha una larghezza intera, ad eccezione della barra di scorrimento come in this fiddle.
Mi piacerebbe farlo funzionare su 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;
}
Si potrebbe alterare il 'immobile right' in base alla larghezza della barra di scorrimento ... Richiede JS per assicurarsi che ogni barra di scorrimento sarebbe stato correttamente misurato .. –
@Gaby aka G. Petrioli : Sì, funziona, grazie.Non è molto soddisfacente, però. Vado avanti con quello se non ci saranno risposte solo CSS. – pimvdb
Perché non posizionare semplicemente l'elemento a scorrimento sotto la barra? Come [in questo esempio] (http://jsfiddle.net/mCYLm/6/). Questo è l'unico modo semplice in cui vedo che potresti farlo. – Qtax