Tengo un #header
div que es 100% width
y dentro de ese div tengo una lista desordenada. He aplicado margin: 0 auto
a 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:center
aheader
, pero hay que hacerul
comoinline-block
lugar deinline
, y también hay que aviso esotext-align
se puede heredar, lo que no es bueno hasta cierto punto, por lo que la mejor manera (no funciona por debajo de IE 9) es usarmargin
ytransform
. Simplemente eliminefloat right
ymargin;0 auto
deul
, como a continuación:De esta manera se puede solucionar el problema de hacer un ancho dinámico del
ul
centro si no le importa IE8, etc.fuente
Podemos establecer el ancho para la etiqueta ul y luego se alineará al centro.
fuente