Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.12.2013, 18:27
Новичок на форуме
Отправить личное сообщение для Nilagor Посмотреть профиль Найти все сообщения от Nilagor
 
Регистрация: 02.12.2013
Сообщений: 3

Неправильное значение outerWidth()
Всем привет! Столкнулся с довольно странной вещью.
Есть примерно такой код html:
<ul id="cats">
	<li>
		<a href="#" class="one-cat-img"><img src="content/site/images/fake/cats/1.png" alt="@item.Link"></a>
		<a href="#" class="one-cat-title">Заголовок</a>
		<ul class="one-cat-menu">
			<li><a href="#">Пункт 1</a></li>
		</ul>
	</li>
	<li>
		<a href="#" class="one-cat-img"><img src="content/site/images/fake/cats/2.png" alt="@item.Link"></a>
		<a href="#" class="one-cat-title">Заголовок подлиннее</a>
		<ul class="one-cat-menu">
			<li><a href="#">Пункт 1</a></li>
			<li><a href="#">Пункт 2</a></li>
			<li><a href="#">Пункт 3</a></li>
		</ul>
	</li>
</ul>


ul#cats li имеют display: inline-block. Картинка, заголовок и подменю расположены в столбец друг за другом. Заголовок должен быть одной строкой и под его ширину должен подстроится весь li. Отчаялся сделать это средствами css и решил сделать простенький скриптик:

if ($('#cats > li').length > 0) {
	$('#cats > li').each(function () {
		var wid = $(this).find('.one-cat-title').outerWidth(true);
		console.log(wid);
		$(this).width(wid);
	});
}


И вот здесь возникла проблема - то что выводится в консоль не соответствует реальности и у каждого заголовка своя погрешность.
При этом если в консоли написать что-то типа:

$('#cats .one-cat-title').outerWidth()


То значение выводится верное. В чём косяк?
Да, на заголовке висит левый шрифт, подключённый через font-face, это может как-то повлиять?
Помогите, кто чем может, пожалуйста)
Ответить с цитированием
  #2 (permalink)  
Старый 02.12.2013, 19:02
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

<style> a { display: block; } </style>
Ответить с цитированием
  #3 (permalink)  
Старый 03.12.2013, 12:26
Новичок на форуме
Отправить личное сообщение для Nilagor Посмотреть профиль Найти все сообщения от Nilagor
 
Регистрация: 02.12.2013
Сообщений: 3

Сообщение от Rise Посмотреть сообщение
<style> a { display: block; } </style>
что-то не понял как это должно помочь?
у заголовков наоборот стоит
Код:
display: inline-block;
что бы ширина зависела от содержимого
Ответить с цитированием
  #4 (permalink)  
Старый 03.12.2013, 13:36
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,122

Сообщение от Nilagor
Отчаялся сделать это средствами css
Для помощи с внешними видами нужно делать полные тестовые примеры с картинками, текстами и пр. атрибутикой.
При том желательно показать итоговую картинку, которую стремишся повторить...

Иначе х/з что тебе подсказать.
Ответить с цитированием
  #5 (permalink)  
Старый 03.12.2013, 15:00
Новичок на форуме
Отправить личное сообщение для Nilagor Посмотреть профиль Найти все сообщения от Nilagor
 
Регистрация: 02.12.2013
Сообщений: 3

Сообщение от ksa Посмотреть сообщение
Для помощи с внешними видами нужно делать полные тестовые примеры с картинками, текстами и пр. атрибутикой.
При том желательно показать итоговую картинку, которую стремишся повторить...

Иначе х/з что тебе подсказать.
Помощь с внешними видами мне не нужна) Вопрос именно в неверном поведении outerWidth().
Однако продвижение есть - через фонт-фэйс подключено несколько начертаний одного шрифта. Стандартное прописано у body, а у заголовков своё.
Так вот outerWidth() выдавал значение ширины со стандартным font-face-ом, то ли не успевая подключить другой, то ли игнорируя его. Запуск скрипта от $(window).load() проблему не решил.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выводить значение раньше переменных Гробовщик Общие вопросы Javascript 11 10.09.2013 08:42
метод getDay() возвращает неправильное значение Tasia Элементы интерфейса 1 26.05.2012 14:44
Как не дать пользователю ввести неправильное значение в текстовый инпут ? boraldo Events/DOM/Window 4 12.04.2012 15:43
В contains() не подставляется значение переменной Heger jQuery 2 11.12.2011 20:26
Значение переменной salex009 jQuery 1 05.12.2011 16:55