Non importa come sia il suo contenuto.
È possibile farlo?
Non importa come sia il suo contenuto.
È possibile farlo?
Risposte:
Questo funziona sempre per me:
<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>
Questa è probabilmente la soluzione più semplice a questo problema. Devi solo impostare quattro attributi CSS (anche se uno di questi è solo per rendere felice IE).
Questa è la mia soluzione per creare un div a schermo intero, usando pure css. Visualizza un div a schermo intero che è persistente sullo scorrimento. E se il contenuto della pagina si adatta allo schermo, la pagina non mostrerà una barra di scorrimento.
Testato su 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>
Questo è il modo più stabile (e facile) per farlo, e funziona in tutti i browser moderni:
.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>
Testato per funzionare con Firefox, Chrome, Opera, Vivaldi, IE7 + (basato sull'emulazione in IE11).
position: fixed; top: 0; left: 0;
e ora la parte che è diverso: width: 100%; height: 100%;
. Questo funziona anche con i browser più vecchi in modo impeccabile.
box-sizing: border-box;
, altrimenti otterrai una scatola più grande che causerà lo scorrimento. Vedere questo .
Il modo migliore per farlo con i browser moderni sarebbe quello di utilizzare le lunghezze percentuali di Viewport , tornando alle lunghezze percentuali regolari per i browser che non supportano tali unità .
Le lunghezze percentuali delle finestre si basano sulla lunghezza della finestra stessa. Le due unità che utilizzeremo qui sono vh
(altezza della finestra) e vw
(larghezza della finestra).100vh
è uguale al 100% dell'altezza della finestra ed 100vw
è uguale al 100% della larghezza della finestra.
Supponendo il seguente HTML:
<body>
<div></div>
</body>
È possibile utilizzare quanto segue:
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;
}
Ecco una demo di JSFiddle che mostra l' div
elemento che riempie sia l'altezza che la larghezza del frame del risultato. Se ridimensionate il frame del risultato, l' div
elemento viene ridimensionato di conseguenza.
Non ho IE Josh, potresti per favore provare questo per me. Grazie.
<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>
Quello che ho trovato il miglior modo elegante è come il seguente, la più trucco è fare le 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>
Cambia l' body
elemento in a flex container
e div
in in a flex item
:
body {
display: flex;
height: 100vh;
margin: 0;
}
div {
flex: 1;
background: tan;
}
<div></div>
Ecco la soluzione più breve, basata su vh
. Si noti che vh
non è supportato in alcuni browser meno recenti .
CSS:
div {
width: 100%;
height: 100vh;
}
HTML:
<div>This div is fullscreen :)</div>
Questo è il trucco che uso. Buono per progetti reattivi. Funziona perfettamente quando l'utente tenta di pasticciare con il ridimensionamento del browser.
<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>
Sfortunatamente, la height
proprietà nei CSS non è affidabile come dovrebbe essere. Pertanto, Javascript dovrà essere utilizzato per impostare lo stile dell'altezza dell'elemento in questione all'altezza della vista degli utenti. E sì, questo può essere fatto senza posizionamento assoluto ...
<!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();
sarebbe la migliore idea.