Просто интересно - как с помощью jQuery - я могу получить элементы, отформатированные для общего заполнения и поля и т. Д.? т.е. 30 пикселей 30 пикселей 30 пикселей 30 пикселей или 30 пикселей 5 пикселей 15 пикселей 30 пикселей и т. д.
Я попытался
var margT = jQuery('img').css('margin');
var bordT = jQuery('img').css('border');
var paddT = jQuery('img').css('padding');
Но это не работает? http://jsfiddle.net/q7Mra/
Ответы:
Согласно документации jQuery , сокращенные свойства CSS не поддерживаются.
В зависимости от того, что вы подразумеваете под «полным заполнением», вы можете сделать что-то вроде этого:
источник
auto
или2%
илиinherit
?$( elem ).css([ "borderTopWidth", "borderRightWidth", "borderBottomWidth", "borderLeftWidth" ]).
Информацию по каждому из них можно найти в документации API jQuery:
Вот отредактированный jsFiddle, показывающий результат.
Вы можете выполнить те же операции для высоты, чтобы получить ее поля, границу и отступы.
источник
margin-left
иmargin-right
, а могут бытьem
иpx
.height
неwidth
?jQuery.css()
возвращает размеры в пикселях, даже если сам CSS указывает их в em, или в процентах, или как-то еще. Он добавляет единицы измерения ('px'), но вы, тем не менее, можете использовать ихparseInt()
для преобразования в целые числа (илиparseFloat()
, если имеют смысл доли пикселей).http://jsfiddle.net/BXnXJ/
источник
Это работает для меня:
Пример результата:
Чтобы сделать итог:
источник
Граница
Я считаю, что вы можете получить ширину границы, используя
.css('border-left-width')
. Вы также можете выбрать верхнее, правое и нижнее значения и сравнить их, чтобы найти максимальное значение. Ключевым моментом здесь является то, что вы должны указать конкретную сторону.Обивка
См. JQuery Calculate padding-top как целое число в пикселях
Прибыль
Используйте ту же логику, что и граница или отступ.
В качестве альтернативы вы можете использовать outerWidth . Псевдокод должен быть
margin = (outerWidth(true) - outerWidth(false)) / 2
. Обратите внимание, что это работает только для поиска поля по горизонтали. Чтобы найти поле по вертикали, вам нужно будет использовать outerHeight .источник
У меня есть фрагмент, который показывает, как получить интервалы между элементами с помощью jQuery:
источник
Если элемент, который вы анализируете, не имеет поля, границы или чего-либо еще, вы не сможете его вернуть. На вершинах вы сможете выбрать «авто», которое обычно используется по умолчанию.
Из вашего примера я вижу, что у вас есть
margT
переменная as. Не уверен, что пытаетесь получить максимальную маржу. В таком случае вам следует использовать.css('margin-top')
.Вы также пытаетесь получить стилизацию из img, что приведет (если у вас их более одного) в массив.
Что вам следует сделать, так это использовать
.each()
метод jquery.Например:
источник
возвращение:
получить значение:
Редактировать:
используйте плагин jquery: jquery.sizes.js
источник