Определение ширины: авто в jQuery

Я получаю ширину элементов, используя jQuery, и предпочел бы, чтобы я мог указать, была ли указана явная ширина (и высота).

<div id="test"></div>
<script type="text/javascript">
$(function() { alert($('#test').css('width')); });
</script>

Это предупредит неявную ширину div с точки зрения того, сколько пикселей он занимает на экране клиента. Есть ли способ, что если ширина либо отсутствует, либо установлена ​​как width: auto , что ее можно проверить с помощью jQuery?

То есть вместо приведенного выше примера, возвращающего целое число, он вернет либо auto или undefined . Или, альтернативно, существует ли эквивалент функции isAuto ?

16
задан Derek H 25 August 2010 в 15:38
поделиться

4 ответа

На данный момент я не верю, что это возможно. По крайней мере, ни в каком другом браузере, кроме IE. IE реализует element.currentStyle , который представляет стили, которые были написаны в файле CSS. С другой стороны, остальные браузеры реализуют window.getComputedStyle , который возвращает вычисленные значения этих стилей. Это то, что вы получаете там, числовое значение вместо auto.

Единственный способ обойти это - проанализировать объявления CSS из document.styleSheets .

Ссылки:

9
ответ дан 30 November 2019 в 21:45
поделиться

Я не совсем уверен, правильно ли я отвечаю на ваш вопрос, но если вы используете функцию width () , это даст вам целое число, представляющее ширину визуализации в пикселях. .

0
ответ дан 30 November 2019 в 21:45
поделиться
  1. создать функцию
  2. передать идентификатор элемента css в функцию
  3. написать случай, когда оператор должен выполняться для свойства ширины идентификатора элемента

ПРИМЕЧАНИЕ: для использования на нескольких элементах было бы разумно использовать цикл с массивом имен элементов

0
ответ дан 30 November 2019 в 21:45
поделиться

$('#test')[0].style.width=="auto" должно работать: http://jsfiddle.net/KxTLE/ и http: //jsfiddle.net/KxTLE/1/ Попробуйте

jQuery.fn.isAuto=function() {
if(this[0]) {
    var ele=$(this[0]);
    if(this[0].style.width=='auto' || ele.outerWidth()==ele.parent().width()) {
        return true;
    } else {
        return false;
    }
}
return undefined;
};

И пример: http://jsfiddle.net/KxTLE/6/

4
ответ дан 30 November 2019 в 21:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: