Допустим, правило таково:
.largeField {
width: 65%;
}
Есть ли способ как-то вернуть 65%, а не значение в пикселях?
Спасибо.
РЕДАКТИРОВАТЬ: К сожалению, использование методов DOM в моем случае ненадежно, так как у меня есть таблица стилей, которая импортирует другие таблицы стилей, и в результате параметр cssRules заканчивается либо нулевым, либо неопределенным значением.
Такой подход, однако, будет работать в самых простых случаях (один таблицу стилей, несколько отдельных декларации стилей внутри головки тега документа).
Ответы:
Боюсь, встроенного способа нет. Вы можете сделать что-то вроде этого:
источник
class="largeField"
в диапазон, в настоящее время вы выбираете пустой набор.Самый простой способ
источник
style="width:65%"
).Это определенно возможно!
Сначала вы должны скрыть () родительский элемент. Это предотвратит вычисление JavaScript пикселей для дочернего элемента.
Смотрите мой пример .
А теперь ... Интересно, обнаружил ли я этот хак первым :)
Обновить:
Один лайнер
Он оставит скрытый элемент перед
</body>
тегом, который вы можете захотеть.remove()
.См. Пример однострочного .
Я открыт для лучших идей!
источник
Вы могли получить доступ к
document.styleSheets
объекту:источник
styleSheets[0]
).for (var i=0; rules.length; i++)
работать? Не должно бытьfor (var i=0; i<rules.length; i++)
Поздно, но для новых пользователей попробуйте это, если стиль css содержит процент :
источник
Плагин jQuery, основанный на ответе Адамса:
Вернет 65%. Для лучшей работы возвращает только округленные числа, если вам нравится if (width == '65%'). Если бы вы использовали ответ Адамса напрямую, это не сработало (у меня что-то вроде 64.93288590604027). :)
источник
Основываясь на отличном и удивительном решении Тимофея, вот чистая реализация Javascript:
Надеюсь, это кому-то поможет.
источник
{
в конце первой строки.У меня аналогичная проблема с получением значений глобальной таблицы стилей в jQuery , в конце концов я пришел к тому же решению, что и выше .
Просто хотел связать эти два вопроса, чтобы другие могли извлечь пользу из более поздних выводов.
источник
Вы можете поместить стили, к которым вам нужно получить доступ с помощью jQuery, в:
Тогда должно быть возможно (хотя и не обязательно просто) написать функцию js, которая анализирует все в тегах стиля в заголовке документа и возвращает нужное значение.
источник
Вы можете использовать функцию css (width), чтобы вернуть текущую ширину элемента.
т.е.
См. Также: http://api.jquery.com/width/ http://api.jquery.com/css/
источник
В jQuery ничего нет, и даже в javascript нет ничего простого. Взяв ответ Тимофея и запустив его, я создал эту функцию, которая работает для получения любых свойств, которые вы хотите:
источник
Преобразование пикселей в проценты с помощью перекрестного умножения .
Настройка формулы:
1.) (element_width_pixels / parent_width_pixels) = (element_width_percentage / 100)
2.) element_width_percentage = (100 * element_width_pixels) / parent_width_pixels
Фактический код:
источник