2010-12-03 4 views
1

Я пытаюсь выяснить, можно ли рассчитать площадь HTML element на веб-сайте? В пикселях, в процентах или как угодно.Вычислить область HTML-элемента на веб-сайте?

Мои первые мысли заключались в том, чтобы сделать предположение, что элемент имеет ширину и высоту 100%, а затем попытайтесь получить размер с помощью сопоставления между HTML and CSS.

Итак, если в ссылочном CSS-файле есть атрибут width/height, я мог бы сказать, что элемент элемент body покрыт столбцом, который занимает 25% площади (все зависит от вашего разрешения экрана, конечно - и я все еще пытаюсь понять, как я смогу сделать это программно).

Или должен ли я отображать веб-сайт и выполнять мои вычисления на основе изображения с наиболее распространенным разрешением экрана в то время).

Есть ли еще более возможные решения?

(В настоящее время я пытаюсь решить эту проблему в Perl, но я полагаю, любой язык, который получил библиотеку для этой цели будет оценен, чтобы узнать о!)


EDIT: мне нужно получить визуальную область для каждого отдельного элемента на странице. Например, если есть элементы поверх элемента <body>, который покрывает его визуально, я хочу исключить эту область из <body> и так далее. Простая трассировка, чтобы найти видимую область для каждого элемента на странице.


EDIT: Предположим, мы исключаем JavaScript - возможны ли какие-либо другие подходы?

+0

Что вы пытаетесь достичь через это? Если вы описываете проблемное пространство, возможно, кто-то может предоставить решение, о котором вы не подумали. – Lazarus 2010-12-03 13:15:48

+0

Обновлено с помощью редактирования! – Zolomon 2010-12-03 13:34:14

+0

Выполнение этого тривиально. Выполнение этого без использования Javascript безумно. – AmbroseChapel 2010-12-04 00:26:17

ответ

5

Лично я хотел бы использовать JQuery - даже если вы не используете библиотеку, лучше всего будет решением JavaScript.

var $elt = $('#some-element-id'), 
    height = $elt.height(), 
    width = $elt.width(), 
    area = height * width; // contains the area in px^2 

http://api.jquery.com/height и http://api.jquery.com/width

0

было бы целесообразно использовать JavaScript? Если это так, вы можете получить ширину/высоту с чем-то вроде этого:

document.getElementById(YourElementsId).style.height; 
document.getElementById(YourElementsId).style.width; 

Однако это depening о том, как элементы sytled в первую очередь. Другим вариантом было бы

document.getElementById(YourElementsId).clientHeight; 
document.getElementById(YourElementsId).clientWidth; 
3

Это такая простая проблема, которую я не думаю, что JQuery является необходимым, если вы не используете его.

Попробуйте запустить:

<div id="myParent"> 
    What's up? 
    <div id="myDiv">Hello there!</div> 
</div> 

С

var myDiv = document.getElementById("myDiv"); 
    alert(myDiv.offsetHeight); 
    alert(myDiv.offsetWidth); 

    var myParent = myDiv.parentNode; 
    alert(myParent.offsetHeight); 
    alert(myParent.offsetWidth); 

Разделить полученную ширину, чтобы получить% пространства элемент принимает его родителей, или просто использовать абсолютные значения пикселей.