Foros del Web » Creando para Internet » CSS »

[consulta] posicionamiento aside

Estas en el tema de [consulta] posicionamiento aside en el foro de CSS en Foros del Web. Buenas noches cibernautas. Cual seria la forma correcta de posicionar un aside? , flotando tanto articulo como el aside a la izquierda o flotando el ...
  #1 (permalink)  
Antiguo 14/04/2016, 22:44
 
Fecha de Ingreso: agosto-2013
Mensajes: 40
Antigüedad: 10 años, 8 meses
Puntos: 0
Pregunta [consulta] posicionamiento aside

Buenas noches cibernautas.
Cual seria la forma correcta de posicionar un aside? , flotando tanto articulo como el aside a la izquierda o flotando el aside a la derecha del contenedor principal?

Al flotarlo a la derecha me lo ubica por debajo del pie de pagina(color verde):


Debería crear un div que abarque tanto articulo como aside para que se sitúen a la misma altura y luego definir los anchos de c/u con porcentajes?

Nota : no me convence hacerlo con position:absolute ya que cada pagina tiene distinto ancho.

Gracias de antemano.

Última edición por pepeargenti; 14/04/2016 a las 22:47 Razón: falta contenido
  #2 (permalink)  
Antiguo 15/04/2016, 01:43
 
Fecha de Ingreso: enero-2010
Mensajes: 63
Antigüedad: 14 años, 2 meses
Puntos: 7
Respuesta: [consulta] posicionamiento aside

Hola.

Si aplicas position:left a los dos elementos deberian quedarse bien colocados. Si no es asi y se te desplaza debajo, probalmente sea por el tamaño del articulo, dado que si tienes 60>% en uno y 40% en otro, tienes que tener en cuenta el margin y el border, asique la cifra no seria correcta.

Te recomiendo usar calc y asi te quitas de jaleos.

Ejemplo.

Código HTML:
<style>
article { width: calc(100% - 212px) }
aside { width:200px; margin-left:10px; border:1px solid #333;}
</style>

<article>
</article>
<aside>
</aside> 
Como ves, puedes establecer un ancho fijo al aside y luego hacer que el article se ajuste.

Espero que te valga.
__________________
Manz Soluciones On/Off
  #3 (permalink)  
Antiguo 16/04/2016, 15:24
 
Fecha de Ingreso: agosto-2013
Mensajes: 40
Antigüedad: 10 años, 8 meses
Puntos: 0
Respuesta: [consulta] posicionamiento aside

ese cálculo es sobre el div que lo contiene verdad?

deberia darle un ancho del 100% al div q contiene tanto al article como al aside?

Última edición por pepeargenti; 16/04/2016 a las 15:37 Razón: faltó contenido
  #4 (permalink)  
Antiguo 17/04/2016, 02:59
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 8 meses
Puntos: 2114
Respuesta: [consulta] posicionamiento aside

Tienes varias formas de hacerlo. A mi me gustan estas dos.

Partiendo de esta base:

Con FlexBox:

Código HTML:
Ver original
  1. <div class="contenedor">
  2.   <div class="contenido"></div>
  3.   <aside></aside>
  4. </div>

Código CSS:
Ver original
  1. .contenedor {
  2.   display: flex;
  3. }
  4.  
  5. .contenido {
  6.   flex: 1;
  7. }
  8.  
  9. aside {
  10.   width: 200px;
  11. }

Flotando elementos:

Aquí tienes que alterar el orden de los elementos.

Código HTML:
Ver original
  1. <div class="contenedor">
  2.   <aside></aside>
  3.   <div class="contenido"></div>
  4. </div>

Código CSS:
Ver original
  1. .contenido {
  2.   overflow: hidden;
  3. }
  4.  
  5. aside {
  6.   float: left;
  7.   width: 200px;
  8. }

En ambos casos es una solución en la que aside tiene un tamaño fijo y el contenido ocupará el resto del espacio disponible.
__________________
(:
  #5 (permalink)  
Antiguo 20/04/2016, 20:54
Avatar de codeams  
Fecha de Ingreso: diciembre-2012
Ubicación: México
Mensajes: 103
Antigüedad: 11 años, 4 meses
Puntos: 16
Respuesta: [consulta] posicionamiento aside

Hola, si colocas width:auto y margin-right (igual al width del aside) al div contenedor, y posteriormente los flotas a la izquierda estos deberían colocarse correctamente.

Código CSS:
Ver original
  1. #principal {
  2.   box-sizing: border-box;
  3.   display: inline-block;
  4.   width: auto;
  5.   margin: 0;
  6.   margin-right: 300px; /* Longitud del aside */
  7.   float: left;
  8. }
  9.  
  10. #aside {
  11.   box-sizing: border-box;
  12.   display: inline-block;
  13.   width: 300px;
  14.   float: left;
  15.   margin: 0;
  16. }


No olvides colocar overflow:hidden al contenedor de estos dos para evitar que su ancho y largo se vuelva cero.

También es importante usar box-sizing border box si no quieres tomar medidas de los paddings y demás cosas manualmente.

Nota: Lo interesante de este método es que no requiere características de CSS3 como calc() o flexbox, más que el box-sizing que como he mencionado arriba es opcional.
__________________
¿Quién es codeams? codeams.ml
¿Qué hace en su tiempo libre? codepen.io/codeams

Etiquetas: posicionamiento
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:30.