Ver Mensaje Individual
  #9 (permalink)  
Antiguo 24/06/2011, 05:30
kseso?
Colaborador
 
Fecha de Ingreso: junio-2007
Mensajes: 5.798
Antigüedad: 16 años, 10 meses
Puntos: 539
Respuesta: Centrar varios objetos alineados PERFECTAMENTE

Es básicamente la idea que apuntó Tredio. Con alguna cosilla diferente.

Esto podría ser (tres realizaciones distintas en base a la misma idea):

Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml" lang="es-es">
  3. <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
  4. <title>Kseso? Jugando con css</title>
  5. <style type="text/css">
  6.  * {
  7.     margin: 0;
  8.     padding: 0;
  9.     border: 0;
  10.     outline: 0;
  11.   }
  12. html, body {
  13.   font-weight:normal;
  14.   font-size: 100%;
  15.   height:100%;
  16.   width: 100%;
  17.   background: #F5DCB3;
  18.   }
  19. .contenedor{
  20.   width: 80%;
  21.   margin: 0 auto 20px;
  22.   background: #435266;
  23.   padding-bottom: 10px;
  24. }
  25.  
  26. h1, h2 {
  27.     line-height: 1em;
  28.     font-family: Arial, sans-serif;
  29.     text-align: center;
  30.     padding: 10px;
  31.     color: #f5f5f5;
  32. }
  33. .contenedor p {color: #f5f5f5;}
  34. .padre {
  35.     background: #aaa;
  36.     text-align: center;
  37.     white-space: nowrap;
  38.     font-size: 20px;
  39.     letter-spacing: 20px;
  40.     line-height: 12px;
  41.     overflow: hidden;
  42.     padding: 10px 0;
  43. }
  44.  
  45. .hijo {
  46.     background: #F5DCB3;
  47.     display: inline-block;
  48.     letter-spacing: normal;
  49.     font-size: normal;
  50.     white-space: normal;
  51.     text-align: normal;
  52.     vertical-align: middle;
  53.     border: 1px solid #fff;
  54. }
  55. .hijo p {
  56.   color: #444;
  57.     font-family: Arial, sans-serif;
  58.     font-size: 12px;
  59.     line-height: 1.5em;
  60.     text-align: left;
  61.     padding: 5px;
  62. }
  63. .hijo img {width:100px;}
  64. #segundo {
  65.   letter-spacing:20px;
  66.   margin:0 auto;
  67.   padding:0;
  68.   white-space:normal;
  69.   width:40%;
  70. }
  71.  
  72. #tercero {
  73.   margin:0 auto;
  74.   overflow:auto;
  75.   width:90%;
  76.   letter-spacing: 10px;
  77. }
  78. #segundo .hijo {margin: 10px 0;width: 100px; height: 100px;}
  79. #tercero .hijo {margin: 10px 0;width: 100px;vertical-align: bottom;}
  80.       /****************
  81.       un par de declaraciones para el inombrable,
  82.       que en un proyecto real irían en su CC
  83.       ***************/
  84. .hijo, #segundo .hijo {
  85.     *display: inline;
  86.     *margin: 10px;
  87. }
  88. #tercero {*height: 120px;}
  89. </head>
  90.  
  91. <div class="contenedor">
  92.  
  93. <h1>"Centrar al Centro" Divs Conjuntamente</h1>
  94. <p>O cómo distribuir elementos equitativamente, con independencia de su número o tamaño. En vez de utilizar div´s aplica a una lista y tienes el típico menú dinámico (opciones variables) centrado</p>
  95.  
  96. <div class="padre">
  97.     <div class="hijo">
  98.     <p>Una caja con algo de texto.</p>
  99.     </div>
  100.  
  101.     <div class="hijo">
  102.     <img src="estilos/pict132.jpg" alt="img" />
  103.     <p>Imagen y texto</p>
  104.     </div>
  105.  
  106.     <div class="hijo">
  107.     <img src="estilos/pavo.jpg" alt="img" />
  108.     </div>
  109.  
  110.     <div class="hijo">
  111.     <img src="estilos/pict083.jpg" alt="img" />
  112.     <p>Otro div</p>
  113.     </div>
  114.    
  115.     <div class="hijo">
  116.     <p>+ ó - cajas. El centrado se mantiene.</p>   
  117.     </div>
  118. </div>
  119.  
  120. <p>Podemos incluir alguna variación en las propiedades de .padre, añadiendo un id (#segundo) para hacer la típica galería con distribución homogénea</p>
  121.  
  122. <div id="segundo" class="padre">
  123.     <div class="hijo">
  124.     <p>Una caja con texto.</p>
  125.     </div>
  126.  
  127.     <div class="hijo">
  128.     <img src="estilos/pict132.jpg" alt="img" />
  129.     </div>
  130.  
  131.     <div class="hijo">
  132.     <img src="estilos/pavo.jpg" alt="img" />
  133.     <p>Más divs</p>
  134.     </div>
  135.  
  136.     <div class="hijo">
  137.     <img src="estilos/pict083.jpg" alt="img" />
  138.     <p>Otro div</p>
  139.     </div>
  140.    
  141.     <div class="hijo">
  142.     <p>Añade o quita cajas. El centrado se mantiene.</p>   
  143.     </div>
  144.     <div class="hijo">
  145.     <img src="estilos/pict141.jpg" alt="img" />
  146.     <p>Otro div</p>
  147.     </div> 
  148. </div>
  149.  
  150. <p>Incluso, en base al primero, una galería con su escroll:</p>
  151.  
  152. <div id="tercero" class="padre">
  153.     <div class="hijo">
  154.     <img src="estilos/sumario.jpg" alt="img" />
  155.     </div>
  156.  
  157.     <div class="hijo">
  158.     <img src="estilos/pict132.jpg" alt="img" />
  159.     <p>Imagen y texto</p>
  160.     </div>
  161.  
  162.     <div class="hijo">
  163.     <img src="estilos/pavo.jpg" alt="img" />
  164.     <p>Más divs</p>
  165.     </div>
  166.  
  167.     <div class="hijo">
  168.     <img src="estilos/pict083.jpg" alt="img" />
  169.     <p>Otro div</p>
  170.     </div>
  171.    
  172.     <div class="hijo">
  173.     <img src="estilos/pict083.jpg" alt="img" />
  174.     <p>Otro div</p>
  175.     </div>
  176.    
  177.     <div class="hijo">
  178.     <p>Una caja con algo de texto.</p>
  179.     </div>
  180.  
  181.     <div class="hijo">
  182.     <img src="estilos/pict083.jpg" alt="img" />
  183.     <p>Otro div</p>
  184.     </div>
  185.  
  186.     <div class="hijo">
  187.     <img src="estilos/pict083.jpg" alt="img" />
  188.     <p>Otro div</p>
  189.     </div>
  190.  
  191.     <div class="hijo">
  192.     <img src="estilos/pict083.jpg" alt="img" />
  193.     <p>Otro div</p>
  194.     </div>
  195.    
  196.     <div class="hijo">
  197.     <img src="estilos/pict083.jpg" alt="img" />
  198.     <p>Otro div</p>
  199.     </div>
  200. </div>
  201. </div>
  202. </body>
  203. </html>

Creo que no hay mucho que explicar. Sólo que al usar letter-spacing (en .padre) para separar los .hijo evitamos tener que andar definiendo diferentes márgenes para el primero/último.