Используя js, чтобы определить, определяется ли ширина элемента его содержимым? - PullRequest
3 голосов
/ 30 сентября 2011

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

1 Ответ

4 голосов
/ 30 сентября 2011

Одна мысль приходит на ум:

  • Сохраните .width()

  • Проверьте элемент .width().Если это изменилось, это зависело от содержания.Если это не изменилось, это было установлено, используя CSS.

  • Восстановите детское свойство display или переместите его обратно, если необходимо.

Здесь - это очень примитивный прототип, который просто удаляет все содержимое элемента:

function determineWidth(jQueryElement)
{
   var widthBefore = jQueryElement.width();

  jQueryElement.html(""); // Empty the element

  var widthAfter = jQueryElement.width();

  if (widthAfter != widthBefore)
    var result = "The width depended on the content.";
   else
    var result = "The width did NOT depend on the content.";

  alert("Before: "+widthBefore+" After: "+widthAfter+" - "+result);

}

У элементов уровня блока есть один побочный эффект: поскольку их ширина не зависит от содержимого, скрипт вернется "...did not зависимость .... ", даже если для элемента не задана явная ширина в CSS, как вам требуется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...