ширина: 100% с положением: абсолют

Если вы делаете:

<div style="width: auto; background: red; color: white">test</div> 

Вы получаете div, который растягивается, чтобы заполнить всю ширину экрана (100%). Вот что мне нужно, чтобы это случилось.

Однако мне также нужно установить начальную позицию. Итак, мне нужна position: absolute.

Когда я добавляю position: absolute, ширина элемента div равна ширине содержимого внутри (аналогично значениям с плавающей точкой). Есть ли способ обойти это?

Я не могу просто указать width: 100% так как это не учитывает размеры границ и т.д.

Ответы

Ответ 1

Когда я добавляю позицию: абсолютная, ширина div только такая же широкая, как содержимое внутри.. (Подобно поплавкам). Есть ли способ обойти это?

Я не могу просто указать ширину: 100%, так как это не занимает размеры границ учетной записи и т.д.

Вы можете использовать position:absolute; left:0; right:0; top:0.

Вот так: http://jsfiddle.net/thirtydot/yQWGV/

Ответ 2

Вы можете использовать ширину: 100% и размер окна атрибута css, чтобы получить модель окна, работающую как IE 5.5, то есть заполнение и граница, подсчитанные в ширину.

div.absolute {
    width: 100%;
    border: 5px solid #000;
    background-color: #F00;
    position: absolute; top: 100px;
    box-sizing: border-box;
    -moz-box-sizing: border-box;
    -webkit-box-sizing: border-box;
    padding: 50px;
}

Здесь сценарий: http://jsfiddle.net/dJtm2/

Будьте осторожны, поскольку это относительно новый атрибут CSS3 и будет работать только в новых браузерах, и, как вы можете видеть из моего примера, требуется ужасная контрпродуктивная мера, которая является префиксом поставщика.

Ответ 3

просто напишите вот так:

div.absolute {
    border: 5px solid #000;
    background-color: #F00;
    position: absolute;
    top: 100px;
    padding: 50px;
    left:0;
    right:0;
}

http://jsfiddle.net/dJtm2/1/

в этом padding & border не увеличивать ширину элемента.