2014-02-20 3 views
1

Вот код. Заметьте, что это не мой код.Выравнивание центра всплывающего окна

HTML:

<div class="drop"> 
<ul class="drop_menu"> 
<li><a href='#'>Link 1</a> 
    <ul> 
    <li><a href='#'>Sub Link 1</a></li> 
    <li><a href='#'>Sub Link 2</a></li> 
    </ul> 
</li> 
<li><a href='#'>Link 2</a> 
    <ul> 
    <li><a href='#'>Sub Link 1</a></li> 
    <li><a href='#'>Sub Link 2</a></li> 
    <li><a href='#'>Sub Link 3</a></li> 
    <li><a href='#'>Sub Link 4</a></li> 
    </ul> 
</li> 
<li><a href='#'>Link 3</a> 
    <ul> 
    <li><a href='#'>Sub Link 1</a></li> 
    <li><a href='#'>Sub Link 2</a></li> 
    <li><a href='#'>Sub Link 3</a></li> 
    <li><a href='#'>Sub Link 4</a></li> 
    </ul> 
</li> 
</ul> 
</div> 

CSS:

.drop_menu { 
    background:#005555; 
    padding:0; 
    margin:0; 
    list-style-type:none; 
    height:30px; 

} 
.drop_menu li { float:left; } 
.drop_menu li a { 
    padding:9px 20px; 
    margin-left:auto; 
    margin-right:auto; 
    display:block; 
    color:#fff; 
    text-decoration:none; 
    font:12px arial, verdana, sans-serif; 
} 

/* Submenu */ 
.drop_menu ul { 
    position:absolute; 
    left:-9999px; 
    top:-9999px; 
    list-style-type:none; 
} 
.drop_menu li:hover { position:relative; background:#5FD367; } 
.drop_menu li:hover ul { 
    left:0px; 
    top:30px; 
    background:#5FD367; 
    padding:0px; 
} 

.drop_menu li:hover ul li a { 
    padding:5px; 
    display:block; 
    width:168px; 
    text-indent:15px; 
    background-color:#5FD367; 
} 
.drop_menu li:hover ul li a:hover { background:#005555; } 

Мой вопрос, как я могу отцентрировать "Ссылка 1", "Ссылка 2" и "Link 3"? В будущем я добавлю еще «Link 4,5,6 ...», поэтому мне нужно решение, которое не требует «почти центрированного», а постоянного решения.

Не могли бы вы помочь мне?

Вот ссылка на JSFiddle, где вы можете увидеть код работает - http://jsfiddle.net/W5F3p/

Мои наилучшие пожелания

+1

У вас есть варианты, центрирования контейнер или ребенка вашего контейнера, наследие путь к 'Маржа: 0 auto' для блочного элемента или центра текст внутри него с помощью' Шрифтом- align: center' – 707

ответ

1

Используйте выравнивание текста в контейнере тега и задать список для отображения встроенный блок:

http://jsfiddle.net/W5F3p/1/

.drop 
{ 
    text-align: center; 
background:#005555;  
} 

немного Hacky, но делает трюк.

+0

Вы добавили ширину и отображение на .drop_menu правильно? –

+0

Не так хаки, как мои. :) http://jsfiddle.net/W5F3p/3/ – dnelson

+1

Да, извините, я добавил width: auto и display: inline-block on .drop_menu –

2

Если вы не поддерживаете IE7 и ниже, я бы изменил float: оставил на li на дисплее: inline-block, а затем добавил text-align: center в родительский ul.

.drop_menu { 
    background:#005555; 
    padding:0; 
    margin:0; 
    list-style-type:none; 
    height:30px; 
    text-align:center; 
} 
.drop_menu li { display:inline-block; } 
.drop_menu li a { 
    padding:9px 20px; 
    margin-left:auto; 
    margin-right:auto; 
    display:block; 
    color:#fff; 
    text-decoration:none; 
    font:12px arial, verdana, sans-serif; 
} 

/* Submenu */ 
.drop_menu ul { 
    position:absolute; 
    left:-9999px; 
    top:-9999px; 
    list-style-type:none; 
} 
.drop_menu li:hover { position:relative; background:#5FD367; } 
.drop_menu li:hover ul { 
    left:0px; 
    top:30px; 
    background:#5FD367; 
    padding:0px; 
} 

.drop_menu li:hover ul li a { 
    padding:5px; 
    display:block; 
    width:168px; 
    text-indent:15px; 
    background-color:#5FD367; 
    text-align:left; 
} 
.drop_menu li:hover ul li a:hover { background:#005555; } 

Смотрите здесь: http://jsfiddle.net/s6Jcx/1/

Смежные вопросы