Незалежно від того, яким є його зміст.
Чи можна це зробити?
Незалежно від того, яким є його зміст.
Чи можна це зробити?
Відповіді:
Це завжди працює для мене:
<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>
Це, мабуть, найпростіший варіант вирішення цієї проблеми. Потрібно лише встановити чотири атрибути CSS (хоча один із них лише для того, щоб зробити IE щасливим).
Це моє рішення створити дію на повноекранному екрані, використовуючи чистий css. Він відображає повноекранний файл, який зберігається в прокрутці. І якщо вміст сторінки вміститься на екрані, на сторінці не з’явиться смуга прокрутки.
Тестовано в 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>
Це найбільш стабільний (і простий) спосіб зробити це, і він працює у всіх сучасних браузерах:
.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 + (на основі емуляції в IE11).
position: fixed; top: 0; left: 0;
а тепер ту частину , яка відрізняється: width: 100%; height: 100%;
. Це насправді працює і в старих браузерах бездоганно.
box-sizing: border-box;
, інакше ви отримаєте більшу коробку, яка спричинить прокручування. Дивіться це .
Найкращим способом зробити це в сучасних браузерах було б використовувати довжини відсотків Viewport , повертаючись до звичайної процентної довжини для браузерів, які не підтримують ці одиниці .
Процентна довжина перегляду залежить від довжини самого вікна перегляду. Два одиниці, які ми тут будемо використовувати, - це vh
(висота вікна перегляду) та vw
(ширина вікна перегляду). 100vh
дорівнює 100% висоти вікна перегляду і 100vw
дорівнює 100% ширини вікна перегляду.
Припускаючи наступний HTML:
<body>
<div></div>
</body>
Ви можете використовувати наступне:
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;
}
Ось демонстрація JSFiddle, яка показує, що div
елемент заповнює як висоту, так і ширину результативного кадру. Якщо змінити розмір кадру результатів, div
елемент змінює розмір відповідно.
У мене немає IE Josh, чи можете ви, будь ласка, перевірити це на мені. Дякую.
<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
замість цього , якщо сторінка може прокручувати, але зауважте , що він не працює в деяких мобільних браузерах caniuse.com/#feat=css-fixed
Те , що я знайшов найкращий елегантний спосіб, як в наступному, самий трюк тут зробити 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>
Змініть body
елемент на a flex container
і div
на flex item
:
body {
display: flex;
height: 100vh;
margin: 0;
}
div {
flex: 1;
background: tan;
}
<div></div>
Ось найкоротше рішення, засноване на vh
. Зверніть увагу, що vh
це не підтримується в деяких старих браузерах .
CSS:
div {
width: 100%;
height: 100vh;
}
HTML:
<div>This div is fullscreen :)</div>
Це трюк, який я використовую. Добре підходить для чуйних дизайнів. Відмінно працює, коли користувач намагається зіпсувати розмір браузера.
<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>
На жаль, height
властивість у CSS не настільки надійна, як повинна бути. Тому Javascript доведеться використовувати для встановлення стилю висоти розглянутого елемента на висоту вікна перегляду користувачів. І так, це можна зробити без абсолютного позиціонування ...
<!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();
найкраща ідея отримає висоту .