Любой способ определить, если элемент обернут? - PullRequest
7 голосов
/ 01 февраля 2011

По сути, у меня есть определенный элемент HTML (в данном случае, div), который переносится на новую строку в случае разрешения экрана ниже среднего из-за плавающего элемента.Я хочу контролировать это поведение, размещая и / или стилизуя элемент по-разному, если он действительно обернут или будет перенесен при изменении размера / загрузки.

Возможно ли это?

1 Ответ

9 голосов
/ 01 февраля 2011

Вы можете подсчитать количество текстовых прямоугольников, которые у него есть, используя element.getClientRects(), который возвращает объект ClientRect для каждого поля рамки элемента.Это должно быть сделано для встроенного элемента, такого как <span>, чтобы каждая строка текста имела свой собственный прямоугольник, но его достаточно просто использовать:

window.onresize = function () {
    var span = document.getElementById("myDiv").getElementsByTagName("span")[0],
        rect = span.getClientRects();

    if (rect.length > 1) // more than 1 line of text
        doSomethingWithElement(span.parentNode);
}
...