Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Вертикальное выравнивание

3.4K
15 августа 2007 года
cogonet
198 / / 25.07.2006
Столкнулся с такой проблемой - нужно картинку выровнять в блоке по вертикали и по горизонтали. Картинка должна выравниватся в не зависимости от ее ширины и высоты. Т.е. всегда по-центру блока.
Наваял такое:
Код:
<style type="text/css">
.smallPictureBlock{
    width:125px; height:125px;
           line-height:125px;
    background:url(/img/bgBlock.gif) no-repeat;
    text-align:center;
    vertical-align:middle;
}
</style>

<div class="smallPictureBlock">
  <img src="img/port/p1.gif" alt="" />
</div>


И...нифига ( Ну, по-горизонтали то выровнялось, но этого мало.
Спросил у Гугла:
1. http://cssing.org.ua/2007/04/26/another-css-valign-method/
2. http://www.jakpsatweb.cz/css/css-vertical-center-solution.html

1-ый способ нравится больше. Меньше кода, все гуд в нормальных браузерах. Но вот осел! Во-первых у меня класс а не айди (а как достучатся до дива с помощью javascrit через его имя класса я так и не осилил), а во-вторых таких блоков может быть неограниченное количество.

Вобщем - Бен, I need help!
352
15 августа 2007 года
skywalker
694 / / 10.02.2006
Как то уже выкладывал эту ссылку:
http://www.pmob.co.uk/temp/vertical-align3.htm
3.4K
15 августа 2007 года
cogonet
198 / / 25.07.2006
Пасиб. То что доктор прописал!

А может кто еще подскажет как яваскриптом достучатся до дива через имя класса? Так, на всякий случай :)
251
15 августа 2007 года
SkyMаn
1.7K / / 31.07.2007
Цитата: cogonet

А может кто еще подскажет как яваскриптом достучатся до дива через имя класса? Так, на всякий случай :)



[document.]classes.className.stylePropertyName
пример:
document.classes.myclass.visibility='hidden'

3.4K
15 августа 2007 года
cogonet
198 / / 25.07.2006
И тебе спасибо добрый человек ! :)
2.1K
15 августа 2007 года
vectoroc
234 / / 25.07.2006
http://dean.edwards.name/my/cssQuery/
35K
21 декабря 2007 года
akellas
1 / / 21.12.2007
Цитата: cogonet

1-ый способ нравится больше. Меньше кода, все гуд в нормальных браузерах. Но вот осел! Во-первых у меня класс а не айди (а как достучатся до дива с помощью javascrit через его имя класса я так и не осилил), а во-вторых таких блоков может быть неограниченное количество.



Можно упростить задачу, ведь достукиваться до дива тебе нужно лишь для высоты, но она ведь известна, значит можно прямо так и написать

 
Код:
.smallPictureBlock  img{
    margin-top: expression((62-parseInt(offsetHeight)/2)  <0 ? "0" : 62-(parseInt(offsetHeight)/2) +'px') ;
    }

Где 62 это 125 из твоего ЦСС деленое на 2, в формуле ведь участвовала высота деленная на 2.

В общем случае нужно стучаться к обертке через parentNode, но тут можно обойтись малой кровью...

Вдобавок этот експрешн лучше использовать вместе с оптимизацией - ведь выполнять его при фиксированных пропорциях нужно лишь один раз при загрузке (http://cssing.org.ua/2007/12/06/expression-optimization/)
Заранее прошу прощения за публикацию ссылки на свой блог, только ради пользы делу...
hth

PS. Сорри что поднял августовскую тему, только заметил (
Надеюсь кому-то это пригодится
3.4K
22 декабря 2007 года
cogonet
198 / / 25.07.2006
offtop: Ого, мне отписал член WSG :eek: :D
спасибо - посмотрим что там. Давно хотел пообщатся коллега ;)
251
22 декабря 2007 года
SkyMаn
1.7K / / 31.07.2007
Цитата: cogonet
offtop: Ого, мне отписал член WSG :eek: :D


чей-чей?

3.4K
22 декабря 2007 года
cogonet
198 / / 25.07.2006
Цитата:
чей-чей?



WSG - Web Standards Group
http://web-standards.ru/

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог