No importa cómo sea su contenido.
¿Es posible hacer esto?
No importa cómo sea su contenido.
¿Es posible hacer esto?
Respuestas:
Esto siempre funciona para mí:
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style type="text/css">
html, body {
height: 100%;
margin: 0;
}
#wrapper {
min-height: 100%;
}
</style>
<!--[if lte IE 6]>
<style type="text/css">
#container {
height: 100%;
}
</style>
<![endif]-->
</head>
<body>
<div id="wrapper">some content</div>
</body>
Esta es probablemente la solución más simple para este problema. Solo necesita establecer cuatro atributos CSS (aunque uno de ellos es solo hacer feliz a IE).
Esta es mi solución para crear un div de pantalla completa, usando CSS puro. Muestra un div de pantalla completa que es persistente en el desplazamiento. Y si el contenido de la página cabe en la pantalla, la página no mostrará una barra de desplazamiento.
Probado en IE9 +, Firefox 13+, Chrome 21+
<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<title> Fullscreen Div </title>
<style>
.overlay {
position: fixed;
width: 100%;
height: 100%;
left: 0;
top: 0;
background: rgba(51,51,51,0.7);
z-index: 10;
}
</style>
</head>
<body>
<div class='overlay'>Selectable text</div>
<p> This paragraph is located below the overlay, and cannot be selected because of that :)</p>
</body>
</html>
Esta es la forma más estable (y fácil) de hacerlo, y funciona en todos los navegadores modernos:
.fullscreen {
position: fixed;
top: 0;
left: 0;
bottom: 0;
right: 0;
overflow: auto;
background: lime; /* Just to visualize the extent */
}
<div class="fullscreen">
Suspendisse aliquam in ante a ornare. Pellentesque quis sapien sit amet dolor euismod congue. Donec non semper arcu. Sed tortor ante, cursus in dui vitae, interdum vestibulum massa. Suspendisse aliquam in ante a ornare. Pellentesque quis sapien sit amet dolor euismod congue. Donec non semper arcu. Sed tortor ante, cursus in dui vitae, interdum vestibulum massa. Suspendisse aliquam in ante a ornare. Pellentesque quis sapien sit amet dolor euismod congue. Donec non semper arcu. Sed tortor ante, cursus in dui vitae, interdum vestibulum massa. Suspendisse aliquam in ante a ornare. Pellentesque quis sapien sit amet dolor euismod congue. Donec non semper arcu. Sed tortor ante, cursus in dui vitae, interdum vestibulum massa.
</div>
Probado para trabajar en Firefox, Chrome, Opera, Vivaldi, IE7 + (basado en la emulación en IE11).
position: fixed; top: 0; left: 0;
Y ahora la parte que es diferente: width: 100%; height: 100%;
. Esto también funciona perfectamente en navegadores antiguos.
La mejor manera de hacer esto con los navegadores modernos sería hacer uso de las longitudes porcentuales de la ventana gráfica , volviendo a las longitudes porcentuales regulares para los navegadores que no admiten esas unidades .
Las longitudes de porcentaje de ventana gráfica se basan en la longitud de la ventana gráfica misma. Las dos unidades que usaremos aquí son vh
(altura de ventana) y vw
(ancho de ventana). 100vh
es igual al 100% de la altura de la ventana gráfica y 100vw
es igual al 100% del ancho de la ventana gráfica.
Asumiendo el siguiente HTML:
<body>
<div></div>
</body>
Puedes usar lo siguiente:
html, body, div {
/* Height and width fallback for older browsers. */
height: 100%;
width: 100%;
/* Set the height to match that of the viewport. */
height: 100vh;
/* Set the width to match that of the viewport. */
width: 100vw;
/* Remove any browser-default margins. */
margin: 0;
}
Aquí hay una demostración de JSFiddle que muestra el div
elemento que llena tanto el alto como el ancho del marco de resultados. Si div
cambia el tamaño del marco de resultados, el elemento cambia de tamaño en consecuencia.
No tengo IE Josh, ¿podrías probar esto por mí? Gracias.
<html>
<head>
<title>Hellomoto</title>
<style text="text/javascript">
.hellomoto
{
background-color:#ccc;
position:absolute;
top:0px;
left:0px;
width:100%;
height:100%;
overflow:auto;
}
body
{
background-color:#ff00ff;
padding:0px;
margin:0px;
width:100%;
height:100%;
overflow:hidden;
}
.text
{
background-color:#cc00cc;
height:800px;
width:500px;
}
</style>
</head>
<body>
<div class="hellomoto">
<div class="text">hellomoto</div>
</div>
</body>
</html>
position: fixed
en su lugar si la página puede desplazarse, pero tenga en cuenta que no funciona en algunos navegadores móviles caniuse.com/#feat=css-fixed
Lo que encontré de la mejor manera elegante es lo siguiente, el mayor truco aquí es hacer los div
's position: fixed
.
.mask {
background-color: rgba(0, 0, 0, 0.5);
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
margin: 0;
box-sizing: border-box;
width: 100%;
height: 100%;
object-fit: contain;
}
<html>
<head>
<title>Test</title>
</head>
<body>
<h1>Whatever it takes</h1>
<h1>Whatever it takes</h1>
<h1>Whatever it takes</h1>
<h1>Whatever it takes</h1>
<h1>Whatever it takes</h1>
<h1>Whatever it takes</h1>
<h1>Whatever it takes</h1>
<h1>Whatever it takes</h1>
<h1>Whatever it takes</h1>
<h1>Whatever it takes</h1>
<h1>Whatever it takes</h1>
<h1>Whatever it takes</h1>
<h1>Whatever it takes</h1>
<h1>Whatever it takes</h1>
<h1>Whatever it takes</h1>
<h1>Whatever it takes</h1>
<h1>Whatever it takes</h1>
<h1>Whatever it takes</h1>
<h1>Whatever it takes</h1>
<h1>Whatever it takes</h1>
<div class="mask"></div>
</body>
</html>
Cambie el body
elemento en ay flex container
el div
en a flex item
:
body {
display: flex;
height: 100vh;
margin: 0;
}
div {
flex: 1;
background: tan;
}
<div></div>
Aquí está la solución más corta, basada en vh
. Tenga en cuenta que vh
no es compatible con algunos navegadores antiguos .
CSS:
div {
width: 100%;
height: 100vh;
}
HTML:
<div>This div is fullscreen :)</div>
Este es el truco que uso. Bueno para diseños receptivos. Funciona perfectamente cuando el usuario intenta meterse con el cambio de tamaño del navegador.
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style type="text/css">
#container {
position: absolute;
width: 100%;
min-height: 100%;
left: 0;
top: 0;
}
</style>
</head>
<body>
<div id="container">some content</div>
</body>
Desafortunadamente, la height
propiedad en CSS no es tan confiable como debería ser. Por lo tanto, Javascript tendrá que usarse para establecer el estilo de altura del elemento en cuestión a la altura de la ventana gráfica de los usuarios. Y sí, esto se puede hacer sin posicionamiento absoluto ...
<!DOCTYPE html>
<html>
<head>
<title>Test by Josh</title>
<style type="text/css">
* { padding:0; margin:0; }
#test { background:#aaa; height:100%; width:100%; }
</style>
<script type="text/javascript">
window.onload = function() {
var height = getViewportHeight();
alert("This is what it looks like before the Javascript. Click OK to set the height.");
if(height > 0)
document.getElementById("test").style.height = height + "px";
}
function getViewportHeight() {
var h = 0;
if(self.innerHeight)
h = window.innerHeight;
else if(document.documentElement && document.documentElement.clientHeight)
h = document.documentElement.clientHeight;
else if(document.body)
h = document.body.clientHeight;
return h;
}
</script>
</head>
<body>
<div id="test">
<h1>Test</h1>
</div>
</body>
</html>
$(window).height();
la mejor idea sería obtener la altura .