Foros del Web » Creando para Internet » CSS »

Cambiar estilos según resolución de página

Estas en el tema de Cambiar estilos según resolución de página en el foro de CSS en Foros del Web. Sé que existen varias formas de hacerlo, me pregunto cuál será la mejor de todas, me pregunto si existirá alguna forma usando css a ser ...
  #1 (permalink)  
Antiguo 14/09/2011, 03:21
 
Fecha de Ingreso: enero-2011
Mensajes: 105
Antigüedad: 13 años, 10 meses
Puntos: 10
Cambiar estilos según resolución de página

Sé que existen varias formas de hacerlo, me pregunto cuál será la mejor de todas, me pregunto si existirá alguna forma usando css a ser posible: quiero que el ancho de mi página, además de otros parámetros cambien según la resolución de la página:

1. Si la resolución tiene 1152px de ancho o superior:
------- width: 100%; (Ancho de página)
2. Si el ancho de resolución es inferior a 1152px:
------- width: 1007px; (Ancho de página)
  #2 (permalink)  
Antiguo 14/09/2011, 07:15
Avatar de Ribon  
Fecha de Ingreso: septiembre-2010
Ubicación: El firmamento
Mensajes: 487
Antigüedad: 14 años, 3 meses
Puntos: 91
Respuesta: Cambiar estilos según resolución de página

Eso último lo logras con porcentajes y anchos minimos

Código CSS:
Ver original
  1. element{
  2. width:100%;
  3. min-width:1007px;
  4. }

Saludos.
  #3 (permalink)  
Antiguo 14/09/2011, 07:17
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 16 años, 6 meses
Puntos: 1012
Respuesta: Cambiar estilos según resolución de página

en principio puedes usar width y min-width. también puedes hacerlo con javascript. para obtener el ancho de la resolución de la pantalla, has de usar la propiedad screen.width. para cambiar una propiedad
  #4 (permalink)  
Antiguo 14/09/2011, 08:41
Avatar de sauljps  
Fecha de Ingreso: septiembre-2011
Ubicación: Caracas, Venezuela
Mensajes: 13
Antigüedad: 13 años, 3 meses
Puntos: 4
Respuesta: Cambiar estilos según resolución de página

Hola! Eso se llama Responsive Design, que no se cual seria una buena traduccion al español jaja

Es que la página se adapte al navegador, eso se hace con Media Queries de CSS

Te pongo por ejemplo el código aqui

Código CSS:
Ver original
  1. @media only screen and (min-width: 1152px) {
  2.   /* Aqui pones los estilos de la página */
  3.  
  4. }

Es MUY util, y es la mejor manera de hacerlo
  #5 (permalink)  
Antiguo 14/09/2011, 08:56
 
Fecha de Ingreso: enero-2011
Mensajes: 105
Antigüedad: 13 años, 10 meses
Puntos: 10
Respuesta: Cambiar estilos según resolución de página

muchisimas gracias! habéis sido de gran ayuda para mi! ahora me toca investigar :)
  #6 (permalink)  
Antiguo 14/09/2011, 13:41
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 16 años, 6 meses
Puntos: 1012
Respuesta: Cambiar estilos según resolución de página

Cita:
Iniciado por sauljps Ver Mensaje
Hola! Eso se llama Responsive Design, que no se cual seria una buena traduccion al español jaja
por desgracia no es soportado por ie8-. para lograrlo en esas versiones de ie, habría que usar javascript como dije anteriormente. bien sea para eliminar y crear una regla (como es el código que expuse) o cambiar el href del link
  #7 (permalink)  
Antiguo 15/09/2011, 04:36
 
Fecha de Ingreso: enero-2011
Mensajes: 105
Antigüedad: 13 años, 10 meses
Puntos: 10
Respuesta: Cambiar estilos según resolución de página

Cita:
Iniciado por IsaBelM Ver Mensaje
por desgracia no es soportado por ie8-. para lograrlo en esas versiones de ie, habría que usar javascript como dije anteriormente. bien sea para eliminar y crear una regla (como es el código que expuse) o cambiar el href del link
Muchas gracias por el apunte, lo hice todo así, con esta línea:

Cita:
<link href="<?php echo $this->baseurl; ?>/templates/<?php echo $this->template?>/css/mini.css" rel="stylesheet" type="text/css" media="only screen and (max-width: 1151px)"/>
Pero claro llego a IE8 y... decepción, ¿Qué tal si lo intento de la siguiente forma?

Código:
<link href="<?php echo $this->baseurl; ?>/templates/<?php echo $this->template?>/css/mini.css" rel="stylesheet" type="text/css" media="only screen and (max-width: 1151px)"/>


<?php if (isIe6() || isIe7() || isIE8()) :?>
/*Codigo Javascript para cambiar propiedades*/
	<?php endif; ?>
Igual es un poco lioso pero por aprovechar un poco ¿como lo veis? ¿Demasiado enrevesado? Yo creo que es bastante correcto y la página estaría optimizada ya que así solamente utilizaría código JavaScript mientras sea necesario

PD:
Esa línea me incluye resoluciones inferiores a 1152, ¿No existe una línea más correcta de poner "only screen and (max-width: 1151px)" para que sea algo asi como si screen <= 1152?
  #8 (permalink)  
Antiguo 15/09/2011, 05:37
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 16 años, 6 meses
Puntos: 1012
Respuesta: Cambiar estilos según resolución de página

creo que tu planteamiento es erróneo. el problema está en que ie8- no interpretará el incliude y por lo tanto tampoco el cambio de propiedad. se me ocurre que una vez que tengas verificado que el navegador es ie8-, cambies, con js, el atributo media del include y la propiedad

un ejemplo tosco para ser probado en ie8
Cita:
<link href="estilo.css" rel="stylesheet" type="text/css" media="only screen and (max-width: 1280px)"/>

<script type="text/javascript">
function fnc() {
if (screen.width == 1280) {
var diana = document.getElementsByTagName('link')[0];
diana.media = 'all';
}
}

window.onload = function() {fnc()};
  #9 (permalink)  
Antiguo 15/09/2011, 05:54
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 14 años, 6 meses
Puntos: 310
Respuesta: Cambiar estilos según resolución de página

Cita:
Cita:
<link href="estilo.css" rel="stylesheet" type="text/css" media="only screen and (max-width: 1280px)"/>

<script type="text/javascript">
function fnc() {
if (screen.width == 1280) {
var diana = document.getElementsByTagName('link')[0];
diana.media = 'all';
}
}

window.onload = function() {fnc()};
Posible optimización
Cita:
<link href="estilo.css" rel="stylesheet" type="text/css" media="only screen and (max-width: 1280px)"/>

<script type="text/javascript">
function fnc() {
if (screen.width <= 1280) { // <= por si acaso, ¿no?
var diana = document.getElementsByTagName('link')[0];
diana.media = 'all';
}
}

window.onload = fnc; // Me gusta más usar el handler a secas XD
PD: Yo también creo que debería comprobar con PHP el navegador para no usar código para nada.
Saludos (:
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #10 (permalink)  
Antiguo 15/09/2011, 07:09
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 16 años, 6 meses
Puntos: 1012
Respuesta: Cambiar estilos según resolución de página

creo que no hay diferencia entre usar una función de referencia o una expresión de función, pues que ambas formas son una manera antigua de registrar un evento
  #11 (permalink)  
Antiguo 15/09/2011, 07:40
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 14 años, 6 meses
Puntos: 310
Respuesta: Cambiar estilos según resolución de página

No, diferencia no hay, por eso puse que a mí me gustaba más de esa manera Siempre lo vi más legible, pero esto es como todo, cada uno lo pone como le parece.
Saludos (:
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #12 (permalink)  
Antiguo 15/09/2011, 09:26
 
Fecha de Ingreso: enero-2011
Mensajes: 105
Antigüedad: 13 años, 10 meses
Puntos: 10
Respuesta: Cambiar estilos según resolución de página

Eu muito feliz! Funciona y me habéis ahorrado el darme cabezazos dando demasiadas vueltas! Estou muito grato, gracias a todos

Etiquetas: ancho, estilos, página, resolución
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 08:27.