Применить свойство аттрибута 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> не пашет :no: (точнее пашет,но немного неправильно чтоли =)) Может есть другие способы какие-нибудь? PS:К сожалению размер фото просто нельзя поменять. |
any.zicky,
Выставьте приемлимый общий размер для картинки <img height="45" src="<?=$src?>"/>Фото номер <?=$i?> |
Может не правильно написал, размер я допустим поменяю,все вроде норм стало,а вот к тексту ФОТО Номер {i} , в дальнейшем добавиться Descripton из БД, соответственно текст в некоторых ли больше станет и height будет разниться :( Смысл в том что нужно пройти каждый li посмотреть в зависимости от текста его размер и если текста мало, то height сделать меньше.
|
any.zicky,
Выложите Пару примеров с текстом и картинкой И потом - почему не оставить Автовысоту <li> ? заранее не выставляя ему размер ? - отступы же задаёте padding |
|
any.zicky,
HTML код со стилем - не картинки (Или в Фш править ? (Хотя они тоже полезны |
<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{ |
Цитата:
<!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> |
У меня код мой первый делает тоже самое :yes: Спасибо большое всем, оставил так как написал {ksa} ,ток цикл по li. Предложили еще вариант о том что Description сократить до трех строк ,а потом в div'e скрытом его полностью раскрывать как на картинках,увеличивая заодно height li.
|
Часовой пояс GMT +3, время: 03:57. |