İçeriği nasıl olursa olsun.
Bunu yapmak mümkün mü?
İçeriği nasıl olursa olsun.
Bunu yapmak mümkün mü?
Yanıtlar:
Bu benim için her zaman işe yarar:
<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>
Bu muhtemelen bu sorunun en basit çözümüdür. Yalnızca dört CSS özelliği ayarlamanız gerekir (bunlardan biri yalnızca IE'yi mutlu etmek içindir).
Bu, saf css kullanarak bir tam ekran div oluşturmak için benim çözümdür. Kaydırmaya devam eden bir tam ekran div görüntüler. Sayfa içeriği ekrana sığarsa sayfa kaydırma çubuğu göstermez.
IE9 +, Firefox 13+, Chrome 21+ 'da test edilmiştir
<!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>
Bu, bunu yapmanın en kararlı (ve kolay) yoludur ve tüm modern tarayıcılarda çalışır:
.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>
Firefox, Chrome, Opera, Vivaldi, IE7 + 'da çalıştığı test edilmiştir (IE11'deki emülasyona dayanarak).
position: fixed; top: 0; left: 0;
ve şimdi farklı bir bölümünü: width: 100%; height: 100%;
. Bu aslında eski tarayıcılarda da kusursuz çalışır.
box-sizing: border-box;
, aksi takdirde kaydırmaya neden olacak daha büyük bir kutu alırsınız. Bkz bu .
Bunu modern tarayıcılarla yapmanın en iyi yolu, bu birimleri desteklemeyen tarayıcılar için normal yüzde uzunluklarına geri dönerek Viewport yüzde Uzunluklarını kullanmaktır .
Görünüm yüzdesi uzunlukları görünümün kendisinin uzunluğuna bağlıdır. Burada kullanacağımız iki birim vh
(görünüm yüksekliği) ve vw
(görünüm genişliği). 100vh
görünüm alanının yüksekliğinin% 100'üne eşittir ve görünüm 100vw
alanının genişliğinin% 100'üne eşittir.
Aşağıdaki HTML varsayıldığında:
<body>
<div></div>
</body>
Aşağıdakileri kullanabilirsiniz:
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;
}
Sonuç çerçevesinin hem yüksekliğini hem de genişliğini dolduran öğeyi gösteren bir JSFiddle demosudiv
. Sonuç çerçevesini div
yeniden boyutlandırırsanız , öğe uygun şekilde yeniden boyutlandırılır.
IE Josh'um yok, lütfen bunu benim için test edebilir misin? Teşekkürler.
<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
sayfa kaydırılabiliyorsa kullanmak isteyebilirsiniz , ancak bazı mobil tarayıcılarda çalışmadığını unutmayın caniuse.com/#feat=css-fixed
En zarif yolu bulduğum şey aşağıdaki gibidir, buradaki en iyi numara div
's yapmaktır 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>
Değişim body
bir içine eleman flex container
ve div
bir içine flex item
:
body {
display: flex;
height: 100vh;
margin: 0;
}
div {
flex: 1;
background: tan;
}
<div></div>
İşte size dayalı en kısa çözüm vh
. Lütfen bazı eski tarayıcılardavh
desteklenmediğini unutmayın .
CSS:
div {
width: 100%;
height: 100vh;
}
HTML:
<div>This div is fullscreen :)</div>
Kullandığım numara bu. Duyarlı tasarımlar için iyi. Kullanıcı tarayıcı yeniden boyutlandırmasıyla uğraşmaya çalıştığında mükemmel çalışır.
<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>
Ne yazık ki, height
CSS'deki mülk olması gerektiği kadar güvenilir değil. Bu nedenle, söz konusu öğenin yükseklik stilini kullanıcı görünümünün yüksekliğine ayarlamak için Javascript kullanılmalıdır. Ve evet, bu mutlak konumlandırma olmadan yapılabilir ...
<!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();
en iyi fikir olacaktır.