2016-09-14 2 views
6

Ich versuche, die Höhe von <br /> auf meiner Webseite zu bekommen. Ich benutze diesen Ausschnitt.Wie bekomme ich die Höhe von "br" Element mit jquery?

br_size = $('br').height(); 
console.log(br_size); 

Aber nur die Mozilla Firefox wie dieser Code, alle anderen Browser geben 0 zurück Gibt es einen kurzen JS-Code, zurück, um mir die richtige Höhe gibt?

PS: Ich benutze diese Methode, weil ich weiß, dass die benötigte Größe X ist X= other_size - 4*br_size

+0

Vielleicht sollten Sie versuchen, die Höhen mit 'line-height'css-Eigenschaft zu berechnen. –

+0

Sie sollten sich dies [Thema] ansehen (http://stackoverflow.com/questions/3518436/jquery-height-problem-with-chrome) –

+0

Ich veröffentlichte Antwort enthalten neue Lösung. – Mohammad

Antwort

2

Der Zeilenumbruch ist abhängig von der Zeilenhöhe in den HTML/BODY-Tags angegeben, wenn man dem Browser ihre eigenen wahrscheinlich nicht angegeben wird dann verwendet wird. Wenn Sie jedoch eine Zeilenhöhe angeben, z. B. 20px, sollte der Zeilenumbruch 20px betragen. Sie könnten wahrscheinlich JavaScript verwenden, um die Standard-line-height

(function() { 
 
    var br = document.getElementById('foo'); 
 
    alert(br.scrollHeight); 
 
    if (br.currentStyle) { 
 
    alert(br.currentStyle['lineHeight']); 
 
    } else { 
 
    alert(document.defaultView.getComputedStyle(br, null).getPropertyValue('line-height')); 
 
    } 
 
})();
<br id="foo" />

+1

gibt 0 in Chrom zurück .. funktioniert nur in FF –

+0

funktioniert für mich, erste Warnung ist "0", aber die zweite ist immer richtig. –

+0

Auf Chrome 52 zweite Warnung ist "normal" –

0

Wie wäre es outerHeight?

$('br').outerHeight(); 

https://jsfiddle.net/6fag6tos/

+0

Funktioniert nicht ... Ihre OuterHeight() zeigt 2px, weil Sie einen Rahmen über CSS setzen –

0

Es ist nicht zu bestimmen scheinen <br>height Eigenschaft hat. Auch Sie können es nicht in der Höhe des Browsers sehen. Wenn es eine andere elemetn nach <br> ist, können Sie diesen Code verwenden:

var height = $("br").next().position().top - $("br").position().top 
 
console.log(height);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<p>Hello</p> 
 
<br/> 
 
<p>Goodbye</p>

0

Versuchen this. Funktioniert auf Chrom.

var br = $('br').first(); 
var div = $('<div>Text</div>'); 

div.css({ 
    'font-size': br.css('font-size'), 
    'line-height': br.css('line-height'), 
    'position': 'fixed', 
    'visibility': 'hidden', 
}); 

$('body').append(div); 

alert(div.outerHeight()); 

div.remove(); 
Verwandte Themen