C'è un modo per ottenere l'altezza di un elemento se non esiste una regola di altezza CSS impostata per l'elemento Non posso usare il metodo jQuery di .height() perché ha bisogno di una regola CSS impostare prima? C'è un altro modo per ottenere l'altezza?Ottieni altezza di div senza altezza impostata in css
risposta
jQuery .height
restituirà l'altezza dell'elemento. Non ha bisogno della definizione CSS in quanto determina l'altezza calcolata.
È possibile utilizzare .height()
, .innerHeight()
o outerHeight()
basa su quello che ti serve.
.height()
- restituisce l'altezza dell'elemento esclude padding, border e margin.
.innerHeight()
- restituisce l'altezza dell'elemento include il riempimento ma esclude bordo e margine.
.outerHeight()
- restituisce l'altezza del div incluso il bordo ma esclude il margine.
.outerHeight(true)
- restituisce l'altezza del div tra cui margini.
Controlla qui sotto frammento di codice per la demo live. :)
$(function() {
var $heightTest = $('#heightTest');
$heightTest.html('Div style set as "height: 180px; padding: 10px; margin: 10px; border: 2px solid blue;"')
.append('<p>Height (.height() returns) : ' + $heightTest.height() + ' [Just Height]</p>')
.append('<p>Inner Height (.innerHeight() returns): ' + $heightTest.innerHeight() + ' [Height + Padding (without border)]</p>')
.append('<p>Outer Height (.outerHeight() returns): ' + $heightTest.outerHeight() + ' [Height + Padding + Border]</p>')
.append('<p>Outer Height (.outerHeight(true) returns): ' + $heightTest.outerHeight(true) + ' [Height + Padding + Border + Margin]</p>')
});
div { font-size: 0.9em; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="heightTest" style="height: 150px; padding: 10px; margin: 10px; border: 2px solid blue; overflow: hidden; ">
</div>
Solo una nota nel caso in cui gli altri hanno lo stesso problema.
Ho avuto lo stesso problema e ha trovato una risposta diversa. Ho trovato che ottenere l'altezza di un div l'altezza è determinata dal suo contenuto deve essere avviato su window.load o window.scroll non document.ready altrimenti ottengo altezze dispari/altezze minori, cioè prima le immagini hanno caricato. Ho anche utilizzato outerHeight().
var currentHeight = 0;
$(window).load(function() {
//get the natural page height -set it in variable above.
currentHeight = $('#js_content_container').outerHeight();
console.log("set current height on load = " + currentHeight)
console.log("content height function (should be 374) = " + contentHeight());
});
Probabilmente ottieni altezze inaspettate perché ci sono più istruzioni che cambiano l'altezza dopo averle usate/stampate. Si consiglia di chiedere altezze alla fine del tuo script – Gjaa
Per me '$ (window) .scroll (...)' funziona –
Assicurarsi inoltre che il div è attualmente aggiunto al DOM e visibile.
Si noti che questo potrebbe essere più adatto come commento che come risposta. – kkuilla
Non avrebbe avuto privilegi di commento, ragazzi rilassati. – StackOverflowed
Lo considero un bit fondamentale di informazioni, perché nessuna delle altre risposte funzionerà se l'elemento non è collegato al DOM per cominciare. – Guido
Può farlo in jQuery. Prova tutte le opzioni .height()
, .innerHeight()
o .outerHeight()
.
$('document').ready(function() {
$('#right_div').css({'height': $('#left_div').innerHeight()});
});
Esempio Schermata
Spero che questo aiuti. Grazie!!
- 1. CSS 100% altezza Div
- 2. CSS div 100% altezza
- 3. CSS Div riempimento rimanente altezza
- 4. Altezza DIV contenitore CSS. Domande DIV floating
- 5. Ottieni altezza completa di un DIV ritagliato
- 6. Altezza div di nidificazione CSS 100%
- 7. Due div sovrapposti con altezza variabile = senza altezza sul contenitore
- 8. Ottieni altezza riga dell'elemento senza 'px'
- 9. Div 100% altezza scroll
- 10. CSS Float non si estende Altezza Div
- 11. espandere div altezza onmouseover
- 12. Altezza div relativa relativa
- 13. Scrollbar senza altezza/altezza dinamica fissa con barra di scorrimento
- 14. jQuery - altezza div dinamica
- 15. altezza dinamica per DIV
- 16. CSS: altezza- riempire il resto del div?
- 17. jQuery match altezza div con altezza immagine dinamica
- 18. altezza 100% div
- 19. Titanio: ottieni altezza png senza creare ImageView
- 20. Layout colonna flessibile CSS senza altezza specificata
- 21. DIV, altezza e galleggiare
- 22. Altezza percentuale CSS quando il genitore ha altezza min/max
- 23. Div bambino al 100% altezza al genitore altezza automatica
- 24. CSS: Mantenere di un div altezza relativa alla sua larghezza
- 25. jQuery slideDown con altezza impostata e troppo pieno
- 26. CSS Div Immagine di sfondo Altezza fissa 100% Larghezza
- 27. Limite di altezza figlio DIV a padre DIV Altezza con fratello minore variabile
- 28. ReactJS - Ottieni altezza di un elemento
- 29. Come modificare un riempimento DIV senza influire sulla larghezza/altezza?
- 30. Ottieni proprietà elemento CSS (larghezza/altezza) come era impostato (in percentuale/em/px/ecc.)
Cosa ti fa pensare 'altezza()' deve avere una regola CSS? –
'height()' otterrà l'altezza calcolata degli elementi ... – elclanrs
sembra che tu stia cercando di ottenere l'altezza di qualcosa all'interno di un elemento nascosto? o l'elemento stesso è nascosto. Non si puo 'fare! – charlietfl