Я пытаюсь обратить внимание на некоторые элементы страницы во время учебного курса пользовательского интерфейса (см. Эффект прожектора CSS3 с использованием закругленного прямоугольника с градиентами).
Например, здесь navbar:
и подсветка (остальная часть страницы затемняется):
Однако один из элементов моей страницы вызывает у меня проблемы. Здесь он позиционируется в Chrome:
Однако jQuery считает, что он равен 330 пикселей на 60 пикселей:
> var blah = $('.user-list')
[
<div class="well well-skinny user-list">…</div>
]
> blah.height()
60
> blah.width()
330
Это приводит к тому, что в центре внимания он слишком мал:
Странно, на странице есть много других элементов (например, navbar), размеры которых рассчитаны правильно, а прожектор показывает их правильно.
Что происходит с этим элементом, который заставляет jQuery показывать неправильную высоту и ширину? Дополнительная информация:
border-box
за исключением input
элементов, которые плохо воспроизводятся при загрузке.Ширина плохо объясняется во многих местах, однако она более точно определяется как ширина "контекстного окна". Больше информации здесь.
Ширина элемента css (в соответствии с размером поля css)
если (это рамка)
css width = element content width + padding + border
если (это отступы)
css width = element content width + padding
Если (это контент-бокс, который по умолчанию)
css width = element content width
и так для высоты
jQuery.width() всегда дает ширину содержимого элемента.
Если вы хотите .innerWidth()
ширину и высоту элементов с помощью прокладки, вы можете использовать .innerWidth()
и innerHeight()
.
Если вы хотите включить размер границы, чем использовать .outerWidth()
и .outerHeight()
outerHeight()
иouterWidth()
?height()
на самом деле вычисляетinnerHeight()
для этого элемента иouterHeight()
для других элементов? Это было бы интересно ...