Подтвердить что ты не робот

Сделайте Div 100% контейнера с бабушкой и дедушкой?

Здесь проблема: -

У меня есть один div, который установлен на максимальную ширину 960px.

Ширина div внутри div устанавливается равной 100%, но 100% означает максимум 960px

Как я могу заставить div внутри div 960px стать 100% экрана пользователя, не перемещая дочерний div (100%) из родительского div (960px)?

РЕДАКТИРОВАТЬ ДАЛЬНЕЙШЕЕ РАЗРЕШЕНИЕ. Здесь структура: -

 gParentDiv
    parentDiv
       myDiv

Я хочу, чтобы myDiv был такой же, как и gParentDiv, но сохранил его в parentDiv

Надеюсь, вы сможете помочь

4b9b3361

Ответ 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;
 }