Heim  >  Artikel  >  Web-Frontend  >  Wie finde ich die wahre Zeilenhöhe eines DIV in JavaScript?

Wie finde ich die wahre Zeilenhöhe eines DIV in JavaScript?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-09 07:40:02685Durchsuche

How to Find the True Line-Height of a DIV in JavaScript?

Ermitteln der wahren Zeilenhöhe von DIVs in JavaScript

In JavaScript ist es oft wünschenswert, die tatsächliche Zeilenhöhe eines DIV zu bestimmen , anstatt sich auf CSS-Eigenschaften zu verlassen. Dies ist besonders nützlich, wenn die Zeilenhöhe nicht explizit in CSS definiert ist.

Die Herausforderung

Traditionelle Methoden zur Überprüfung des style.lineHeight-Attributs stellen die CSS-Definition bereit Zeilenhöhe, aber dieser Wert spiegelt möglicherweise nicht genau die tatsächlich auf der Seite gerenderte Zeilenhöhe wider.

Die Lösung: Verwenden ClientHeight

Die Lösung liegt in der Nutzung der clientHeight-Eigenschaft. Diese Eigenschaft, die die Höhe eines Elements einschließlich seines Abstands und Rands misst, kann auch verwendet werden, um die Zeilenhöhe eines DIV unter den folgenden Bedingungen zu bestimmen:

  • Die Schriftfamilie und die Schriftgröße sind Das Gleiche gilt für alle Zeilen.
  • Es werden keine zusätzlichen Eigenschaften für die Zeilenhöhe über CSS oder den Inline-Stil angewendet Attribute.

Implementierung

Um die tatsächliche Zeilenhöhe mit clientHeight zu erhalten, führen Sie die folgenden Schritte aus:

  1. Klonen Sie das DIV in Frage, um sicherzustellen, dass alle relevanten Stile geerbt werden.
  2. Legen Sie das innerHTML des geklonten DIV fest B. „A“.
  3. Hängen Sie das geklonte DIV an den übergeordneten Knoten des ursprünglichen DIV an.
  4. Berechnen Sie die clientHeight des geklonten DIV.
  5. Entfernen Sie das geklonte DIV aus dem Dokument.

Code Snippet

function getLineHeight(el) {
    var temp = document.createElement(el.nodeName), ret;
    temp.setAttribute("style", "margin:0; padding:0; "
        + "font-family:" + (el.style.fontFamily || "inherit") + "; "
        + "font-size:" + (el.style.fontSize || "inherit"));
    temp.innerHTML = "A";

    el.parentNode.appendChild(temp);
    ret = temp.clientHeight;
    temp.parentNode.removeChild(temp);

    return ret;
}

Dieser Ansatz bietet eine einfache, aber effektive Methode zum genauen Messen der tatsächlichen Zeilenhöhe eines DIV, unabhängig von Überschreibungen von CSS-Eigenschaften.

Das obige ist der detaillierte Inhalt vonWie finde ich die wahre Zeilenhöhe eines DIV in JavaScript?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn