Сделайте Div 100% контейнера с бабушкой и дедушкой?
Здесь проблема: -
У меня есть один div, который установлен на максимальную ширину 960px.
Ширина div внутри div устанавливается равной 100%, но 100% означает максимум 960px
Как я могу заставить div внутри div 960px стать 100% экрана пользователя, не перемещая дочерний div (100%) из родительского div (960px)?
РЕДАКТИРОВАТЬ ДАЛЬНЕЙШЕЕ РАЗРЕШЕНИЕ.
Здесь структура: -
gParentDiv
parentDiv
myDiv
Я хочу, чтобы myDiv был такой же, как и gParentDiv, но сохранил его в parentDiv
Надеюсь, вы сможете помочь
Ответы
Ответ 1
Вы можете использовать высоту и ширину видового экрана.
Например, следующий класс сделает элемент размером окна просмотра.
.fullscreen {
width: 100vw;
height: 100vh;
}
jsFiddle Demo
Это решение чистое CSS3, но оно имеет некоторые проблемы поддержки браузера.
Если вы просто хотите разбить элемент на весь экран, вы можете использовать другой подход.
jsFiddle Demo
.fullscreen {
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
}
Ответ 2
Если вы хотите, чтобы div стал "100% экрана пользователя" (viewport), тогда ответы @Itay и @Fujy верны.
Если вы хотите иметь ту же позицию, что и дедушка (960px), сначала определите reset размерность гранд-пассажа (тела). Затем расположите ребенка так же, как и дедушка. Рассмотрим этот код:
<body>
<div id="grandparent">
<div id="parent">
<div id="reset">
<div id="child">
</div>
</div>
</div>
</div>
</body>
Обратите внимание, что <body>
имеет ту же ширину, что и окно просмотра, и бабушка-дедушка будет располагаться относительно этого тела/окна просмотра. Ребенок должен быть расположен так же, как и дедушка. Итак, сначала reset в окне просмотра: #reset ( position:absolute; left:0; right:0; }
. Теперь легко дать ребенку те же декларации, что и дедушка.
Тело/viewport/grandgrandparent - белый, серый, серый, синий, reset красный и детский зеленый:
![Screenshot]()
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<style>
* { margin: 0; padding: 0; }
#grandparent {
width: 960px;
margin: 0 auto;
background-color: lightgray;
height: 100vh;
}
#parent {
width: 320px;
margin-left: 480px;
height: 100px;
border: 1px solid blue;
background-color: rgba(0,0,255,.30);
padding: 12px;
}
#reset {
position: absolute;
left: 0;
right: 0;
border: 1px solid red;
background-color: rgba(255,0,0,.30);
padding: 12px;
}
#child {
width: 960px; /* same as grandparent */
margin: 0 auto; /* same as grandparent */
border: 1px solid green;
background-color: rgba(0,255,0,.30);
padding: 12px 0;
}
</style>
</head>
<body>
<div id="grandparent">
<h1>Grandparent</h1>
<div id="parent">
<p>The parent can be anywhere.</p>
<div id="reset">
<div id="child">
<p>Child has same position as grandparent.</p>
</div>
</div>
</div>
</div>
</body>
</html>
Примечание 1: #parent { ... }
и все border
, background
и padding
предназначены только для того, чтобы сделать div видимым.
Примечание 2: y-позиция по-прежнему относительна к родительскому. Для оси y reset используйте top:0; bottom:0;
.
Ответ 3
Как использовать absolute
позицию
.child-div {
position:absolute;
left:0;
right:0;
}