2015-07-16 2 views
2

Я пытаюсь сделать ширину всех элементов размером 200px, но, похоже, занимает точную ширину текста.css width on li inline не работает

#m_home_main_links li { 
 
    display: inline; 
 
    list-style-type: none; 
 
    margin: 1%; 
 
    text-align: center; 
 
    background-color: orange; 
 
    color: #198eff; 
 
    width: 200px; 
 
}
<div id="m_home_main_links"> 
 
    <ul> 
 
    <a href="/"> 
 
     <li>mp3</li> 
 
    </a> 
 
    <a href="/"> 
 
     <li>videos</li> 
 
    </a> 
 
    <a href="/"> 
 
     <li>categories</li> 
 
    </a> 
 
    </ul> 
 
</div>

+0

сделать отображение li: block; и положение: относительное; –

+0

Мне нужно, чтобы они отображались в строке, но –

+2

Как сказал новичок, ваш HTML недействителен. – isherwood

ответ

6

Вам нужно сделать lidisplay: inline-block для них соблюдать ширину настройки и по-прежнему ведут себя как строковый элемент:

#m_home_main_links li { 
    display: inline-block; 
    list-style-type: none; 
    margin: 1%; 
    text-align: center; 
    background-color: orange; 
    color: #198eff; 
    width: 200px; 
} 
+0

также, если вы собираетесь использовать встроенный блок, вы должны определить вертикальное выравнивание. – DCdaz

0

просто измените display: inline-block и он будет делать держать инлайн и заблокируйте свою ширину li

2

Прежде всего, я предлагаю вам се якорного тега внутри тега LI а не делать это по-другому, как это не является действительным HTML.So он должен выглядеть

<ul> 
    <li><a href="/">mp3</a></li> 
    <li><a href="/">videos</a></li> 
    <li><a href="/">categories</a></li> 
</ul> 

Для вашей ширины вопроса просто удалите дисплей встроенный из вашего класса, так как у вас есть сделал его встроенным элементом, который не принимает width.And, если вы хотите разместить эти ли горизонтально выровнены вы можете использовать float влево в вашем классе. Последнее предварительное css

#m_home_main_links li { 
     float:left; 
     list-style-type: none; 
     margin: 1%; 
     text-align: center; 
     background-color: orange; 
     color: #198eff; 
     width: 200px; 
    } 
+0

Я бы определенно использовал 'inline-block' или' inline-flex' (в зависимости) вместо 'float'. Плавающий элемент выталкивает его из потока нормальных элементов, поэтому имеет и другие последствия, например, _hight_ их контейнера обрушивается. Конечно, есть причины использовать float, но просто создание горизонтальных элементов списка не является случаем, когда я это сделаю. –

+0

дисплей: встроенный блок работает хорошо и последовательно во всех браузерах, с предостережением для IE6/7, которые поддерживают его для некоторых элементов. По этой причине я предпочитаю плавать, когда вам нужны другие элементы для обхода элементов, поддерживает более старую версию IE. – Novice

+0

Float - ужасный выбор и является неправильным правилом для желаемого результата. – DCdaz