Mi primera maquetacion CSS
5 seguidores
bueno pues ya me lanzo a la maquetacion CSS y tengo un puñao de dudas, por ahora he conseguido + o - lo que quiero, gracias a los tutoriales que vais poniendo por aqui, pero claro los casos concretos, son los casos concretos, en fin, primera pregunta, si tengo un div <em>.content</em> donde tengo todo dentro ¿como puedo alinear este div al centro?
cbp
¿en horizontal o en vertical?
ardua cuestión esta tuya, joven Hartum...
hartum
En horizontal, maese cbp
[offtopic]
No me he olvidado de tus iconos, es que...........no encuentro mi disco duro(es cierto), pero mande copia de todos ellos a orange, y a txuma, hay una carpeta que pone 16x16 a ver si se los pido
[/offtopic]
cbp
¿que no encuentras tu disco duro? ¿pero por casa o dentro de tu ordenador? si es así, ¿cómo es de grande el susodicho? :? no te preocupes por los iconos, si los encuentras pos mu bien, y si no me busco la vida :D
a ver, para centrar en horizontal y en vertical yo estoy usando un método que funciona en todos lados excepto en NN4 y Opera 6 e inferiores, me parece.
<code>
.contenedor {
color: #ffffff;
background-color: transparent;
text-align: center;
position: absolute;
top: 50%;
left: 0px;
width: 100%;
height: 0px;
overflow: visible;
visibility: visible;
display: block
}
.caja_contenidos {
width: 700px;
height: 300px;
position: absolute;
top: -150px;
left: 50%;
margin-left: -350px;
background-color: #cc0000;
border: 0px solid #606060;
text-align: center;
}
<div class="contenedor">
<div class="caja_contenidos">aquí van los contenidos</div>
</div>
</code>
si sólo quieres centrarlo en horizontal es mucho más fácil, lo cual me lleva a pensar que para qué coño te pregunto por el tipo de centrado si luego te voy a responder lo que me dé la gana... :? puedes usar el margin:auto y utilizar un .js para evitar el fallo que da IE al usar el margin:auto (creo que esto es lo que recomendó meddle) o echar un vistazo aquí para ver cual es tu caso
meddle
cbp, ya he discutido infinidad de veces el uso de esa tecnioca de centrado vertical. por favor haz un busca en el foro. repito, por si alguien no se ha enterado: personalmente desaconsejo esa tecnica. aunque no soy dios, asi que haced lo que querais :)
HARTUM, para tener todo dentro de en una capa, esa capa "tecnicamente" debera tener un id, no una clase (pues solo hay un contenedor que lo contenga todo). Luego, para centrar sus contenidos horizontalmente podemos hacer:
#contenedor {margin:auto; width: 600px;}
cbp
meddle, ya sé que has discutido esa técnica infinidad de veces, de hecho gracias a ti he aprendido un montón de cosas, pero no me hace falta hacer ninguna búsqueda. he probado de la manera que tú aconsejas y de otras maneras que he encontrado por ahí, y esta me parece la mejor ya que sólo tiene el inconveniente de NS4, por eso se la he aconsejado a Hartum. pero vamos, lo mío es una elección personal, en realidad tú sabes de esto mil veces más, así que mejor que te hagan caso a ti :)
meddle
bueno mi consejo tambien es a nivel personal, asi que cada cual haga lo que quiera, solo queria recordar que de esto ya se ha hablado en otros posts ;)
en cualquier caso el solo quiere centrado horizontal, asi que esta vez es facil, eh? :)
cbp
sí, cuando pidan el vertical nos pelearemos de nuevo, pero está vez estaré mejor preparado... ;)
he editado un poco mi mensaje anterior porque me parecía que sonaba muy borde y no quería dar esa sensación :)
meddle
que conste en acta: a mi no me lo parecía en absoluto
helenp
Bueno,
No tiene nada que ver ya que no es para centrar contenido,
pero querría querría aprovechar ya que se habla de centrado.
parece que el problema con css es el centrado, ya que no existe float center, así que lo que he hecho yo para centrar solo una imagen o dos imagenes es meterlos en un <p> text-align: center; y si son dos imagenes usar &nbsp;&nbsp;&nbsp;&nbsp; en medio.
Disparame meddle, supongo que eso es chapuza pero si no, no termino nunca....(ole he pasado ya mis 200 paginas a .css, chapuzeando claro)
hartum
pero helennnnnnnnnnnnn eso es de parbulitos de html. como se te ocurre poner $nbps; si no te queda remedio es mejor poner un gif transparente y le das el ancho que quieras, jurlllllllllllllllll
hartum
de todas formas no me habeis entendido bien, o no me he explicado bien, no quiero que mi contenedor empiece en el medio, sino que el medio de mi contenedor coincida con el medio de la pantalla, asi que con left: 50% solo me sirve a la mitad, supongo que ahora tendre que restale 390px;(la mitad de mi contenedor) a la posicion obtenida,¿como lo hago, please?
cbp
yo he visto otra solución que consiste en tener un contenedor con text-align:center y width:100% y después poner en cualquier div que quieras incluir en el contenedor un text-align:left, y así te ahorras tener que incluir el Margin Fix de David Schontzler. no sé si será muy correcto, pero funciona bastante bien.
hartum
prueba superadaaaaaaaaaaaaa al final he hecho esto, y funciona en firebird y explorer:
#container
{
position: absolute;
left:50%;
margin-left: -390px;
width: 780px;
background-color: #fff;
color: #333;
border: 1px solid gray;
}
cbp
ups, error, eso no funciona en Opera 6 para abajo, pruébalo y verás, el contenido se te sale de la página :)
meddle
HARTUM, ese CSS añadelo via import, para evitar que NS4/Op6 deje de poder leer tus contenidos (los saca fuera de la pantalla).
Helen, para centrar un aimagen en una capa, no la incluyas en un p con text-align: center;
En teoria una imagen ya debe estar en un elemento de bloque como p o div. Par centrarla, lo que tienes que hacer es asignarle a la imagen un comportamiento de bloque, no de linea (que es por defecto). Y en lugar de usar margin-left, por ejemplo. Algo como:
p img {display: block; margin-left: 50px}
Asi, todas las imagenes que estan dentro de un parrafo seran de bloque y con margen izq de 50px.
Otra opcion es usar una clase para centrar solo cierto tipo de imagenes. etc etc. Hay mil opciones.
hartum
Mi gozo en un pozoooooooooooooooooooooooooooooooo
¿quien dijo que las capas eran guays?
hay alguna manera mas correcta? (de todas formas los ceporros que veran la pagina iran solo con explorer, pero ya que estamos haciendolo bien, seria lo suyo)
meddle ¿import? te refieres a <link href="unique.css" rel="stylesheet" type="text/css"> ????? que lo cambie a que?
meddle
contestado está (10 segs antes que tu) ;)
cuando dije import quise decir asi:
<code>@import url(../css/test_styles.css) All;</code>
Voy a postear un link en otro topic.
hartum
meddle
contestado está (10 segs antes que tu) ;)
eso lo diras tu, yo solo veo una forma de centrar imagenes dentro de un bloque, lo cual no es extrapolable, ni de coña, a centrar un div en la pantalla
meddle
cuando dije import quise decir asi:
<code>@import url(../css/test_styles.css) All;</code>
lo copio, lo pego y queda asi:
<link href="unique.css" rel="stylesheet" type="text/css">
<@import url(unique.css) All;>
y me lo escribe por pantalla, asi que mejor no lo pongo, o por lo mneos asi, no.
meddle
Voy a postear un link en otro topic
coño y aqui tb, no?
meddle
a ver, lo que quiero decir es que si al final has conseguido hacerlo (con margenes negativos), que esa regla de margenes negativos (por lo menos, tambien puedes meter todo el css) la metas en un archivo aparte y la llames por @import. Asi evitas joder al ns4 y al op6.
ikgoru
El otro día se me planteó por primera vez el problema de centrar toda la página haciendola con estilos y la solución mia fue la de hacer este estilo para el contenedor:
#contenedor {
margin: 0 auto 0 auto;
width: 750px;
}
sencilla y practica no?
cbp
pero esa solución, ikgoru, ¿funciona para el IE de Windows?
hartum
sencilla es pero explorer se la pasa por el forro
por lo menos el mio
cbp
por cierto, Hartum y meddle, yo creo que con la solución que he dicho antes del text-align logras salvar el error en Opera 6, con lo cual no queda más que el de NS4, y a esos que les den por usar un navegador tan casposo :)
meddle
señores, para eso (IE/win) está el hack de dave
cbp, lo del align es otra opcion. cierto.
cbp
para que lo del margin:auto vaya bien en IE hay que usar el Margin Fix del David Schontzler ¿no, meddle?