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

JIEX

Писатель
Регистрация
9 Июн 2011
Сообщения
6
Реакции
0
Здравствуйте, помогите сделать вот такое меню(желательно использовать ul li:(
cr4h.png

Я сделал вот такое, но он далеко не такое как нужно:
dwX0.png

Нужно что бы там где пункт меню в две строчки так и отображалось в две строчки. Как сделать такое для IE7? Все что нашел в гугле, ничего не помогло.
Код:
                <div id="down-menu">                   
                    <ul>
                        <li><a href="#">Меритель (СИТ)</a></li>
                        <li><a href="#">Лабораторное оборудование</a></li>
                        <li><a href="#">Разметка</a></li>
                        <li><a href="#">Оснастка</a></li>
                        <li><a href="#">Режущий инструмент</a></li>
                        <li><a href="#">Слесарный инструмент</a></li>
                        <li><a href="#">Пневмоинструмент</a></li>
                        <li><a href="#">Оборудование</a></li>
                    </ul>               
                </div>
Код:
#down-menu{
    background: #eace15;
    height: 39px;
    border: 1px solid black;
}
#down-menu ul{
    width: 1000px;
    height: 39px;
    margin: 10px 0 0 30px;
}
#down-menu li{
    display: table-cell;
    vertical-align: middle;
    list-style: none;
}
#down-menu a{
    color: #000;
    text-decoration: none;
    font-family: Verdana,Arial,Helvetica,sans-serif;
    font-size: 12px;
}
 
<br> поставить, не?
либо задать ширину для li чтоб длинное само переносилось
 
PHP:
#down-menu li{
    display: table-cell;
    vertical-align: middle;
    list-style: none;
    text-align:center;
    width:100px
}
 
PHP:
#down-menu li{
    display: table-cell;
    vertical-align: middle;
    list-style: none;
    text-align:center;
    width:100px
}
Дело в том, что display: table-cell; и vertical-align: middle; не поддерживаются в IE7, так что данный способ не подходит.
 
Для ie7 можно сделать свой ксс через "иф ие7" и выравнивать посередине с помощью отступа от верха (паддинг или маргин что больше подойдет) но нужно будет добавить 2 класса для li с одной строчкой и 2 строчками. Както так ерез жопу но можно сделать но лучше объяснить заказчику что ну его **х
 
margin: пропиши сюда #down-menu li сколько нужно. потом вроде норм будет;
пример: margin-left:20px; margin-right:20px;
А кто знает если сюда <div id="down-menu"> прописать align="justify" он повлияет на li или нет?

Добавлено через 1 минуту
если повлияет, то надо #down-menu li ограничения в ширину поставить max-width и min-width
 
обычно выходят из положения line-height - ом, а вот по поводу 2 строчек, если только классы ставить другие там, где 2 строчки
 
Сделал вот так:
dVk0.png

Нужно вот так:
cr4h.png

Не знаю как сделать чтобы некоторые li были в две строчки, если назначить width для li то пропадает вертикальное выравнивание. Дать этим li класс тоже не желательно, поскольку этот шаблон потом будет интегрироваться в движок. Подскажите пожалуйста.
PHP:
HTML
                <div id="down-menu">
                    <ul>
                        <li><a href="#">Меритель (СИТ)</a></li>
                        <li><a href="#">Лабораторное оборудование</a></li>
                        <li><a href="#">Разметка</a></li>
                        <li><a href="#">Оснастка</a></li>
                        <li><a href="#">Режущий инструмент</a></li>
                        <li><a href="#">Слесарный инструмент</a></li>
                        <li><a href="#">Пневмоинструмент</a></li>
                        <li><a href="#">Оборудование</a></li>
                    </ul>
                </div><!-- #down-menu-->
PHP:
CSS
#down-menu ul{
    border: 1px solid black;
    text-align: center;
    background: #eace15;
    height: 38px;
}
#down-menu li{
    line-height: 5px;
    margin: 0 5px 0 0;
    display: inline;
}
#down-menu a{
    display: table-cell;
    vertical-align: middle;
    height: 38px;
    text-decoration: none;
    color:#000;
    font: 12px Verdana,Arial,Helvetica,sans-serif;
}
 
Можно использовать expression
применить к li
Код:
padding-top:expression(([высота блока]-this.offsetHeight)<0?"0px":(([высота блока]-this.offsetHeight)/2)+"px");
 
Назад
Сверху