He estado buscando una solución por un tiempo, pero no he encontrado nada. Tal vez solo sean mis términos de búsqueda. Bueno, estoy tratando de hacer que el lienzo se centre de acuerdo con el tamaño de la ventana del navegador. El lienzo es 800x600. Y si la ventana se pone por debajo de 800x600, se debe cambiar el tamaño también (pero eso no es muy importante en este momento)Cómo centrar el lienzo en html5
Respuesta
Sólo centrar el div en HTML:
#test {
width: 100px;
height:100px;
margin: 0px auto;
border: 1px solid red;
}
<div id="test">
<canvas width="100" height="100"></canvas>
</div>
Sólo cambia la altura y anchura a lo y usted tiene un div centrado
Afortunadamente, lo necesitaba tan pronto después de publicarlo. :) – mcandre
¡increíble! me alegro de poder ayudar – JoeCianflone
Esto no funciona si el lienzo es más pequeño que el contenedor. – SystemicPlural
Dar el lienzo las siguientes propiedades de estilo CSS:
canvas {
padding-left: 0;
padding-right: 0;
margin-left: auto;
margin-right: auto;
display: block;
width: 800px;
}
Editar
Dado que esta respuesta es bastante popular, permítanme añadir un poco más detalles.
Las propiedades anteriores serán horizontalmente centra el lienzo, div o cualquier otro nodo que tengas relativo a su elemento primario. No es necesario cambiar los márgenes y los rellenos superiores o inferiores. Usted especifica un ancho y deja que el navegador llene el espacio restante con los márgenes automáticos.
Sin embargo, si desea escribir menos, se puede usar cualquier forma abreviada css propiedades que desea, como
canvas {
padding: 0;
margin: auto;
display: block;
width: 800px;
}
de centrado del lienzo verticalmente requiere un enfoque diferente sin embargo. Necesita usar posicionamiento absoluto, y especificar tanto el ancho como la altura. A continuación, establezca las propiedades izquierda, derecha, superior e inferior en 0 y deje que el navegador llene el espacio restante con los márgenes automáticos.
canvas {
padding: 0;
margin: auto;
display: block;
width: 800px;
height: 600px;
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
}
El lienzo se centrará en sí basándose en el primer elemento padre que tiene position
conjunto de relative
o absolute
, o el cuerpo si no se encuentra ninguno.
Otro enfoque sería utilizar display: flex
, que está disponible en EI11
También, asegúrese de usar un tipo de documento reciente como XHTML o HTML 5.
esta es la solución correcta +1 – ProllyGeek
pantalla: bloque; y margen: 0 auto 0 auto; es suficiente también ¡Gracias! – Chris
Para centrar verticalmente un lienzo, no necesita ingresar el ancho y la altura, siempre que lo especifique en el HTML. En cromo, de todos modos. – Zac
he tenido el mismo problema, como lo tener imágenes con muchos anchos diferentes que solo cargo con información de altura. Establecer un ancho permite que el navegador se estire y exprima la imagen. Resuelvo el problema haciendo que la línea de texto quede justo antes de que la línea image_tag se centre (también se deshace de float: left;). Me hubiera gustado que el texto se dejara alineado, pero esta es una inconveniencia menor, que puedo tolerar.
Usted puede dar a su lienzo las propiedades CSS ff:
#myCanvas
{
display: block;
margin: 0 auto;
}
Esta debería ser la respuesta aceptada. – lux
¿Puedes proporcionar un jsfiddle? Este enfoque no parece funcionar –
¿Por qué esta no es la respuesta aceptada?!?!?! –
Las respuestas anteriores sólo funcionan si el lienzo es la misma anchura que el contenedor.
Esto funciona independientemente:
#container {
width: 100px;
height:100px;
border: 1px solid red;
margin: 0px auto;
text-align: center;
}
#canvas {
border: 1px solid blue;
width: 50px;
height: 100px;
}
<div id="container">
<canvas id="canvas" width="100" height="100"></canvas>
</div>
- 1. "Borrado" en el lienzo html5
- 2. ¿Desgarro en el lienzo HTML5?
- 3. Cómo centrar un elemento en el lienzo wpf
- 4. lienzo html5 - ¿Cómo puedo estirar el texto?
- 5. unidades de lienzo html5
- 6. Traducir un lienzo html5
- 7. html5 - arrastre un lienzo
- 8. Similitudes entre el lienzo HTML5 y el lienzo de Android
- 9. HTML5 círculo lienzo texto
- 10. Rectángulo en HTML5 El lienzo está estirado
- 11. Desplazamiento personalizado en el lienzo html5
- 12. ¿Cómo justificar alinear el texto en el lienzo html5?
- 13. ¿Cómo hago un lienzo transparente en html5?
- 14. Cómo dibujar polígonos en un lienzo HTML5?
- 15. inspector de lienzo HTML5?
- 16. HTML5 getImageData sin lienzo
- 17. Lienzo dentro de lienzo de html5
- 18. HTML5 Crear dinámicamente lienzo
- 19. ¿Cómo hacer puntos seleccionables en el lienzo html5?
- 20. Lienzo HTML5: Cómo falsificar globalCompositeOperation = "more-more"
- 21. Cómo deshabilitar seleccionar elemento de lienzo html5
- 22. Redibujar el lienzo de HTML5 increíblemente lento
- 23. Cómo subir imágenes al lienzo de HTML5
- 24. desplazamiento/deslizamiento de fondo en lienzo html5
- 25. Impresión de un lienzo html5?
- 26. Dibujar cuadrícula/tabla en lienzo HTML5
- 27. "googlemaps" arrastrando con lienzo html5
- 28. Agregar elementos al lienzo html5
- 29. Curvas rotas en Html5 Lienzo Bezier
- 30. Dibujar texto girado en un lienzo HTML5
¿Por qué no está lleno de lona página? –
¿Cómo le digo que cree un lienzo de página completa sin dar dimensiones y sin tener barras de desplazamiento al redimensionar? – jorgen
No lo haga en HTML ... hágalo con javascript, use cosas como appendChild o algo así y establezca el ancho y alto en window.innerWidth y window.innerHeight –