• Compra una licencia de Windows 10/11 (9,5€) u Office (18,3€) al mejor precio u Office al mejor precio con CDKeyoffer. Entra en este post con las ofertas
  • ¡Bienvenid@! Recuerda que para comentar en el foro de El Chapuzas Informático necesitas registrar tu cuenta, tardarás menos de 2 minutos y te dará valiosa información además de ayudarte en lo que necesites o pasar un rato agradable con nosotros.

AYUDA Cambio de PX a %

Dudasinformaticas

De profesión Chapuzas
Registrado
26 Mar 2015
Mensajes
182
Puntos
0
Buenas si quiere que la web se vea bien en todas las resoluciones, tengo que ponerlos en % en lugar de pixeles, ¿cómo sé a que % corresponde cada cantidad de píxeles?
por ejemplo, 16 píxeles qué % sería?
gracias.
 
Los porcentajes hacen el tamaño relativo. Si un div tiene un ancho del 33%, sera siempre la tercera parte de la pantalla, sea cual sea la pantalla

Enviado desde mi XT1021 mediante Tapatalk
 
No necesariamente de la pantalla, sino del elemento padre del div con tamaño relativo. Este asunto es clave para el diseño responsive y las media queries... Puedes designar un contenedor con tamaño fijo variable según media queries (width: 960px, width: 740px...) y dentro de éste, elementos con tamaño relativo (dos columnas 50%, por ejemplo).

Si simplemente se usan porcentajes serían layouts fluídas (ancho variable, simplemente), no necesariamente adaptativo/responsive.
 
el % como dicen es con respecto al tamaño de la etiqueta contenedora.
En una pagina normal escribes
<div id="tipo_1" style=height: "50%">
<div id="tipo_2" style="height: 50%"></div>
</div>

En este caso el tipo_1 siempre ocupara la mitad de la pantalla sea cual sea la pantalla, y el tipo_2 la mitad que el tipo_1 que seria 1/4 de la pantalla, siendo indiferente la resolución.
 
el % como dicen es con respecto al tamaño de la etiqueta contenedora.
En una pagina normal escribes
<div id="tipo_1" style=height: "50%">
<div id="tipo_2" style="height: 50%"></div>
</div>

En este caso el tipo_1 siempre ocupara la mitad de la pantalla sea cual sea la pantalla, y el tipo_2 la mitad que el tipo_1 que seria 1/4 de la pantalla, siendo indiferente la resolución.

Claro pero entonces, yo tendré que poner % si quiere que se vea igual en todos las resoluciones y que se adapten a la resolución sea cual sea.
¿Qué se supone que debe estar en %? la caja contenedora de todo ¿no?
 
Si pudieses poner todo en % seria la leche pero es imposible, si tienes un formulario sabes que las palabras tienen que ocupar x como mínimo.

Por eso en los proyectos de paginas web se suele dar una resolución mínima, lo cual te obliga a que esa pagina se vea perfecto en esa resolución.

Si es para PC intenta que la pagina sea 100% funcional cuando ocupa la mitad de tu pantalla, como estimación media.
entendiendo que tienes una 1080
 
Claro pero entonces, yo tendré que poner % si quiere que se vea igual en todos las resoluciones y que se adapten a la resolución sea cual sea.
¿Qué se supone que debe estar en %? la caja contenedora de todo ¿no?

No se verá, ni debe verse, igual en todas las resoluciones.

Para responsive hay que hacer lo siguiente:

1. Un contenedor que cambia de tamaño (fijo, en píxeles) con la resolución. Esto lo hace con media queries. Es decir, con 768px de ancho medirá una cosa (748px) y con 1920 de ancho medirá otra (1200px).

2. Los elementos dentro de éste tendrán ancho relativo, pero también en función de la resolución. Por ejemplo, crearás la clase columna-izquierda en CSS, que a menos de 748px medirá el 100%, en 748px medirá el 50% y en 1200px medirá el 75%. Una clase columna-derecha que será 100% a menos de 748px, 50% en 748 y 25% en 1200px.

3. Otros elementos (imágenes, videos) tendrán un max-width de 100%, para que nunca se pasen de dimensiones aunque la pantalla sea más pequeña.

Así, de hecho, es como funciona el framework Bootstrap, que es muy avanzado, completo y todo eso, pero su funcionamiento básico no deja de ser este. Y así se hace responsive, sin JavaScript y sin cosas extrañas, todo a base de HTML estándar y CSS con media queries.

Lo que comenta arck de desarrollar para una resolución... Ya no se hace.
 
oMega_2093

Yo digo eso para facilitar, y no liar a que ponga el explorador a X resolución calculando como queda.

Porque por ejemplo en algunas pantallas de administración publica me he encontrado que son de 720.

Si lo haces para la mas pequeña suele no quedar mal para las de mas resolución.
 
No se verá, ni debe verse, igual en todas las resoluciones.

Para responsive hay que hacer lo siguiente:

1. Un contenedor que cambia de tamaño (fijo, en píxeles) con la resolución. Esto lo hace con media queries. Es decir, con 768px de ancho medirá una cosa (748px) y con 1920 de ancho medirá otra (1200px).

2. Los elementos dentro de éste tendrán ancho relativo, pero también en función de la resolución. Por ejemplo, crearás la clase columna-izquierda en CSS, que a menos de 748px medirá el 100%, en 748px medirá el 50% y en 1200px medirá el 75%. Una clase columna-derecha que será 100% a menos de 748px, 50% en 748 y 25% en 1200px.

3. Otros elementos (imágenes, videos) tendrán un max-width de 100%, para que nunca se pasen de dimensiones aunque la pantalla sea más pequeña.

Así, de hecho, es como funciona el framework Bootstrap, que es muy avanzado, completo y todo eso, pero su funcionamiento básico no deja de ser este. Y así se hace responsive, sin JavaScript y sin cosas extrañas, todo a base de HTML estándar y CSS con media queries.

Lo que comenta arck de desarrollar para una resolución... Ya no se hace.


Buenas omega, gracias por tu respuesta, pero no me ha quedado muy claro.
 
¿Y para las de menos? Si lo haces para la más pequeña sigue siendo eso: una web hecha para una resolución. No tiene comparación con un diseño responsive. Hace años que se dejaron de hacer webs para una resolución en un dispositivo.

Pero vamos, lo que queramos debatir... Pero él está preguntando por un diseño de este tipo, recomendarle que lo haga de ancho fijo para una resolución no es lo que busca.

¿Qué parte, Dudasinformaticas? Te explico lo que necesites...
 
¿Qué parte, Dudasinformaticas? Te explico lo que necesites...

Pues los 3 puntos básicamente, no acabo de entenderlo del todo.
Se supone que tengo que crear un div que sea el contenedor de todo con unos PX que yo le asigne pero por ejemplo tú dices que de 768 pasaría a 748 (no sé por qué)
 
Vale, lo explico mejor. De 768 no pasaría a nada :p lo que quiero decir es que, mediante media queries (si no las conoces, revisa algo de documentación: https://developer.mozilla.org/es/docs/CSS/Media_queries) debes fijar el ancho de ese contenedor a una cantidad fija de píxeles.

PHP:
@media (max-width: 600px) {
  .contenedor {
    width: 100%; /* Fíjate que pongo 100% porque este ancho es tan pequeño, que probablemente será un dispositivo móvil, y ahí el contenedor debería ocupar sencillamente toda la pantalla */
  }
}

@media (max-width: 768px) {
  .contenedor {
    width: 748px;
  }
}

Es decir, que si la ventana tiene 768px de ancho, tu contenedor medirá 748 píxeles. Dije 748 de forma casi arbitraria, son unas medidas que puedes encontrar por Internet y que corresponden con los anchos de pantalla de los dispositivos más habituales.

El motivo de que el contenedor no mida tanto como la ventana es que la pantalla puede ser de 1024x768 píxeles, pero el navegador ya no tendrá todo ese ancho (las ventanas tienen un borde, y si sale la barra de desplazamiento tendrá aún menos ancho). Por eso digo que el contenedor medirá MENOS que el ancho de ventana.

Las dimensiones para las media queries las puedes encontrar por ahí, pero creo que las de Bootstrap son correctas: http://getbootstrap.com/css/#grid-media-queries

Si eso te lía más que ayudarte, olvídalo. Símplemente busca los tamaños de anchos más habituales y pon un ancho de contenedor algo menor.

Lo que consigues con esas media queries es que se apliquen distintos tamaños dependiendo de la resolución. ¿Resultado? Tu contenedor tendrá un ancho correcto en cualquier dispositivo.
 
Vale, lo explico mejor. De 768 no pasaría a nada :p lo que quiero decir es que, mediante media queries (si no las conoces, revisa algo de documentación: https://developer.mozilla.org/es/docs/CSS/Media_queries) debes fijar el ancho de ese contenedor a una cantidad fija de píxeles.

PHP:
@media (max-width: 600px) {
  .contenedor {
    width: 100%; /* Fíjate que pongo 100% porque este ancho es tan pequeño, que probablemente será un dispositivo móvil, y ahí el contenedor debería ocupar sencillamente toda la pantalla */
  }
}

@media (max-width: 768px) {
  .contenedor {
    width: 748px;
  }
}

Es decir, que si la ventana tiene 768px de ancho, tu contenedor medirá 748 píxeles. Dije 748 de forma casi arbitraria, son unas medidas que puedes encontrar por Internet y que corresponden con los anchos de pantalla de los dispositivos más habituales.

El motivo de que el contenedor no mida tanto como la ventana es que la pantalla puede ser de 1024x768 píxeles, pero el navegador ya no tendrá todo ese ancho (las ventanas tienen un borde, y si sale la barra de desplazamiento tendrá aún menos ancho). Por eso digo que el contenedor medirá MENOS que el ancho de ventana.

Las dimensiones para las media queries las puedes encontrar por ahí, pero creo que las de Bootstrap son correctas: http://getbootstrap.com/css/#grid-media-queries

Si eso te lía más que ayudarte, olvídalo. Símplemente busca los tamaños de anchos más habituales y pon un ancho de contenedor algo menor.

Lo que consigues con esas media queries es que se apliquen distintos tamaños dependiendo de la resolución. ¿Resultado? Tu contenedor tendrá un ancho correcto en cualquier dispositivo.

Vale vale, ahora creo que si que lo he pillado.
Pones dos width para que valga para cualquier dispositivo, ¿no? ¿pero cómo sabe cuál coger?
Gracias
 
Pues por la media query :)

PHP:
@media (min-width: 768px) {
  /* Este CSS se aplicará sólo cuando la resolución de la ventana (o view-port, ya verás este concepto) sea de 768 píxeles o más */
}

@media (min-width: 992px) {
  /* Este CSS se aplicará con una ventana de 992 píxeles o más */
  /* Las reglas que hubiera aquí sobreescribirán al CSS de la media query anterior porque cuando se elige esta media query, también se elige la anterior... */
}

La media query elige cuál aplica en base a las condiciones que tú le indiques. La resolución es sólo una de las condiciones que hay. Échale un ojo al link que puse sobre media queries, de verdad, es BÁSICO para esto.
 
Mira, pega esto en un fichero .html y ábrelo con el navegador:

HTML:
<style>
	@media (min-width: 768px) {
		.contenedor {
			width: 728px;
		}
	}
	@media (min-width: 991px) {
		.contenedor {
			width: 940px;
		}
	}	
	@media (min-width: 1200px) {
		.contenedor {
			width: 1140px;
		}
	}	
	.contenedor {
		background: #fee;
		border: 1px solid red;
		margin: 20px auto;
		padding: 20px;
	}
</style>
<div class="contenedor">
	<p>Probando.</p>
</div>

Arrastra el borde de la ventana para hacerlo más grande y más pequeño y mira lo que sucede.
 
Arriba