Собственно сабж. Есть ли возможность определить является элемент блочным или строковым? Гугл молчит. Мой мозг говорит, что возможности такой нет, а ваш, господа? =)
[js]<span id="span"></span> <div id="div"></div> <script> function getStyle(el,styleProp) { if (el.currentStyle) var y = el.currentStyle[styleProp]; else if (window.getComputedStyle) var y = document.defaultView.getComputedStyle(el,null).getPropertyValue(styleProp); return y; } var span = document.getElementById('span') var div = document.getElementById('div') document.write('<p>span - ' + getStyle(span, 'display') + '</p>') document.write('<p>div - ' + getStyle(div, 'display') + '</p>') </script> [/js]
Чтото вы намудрили. function checkElement(obj) { var element = obj.tagName.toLowerCase(); if(element == 'div') alert('Блочный элемент'); else alert('Не блочный элемент'); } </script> <div onClick="checkElement(this);">ddd</div> добавь проверку на спан или <p> если нужно
Апельсин а если он стал блочным вопреки своей природе? Жизнь такая штука... Любого заблочить может... Hight блочный или не блочный браузер определяет через свойство display. Не важно, задано оно где-то или нет, оно все равно будет, и будет содержать ответ на вопрос.
igordata http://htmlbook.ru/content/blochnye-elementy Код (Text): К блочным элементам относятся контейнеры <div>, <h1> и <p>.
к сожалению, функцию на проверку говнокодера трудно написать есть блочные элементы, есть не блочные. Зачем придумывать велик, когда можно красиво сделать "по мануалу".
tommyangelo igordata Апельсин все еще сопротивляется А что же будет в таком случае: <hr style="display: block" id="hr">. Тоже блочный? Выходит, что да. Тогда смысл этого вашего велика?
Апельсин с li и с a можно проделывать всякое плюс к тому можно с дивам делать инлайн и инлайн-блок. трололомод: сдается мне ты просто не умеешь этим пользоваться
я знаю, что это и для чего используют, но предпочитаю обходиться стандартными средствами. Если уж делать заморочки и заумные проверки, тогда учитывать все ньюансы, то есть чтобы ситуация чуть выше не прокатывала. А иначе это все усложнение - бесполезно.
я делал для любого, а у вас проверка если див - то блочный - если не див - то не блочный. Вы думаете только див по умолчанию блочный? Вы ошибаетесь.
не важно как он описан в спецификации, важно то, какое у него свойство в момент отображения. и если это <span style="display:block"> то в браузере он отображен как блочный
Уговаривать на счёт чего? Я не понимаю что вы хотите сказать этим. Если нужно определить блочное ли отображение или нет у элемента при чём тут вообще какой элемент по умолчанию? его может менять и css и js и то что он когда то был блочным а сейчас нет, и отображается не как блочный - это и определяется. и при чём тут вообще тег hr? зачем ему писать стиль блочный если он и так по определению блочный
<br> тоже блочный, ага. потому, что эта "проверка" проверяет свойство, которое можно впихнуть в произвольные теги, которые эта самая проверка должна отсекать.
hr без проблем HTML: <style> hr {display: block; background-color: red;} </style> <hr> работает br браузер сам отсекает, ну и что, можете фильтровать, в любом случае ваша проверка тут не поможет но если задача сделать какой то скрипт в котором нужно определять в текущей момент див блочный или нет, то при чём тут будет br? будет задача отсекать br я думаю автор топика сам сможет добавить такую проверку