Как получить фактическую ширину и высоту HTML-элемента? - PullRequest
767 голосов
/ 16 ноября 2008

Предположим, у меня есть <div>, который я хочу центрировать на дисплее браузера (область просмотра). Для этого мне нужно вычислить ширину и высоту элемента <div>.

Что мне использовать? Пожалуйста, включите информацию о совместимости браузера.

Ответы [ 13 ]

0 голосов
/ 31 мая 2018

Вот код для WKWebView , который определяет высоту определенного элемента Dom (не работает должным образом для всей страницы)

let html = "<body><span id=\"spanEl\" style=\"font-family: '\(taskFont.fontName)'; font-size: \(taskFont.pointSize - 4.0)pt; color: rgb(\(red), \(blue), \(green))\">\(textValue)</span></body>"
webView.navigationDelegate = self
webView.loadHTMLString(taskHTML, baseURL: nil)

func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
    webView.evaluateJavaScript("document.getElementById(\"spanEl\").getBoundingClientRect().height;") { [weak self] (response, error) in
        if let nValue = response as? NSNumber {

        }
    }
}
0 голосов
/ 04 марта 2015

Если offsetWidth возвращает 0, вы можете получить свойство width элемента style и найти его по номеру. "100px" -> 100

/ \ д * /. Exec (MyElement.style.width)

0 голосов
/ 25 марта 2009

также вы можете использовать этот код:

var divID = document.getElementById("divid");

var h = divID.style.pixelHeight;
...