2013-11-20 13 views
5

ho il seguente codice HTML:Posizione div assoluta in un overflow-y: scorrere div

<div class="container"> 
<div class="scrollable-block"> 
    Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum. 
    <div class="absolute-div"></div> 
</div> 

e CSS:

.container { 
    width: 200px; 
    height: 300px; 
    background: green; 
} 

.scrollable-block { 
    width: 200px; 
    max-height: 250px; 
    overflow: scroll; 
    position: relative; 
} 

.absolute-div { 
    width: 20px; 
    height: 20px; 
    background: purple; 
    position: absolute; 
    top: 0; 
    right: -10px; 
} 

Ed ecco una demo live: http://jsfiddle.net/BYTam/1/

Il div verde è il contenitore e ha una larghezza fissa. Il div giallo è al suo interno e ha max-height e overflow-y: scroll. È pensato per avere la stessa larghezza di quello verde. Sto cercando di posizionare il div viola assolutamente, relativamente al div giallo, ma al di fuori del div verde - la ragione è che non voglio che il div giallo abbia una barra di scorrimento orizzontale. È possibile?

Grazie!

+0

Forse è possibile inserire la posizione: relativa su .container invece su .scrollable-block? Va bene per te? –

+0

No, purtroppo deve essere relativo al blocco .scrollable. Questo è un esempio miniato di una struttura più complessa che deve comportarsi in questo modo. –

risposta

0

Se non si desidera che la barra di scorrimento orizzontale basta cambiare overflow:scroll per

overflow-y:scroll; 
overflow-x:hidden; 
+0

Sì, ma in questo modo il div assoluto (viola) rimane nascosto. –

+0

Strano, per me il blocco viola è visibile nell'angolo in alto a destra del blocco a scorrimento –

1

Non si può fare con il vostro codice corrente. Il div assoluto attiva sempre la barra di scorrimento orizzontale perché è annidato all'interno del blocco scorrevole. Sembra che i browser moderni non consentano l'overflow-x: visibile con overflow-y: scroll.

+0

C'è un modo per ottenere il div assoluto per uscire dal contenitore div? Gli Z-index non sembra funzionare. –

+0

@YavorPunchev - non senza modificare l'HTML (o usare JavaScript per cambiare HTML/DOM) –

0

Non penso sia possibile avere il div assoluto che si apre dal blocco di scorrimento. Ho riscontrato lo stesso problema ed è stato risolto il problema:

<div class="absolute-div"></div> // replace it, put it in the main container. 

$(".absolute-div").css({"top":play with this+"px"}); 
// on scroll of the "scrollable-block" change the ".absolute-div" "top" property using Jquery.