2014-11-07 25 views
19

Mi sto spostando da Bootstrap 2 a Bootstrap 3. Nella versione precedente, stavo usando modali con contenuti lunghi, e le modali scorrevano automaticamente quando veniva raggiunta una determinata altezza massima.Twitter Bootstrap 3 Modal con corpo scorrevole

In Bootstrap 3, il modale si estende solo per mostrare l'intero contenuto, e devo usare il tasto page down per arrivare effettivamente alla fine di esso e vedere i pulsanti nel modal footer. Non riesco a utilizzare la barra di scorrimento nell'estrema destra della finestra del browser, perché è coperta dallo sfondo e, in ogni caso, non sarebbe intuitivo scorrere solo il contenuto nella casella modale.

Come posso ottenere un modale bootstrap 3 che inserisce automaticamente una barra di scorrimento per scorrere i contenuti quando si raggiunge un'altezza massima?

ho provato a installare l'altezza massima per la classe modale, in questo modo:

.modal{ 
    max-height:80%; 
} 
.modal-header{ 
    height:15% !important;  
} 
.modal-body{ 
    height:70%; 
    overflow:auto; 
} 
.modal-footer{ 
    height:15%; 
} 

Ma non funziona come previsto. La finestra modale raggiunge una dimensione massima, ma taglia solo il suo contenuto e il piè di pagina non viene nemmeno visualizzato.

Grazie per qualsiasi aiuto.

+0

Ho aggiornato la mia risposta. – Sebsemillia

risposta

60

Basta aggiungere:

.modal-content { 
    height:250px; 
    overflow:auto; 
} 

L'altezza può naturalmente essere adattati alle vostre esigenze personali.

Working Example

Aggiornamento:

In realtà è abbastanza facile. Basta aggiungere:

.modal-body { 
    max-height: calc(100vh - 212px); 
    overflow-y: auto; 
} 

al tuo css.

Utilizza vh e calc, che ha anche un buon supporto per il browser (IE9 +).

Questo si basa su questo answer. Si prega di leggere lì per informazioni più dettagliate, non copierò la sua risposta.

Working Example

+0

Grazie per la risposta. L'ho provato. Scorre anche l'intestazione e il piè di pagina del modale, voglio che l'intestazione e il piè di pagina del modale rimangano sempre visibili, come nel bootstrap 2, e scorrono solo il contenuto all'interno. Ciò causa anche problemi con le modal che hanno meno contenuto poiché la modale continua a mostrare all'altezza fissa con lo spazio bianco in basso. – Vero

+0

Lo esaminerò. – Sebsemillia

+0

Grazie! Questo ha funzionato alla grande. Ho solo usato il codice dall'aggiornamento e ho aggiunto overflow-x: hidden; ad esso per evitare una barra di scorrimento orizzontale nel popup. – Vero

2

Se si dispone di contenuto dinamico questo può essere un dolore. L'ho usato per assicurarmi che avesse l'altezza corretta e poi scorresse:

$('#modal').on('shown.bs.modal', function() { 
    $('.modal-dialog').css('height', $('.modal-dialog').height()); 
}); 

$('#modal').on('hidden.bs.modal', function() { 
    $('.modal-dialog').css('height', 'auto'); 
}); 
+0

Questa è la condizione che ho cercato di risolvere. Grazie! – ScottLenart

Problemi correlati