Egal wie der Inhalt ist.
Ist das möglich?
Egal wie der Inhalt ist.
Ist das möglich?
Antworten:
Das funktioniert bei mir immer:
<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>
Dies ist wahrscheinlich die einfachste Lösung für dieses Problem. Es müssen nur vier CSS-Attribute festgelegt werden (obwohl eines davon nur dazu dient, den IE glücklich zu machen).
Dies ist meine Lösung, um ein Vollbild-Div mit reinem CSS zu erstellen. Es wird ein Vollbild-Div angezeigt, das beim Scrollen dauerhaft bleibt. Und wenn der Seiteninhalt auf den Bildschirm passt, wird auf der Seite keine Bildlaufleiste angezeigt.
Getestet in 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>
Dies ist die stabilste (und einfachste) Methode und funktioniert in allen modernen Browsern:
.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>
Getestet für Firefox, Chrome, Opera, Vivaldi, IE7 + (basierend auf der Emulation in IE11).
position: fixed; top: 0; left: 0;
und jetzt den Teil, der anders ist : width: 100%; height: 100%;
. Dies funktioniert auch in älteren Browsern einwandfrei.
box-sizing: border-box;
. Andernfalls erhalten Sie ein größeres Feld, das zum Scrollen führt. Sehen Sie das .
Der beste Weg, dies mit modernen Browsern zu tun, besteht darin, die prozentualen Längen des Ansichtsfensters zu verwenden und für Browser, die diese Einheiten nicht unterstützen , auf die regulären prozentualen Längen zurückzugreifen .
Die prozentualen Längen des Ansichtsfensters basieren auf der Länge des Ansichtsfensters. Die beiden Einheiten, die wir hier verwenden werden, sind vh
(Ansichtsfensterhöhe) und vw
(Ansichtsfensterbreite). 100vh
entspricht 100% der Höhe des Ansichtsfensters und 100vw
100% der Breite des Ansichtsfensters.
Angenommen, der folgende HTML-Code:
<body>
<div></div>
</body>
Sie können Folgendes verwenden:
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;
}
Hier ist eine JSFiddle-Demo, in der das div
Element sowohl die Höhe als auch die Breite des Ergebnisrahmens ausfüllt. Wenn Sie die Größe des Ergebnisrahmens ändern, wird die Größe des div
Elements entsprechend geändert.
Ich habe keinen IE Josh. Könnten Sie das bitte für mich testen? Vielen Dank.
<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
stattdessen verwenden, wenn die Seite scrollen kann, aber beachten Sie, dass es in einigen mobilen Browsern nicht funktioniert caniuse.com/#feat=css-fixed
Was ich die beste elegante Art und Weise gefunden , wie die folgenden, hier die meisten Trick ist , die machen 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>
Ändern Sie das body
Element in a flex container
und das div
in a flex item
:
body {
display: flex;
height: 100vh;
margin: 0;
}
div {
flex: 1;
background: tan;
}
<div></div>
Hier ist die kürzeste Lösung, basierend auf vh
. Bitte beachten Sie, dass vh
dies in einigen älteren Browsern nicht unterstützt wird .
CSS:
div {
width: 100%;
height: 100vh;
}
HTML:
<div>This div is fullscreen :)</div>
Dies ist der Trick, den ich benutze. Gut für reaktionsschnelle Designs. Funktioniert perfekt, wenn der Benutzer versucht, die Größe des Browsers zu ändern.
<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>
Leider ist die height
Eigenschaft in CSS nicht so zuverlässig, wie sie sein sollte. Daher muss Javascript verwendet werden, um den Höhenstil des betreffenden Elements auf die Höhe des Ansichtsfensters des Benutzers festzulegen. Und ja, das geht ohne absolute Positionierung ...
<!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();
am besten , die Höhe über zu ermitteln.