Я не знаю, почему первый ответ самый лучший, я попробовал его и фактически не работает, как сказал @ kalys.osmonov, вы можете дать text-align:center
header
, но вы должны сделать ul
как inline-block
вместо inline
, а также вы должны заметить, что text-align
может быть унаследовано, что в некоторой степени не очень хорошо, поэтому лучший способ (не работает ниже IE 9) - использовать margin
и transform
. Просто удалите float right
и margin;0 auto
из ul
, как показано ниже:
#header ul {
/* float: right; */
/* margin: 0 auto; */
display: inline-block;
margin-left: 50%; /* From parent width */
transform: translateX(-50%); /* use self width which can be unknown */
-ms-transform: translateX(-50%); /* For IE9 */
}
Таким способом можно решить проблему создания динамической ширины центра ul
, если вам все равно IE8 и т. Д.