Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 17.08.2012, 11:34
Интересующийся
Отправить личное сообщение для any.zicky Посмотреть профиль Найти все сообщения от any.zicky
 
Регистрация: 06.06.2012
Сообщений: 20

Применить свойство аттрибута height для каждого ul li элемента
Добрый день.

Не пойму как можно применить свойство аттрибута height для каждого ul li элемента.

Есть структура списка
...
<div class="list">
<ul class="no_mark">
<li id="<?=$i?>"><img src="<?=$src?>"/>Фото номер <?=$i?></li>
</ul>
</div>
...


Проблема в том что картинки все разного размера , и из за этого li у которых маленькие картинки идут с "пустыми местами" после фоток, у больших все норм так как они растягиваються во весь ли.

Решил сделать такой код который бы убирал "пустые места".
<script type="text/javascript">
$(document).ready(function(){
      $('a.NaviIco').click(function(){
        for(var i=0;i<$('.list ul li').size();i++){
           if($('.list ul li img').eq(i).height() < '70' )
               $('.list ul li').eq(i).css('height','100px');
        }
	      });
});
</script>


не пашет (точнее пашет,но немного неправильно чтоли =))

Может есть другие способы какие-нибудь?

PS:К сожалению размер фото просто нельзя поменять.

Последний раз редактировалось any.zicky, 17.08.2012 в 11:51.
Ответить с цитированием
  #2 (permalink)  
Старый 17.08.2012, 11:56
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

any.zicky,
Выставьте приемлимый общий размер для картинки

<img height="45" src="<?=$src?>"/>Фото номер <?=$i?>
Ответить с цитированием
  #3 (permalink)  
Старый 17.08.2012, 12:03
Интересующийся
Отправить личное сообщение для any.zicky Посмотреть профиль Найти все сообщения от any.zicky
 
Регистрация: 06.06.2012
Сообщений: 20

Может не правильно написал, размер я допустим поменяю,все вроде норм стало,а вот к тексту ФОТО Номер {i} , в дальнейшем добавиться Descripton из БД, соответственно текст в некоторых ли больше станет и height будет разниться Смысл в том что нужно пройти каждый li посмотреть в зависимости от текста его размер и если текста мало, то height сделать меньше.
Ответить с цитированием
  #4 (permalink)  
Старый 17.08.2012, 12:13
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

any.zicky,
Выложите Пару примеров с текстом и картинкой
И потом - почему не оставить Автовысоту <li> ? заранее не выставляя ему размер ? - отступы же задаёте padding
Ответить с цитированием
  #5 (permalink)  
Старый 17.08.2012, 12:22
Интересующийся
Отправить личное сообщение для any.zicky Посмотреть профиль Найти все сообщения от any.zicky
 
Регистрация: 06.06.2012
Сообщений: 20

- норм как должно быть
- пустые места

Всмысли в css li поставить height:auto?
Ответить с цитированием
  #6 (permalink)  
Старый 17.08.2012, 13:27
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

any.zicky,
HTML код со стилем - не картинки (Или в Фш править ? (Хотя они тоже полезны
Ответить с цитированием
  #7 (permalink)  
Старый 17.08.2012, 13:38
Интересующийся
Отправить личное сообщение для any.zicky Посмотреть профиль Найти все сообщения от any.zicky
 
Регистрация: 06.06.2012
Сообщений: 20

<div class="list">
	<ul class="no_mark">
<?foreach($ListItems as $arItem):?>
	<li id="<?=$id?>">
		<p><?=$arItem['PREVIEW_TEXT']?></p>
		<div class="review-logo"><?if(is_array($arItem['PREVIEW_PICTURE'])):?><img src="<?=$arItem['PREVIEW_PICTURE']['SRC']?>" alt="<?=$arItem['PREVIEW_PICTURE']['DESCRIPTION']?>" /><?endif?></div>
		<div class="review-author">
			<?if($arItem['DISPLAY_PROPERTIES']['AUTHOR']):?><strong><?=$arItem['DISPLAY_PROPERTIES']['AUTHOR']['VALUE']?></strong><?endif?>
			<?if($arItem['DISPLAY_PROPERTIES']['JOB']):?><?=$arItem['DISPLAY_PROPERTIES']['JOB']['VALUE']?><?endif?> (<?=$arItem['NAME']?>)
		</div>
	</li>
<?endforeach;?>
	</ul>
</div>


Код такой.

Код:
.list p{
	padding:0 0 12px 0; margin:0 0 12px 0;
	border-bottom:#e3e3e3 1px solid;
	color:#666; line-height:18px; font-size:12px;}

.review-logo{
	float:left;
	width:40px;
	text-align:center;}
.review-logo img{
	max-width:auto; height:auto;}
.review-author{
	float:right;
	width:155px;}
.review-author{
	color:#666; font-size:12px; line-height:18px;}
.review-author strong{
	font-weight:400; color:#333;}


.list{
	overflow:hidden; position:relative;
	width:242px; margin-bottom:12px;}
.list ul{
	position:relative;
	width:30000px;}
.list ul li{
	width:242px; float:left; overflow:hidden;
	padding:0 0 10px 0;
	font-size:12px; line-height:16px; color:#666;}
Вот css.
Ответить с цитированием
  #8 (permalink)  
Старый 17.08.2012, 14:00
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,121

Сообщение от any.zicky
Не пойму как можно применить свойство аттрибута height для каждого ul li элемента.
Типа набросок...

<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<!--
<link rel="stylesheet" type="text/css" href="tmp.css" />
-->
<style type="text/css">
.no_mark li {
	height: 100px;
	border: 1px solid;
}
#scr1 img {
	height: 30px;
}
#scr2 img {
	height: 50px;
}
#scr3 img {
	height: 20px;
}
</style>
<script type="text/javascript">
$(document).ready(function (){
	$('button').click(function (){
		$('.no_mark img').each(function (){
			var h=$(this).height();
			h=(h+5)+'px';
			this.parentNode.style.height=h;
		});
	});
});
</script>
</head>
<body>
<div class="list">
	<ul class="no_mark">
		<li id='scr1'><img src="http://javascript.ru/forum/images/smilies/smile.gif" />Фото номер 1</li>
		<li id='scr2'><img src="http://javascript.ru/forum/images/smilies/smile.gif" />Фото номер 2</li>
		<li id='scr3'><img src="http://javascript.ru/forum/images/smilies/smile.gif" />Фото номер 3</li>
	</ul>
</div>
<button>Go</button>
</body>
</html>
Ответить с цитированием
  #9 (permalink)  
Старый 17.08.2012, 15:19
Интересующийся
Отправить личное сообщение для any.zicky Посмотреть профиль Найти все сообщения от any.zicky
 
Регистрация: 06.06.2012
Сообщений: 20

У меня код мой первый делает тоже самое Спасибо большое всем, оставил так как написал {ksa} ,ток цикл по li. Предложили еще вариант о том что Description сократить до трех строк ,а потом в div'e скрытом его полностью раскрывать как на картинках,увеличивая заодно height li.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Узнать CSS правило для элемента vinet Events/DOM/Window 4 10.12.2010 08:12
onClick эвент для всего документа, кроме отдельно взятого элемента DOM el_erizo Events/DOM/Window 5 19.03.2010 15:09
Чтоб ссылка появлялась один раз для каждого пользователя (по IP или Cookies) Sequoia Общие вопросы Javascript 2 28.01.2010 19:16
эмуляция события click для элемента select Polo Events/DOM/Window 4 16.12.2009 13:29
Применение функции для каждого элемента sergeygerasimov jQuery 2 26.11.2008 11:15