Tengo un #headerdiv que es 100% widthy dentro de ese div tengo una lista desordenada. He aplicado margin: 0 autoa la lista desordenada pero no la centrará dentro del encabezado div.
¿Alguien puede decirme por qué? Pensé que si definía el ancho de la división principal, entonces la lista desordenada debería poder centrarse margin: 0 auto. ¿Qué me estoy perdiendo?
Aquí está mi código:
<style>
* {
margin: 0;
padding: 0;
}
#header {
width: 100%;
background-color: #333;
min-height: 160px;
font-family:Arial, Helvetica, sans-serif;
}
#sitename {
font-size: 50px;
width: 620px;
margin:0 auto;
padding-top: 35px;
color:#999;
}
#header ul {
float: right;
margin: 0 auto;
}
#header ul li {
float: left;
padding-right: 20px;
list-style-type: none;
font-size: 20px;
}
</style>
</head>
<body>
<div id="header">
<h1 id="sitename">Photography Auction Site</h1>
<ul>
<li>List of Photos</li>
<li>Image Gallery</li>
<li>Contact Us</li>
</ul>
</div>
</body>
</html>

Respuestas:
Debe definir el ancho del elemento que está centrando, no el elemento principal.
Editar : Ok, he visto la página de prueba ahora, y así es como creo que la quieres:
fuente
Un bloque en línea cubre toda la línea (de izquierda a derecha), por lo que un margen izquierdo y / o derecho no funcionará aquí. Lo que necesita es un bloque, un bloque tiene bordes a la izquierda y a la derecha, por lo que puede verse influenciado por los márgenes.
Así es como funciona para mí:
fuente
Por qué no?
fuente
No sé por qué la primera respuesta es la mejor, lo probé y no funciona, de hecho, como @ kalys.osmonov dijo, se puede dar
text-align:centeraheader, pero hay que hacerulcomoinline-blocklugar deinline, y también hay que aviso esotext-alignse puede heredar, lo que no es bueno hasta cierto punto, por lo que la mejor manera (no funciona por debajo de IE 9) es usarmarginytransform. Simplemente eliminefloat rightymargin;0 autodeul, como a continuación:De esta manera se puede solucionar el problema de hacer un ancho dinámico del
ulcentro si no le importa IE8, etc.fuente
Podemos establecer el ancho para la etiqueta ul y luego se alineará al centro.
fuente