Вы определяете .welcome
до того, как определяете глобальные стили для li
. Это будет означать, что любые стили в .top_menu ul li
будут переопределять стили в .welcome (display: block;). Поместите это ниже так:
.top_menu ul { margin: 0; padding: 0; line-height: 0; }
.top_menu ul li { display: inline; margin: 0; padding: 0; border: 1px solid red; }
.top_menu ul .welcome { text-align:center; display: block; margin: 0 auto; }
.top_menu ul li a { font-size: 14px; }
UPDATE
Позиционируя внешние теги li
абсолютно, вы можете предотвратить их смещение li
центра от центра.
Вот так (я включил только дополнительные стили для ясности):
.top_menu ul { position: relative; }
.top_menu ul .left { position: absolute; left: 0; }
.top_menu ul .welcome { text-align:center; display: block; margin: 0 auto; }
.top_menu ul .right { position: absolute; right: 0; }
В качестве альтернативы, вы можете оставить .left
и .right
такими, как они есть, с их поплавками, и просто расположить центральный элемент абсолютно так:
.top_menu ul { position: relative; }
.top_menu ul .left { float: left; }
.top_menu ul .welcome { text-align:center; display: block; position: absolute; left: 50%; margin-left: -100px; width: 200px; }
.top_menu ul .right { float: right; }
Если вы используете вышеуказанный метод, убедитесь, что margin-left
составляет половину ширины. Вы ДОЛЖНЫ указать ширину для этого метода. Если вы просто сделаете его больше, чем контент, он будет центрировать контент из-за text-align: center
, поэтому это не должно быть проблемой