Можно ли сделать div 50px менее 100% в чистом CSS? Я хочу, чтобы <div> составлял всего 50 пикселей меньше 100%. Мне не нужен JavaScript.
Можно ли сделать div 50px менее 100% в CSS3?
Ответ 1
Да, вы можете. Без использования IE expression() вы можете сделать это в CSS3, используя calc().
div {
    width: 100%;
    width: -webkit-calc(100% - 50px);
    width: -moz-calc(100% - 50px);
    width: calc(100% - 50px);
}
Демо: http://jsfiddle.net/thirtydot/Nw3yd/66/
Это сделает вашу жизнь намного проще. В настоящее время он поддерживается в трех основных браузерах: Firefox, Google Chrome (WebKit) и IE9: http://caniuse.com/calc
Ответ 2
A  DIV автоматически берет свою родительскую ширину. Поэтому нет необходимости определять width. Обычно он просто записывал бы это следующим образом:
div{
    margin-right:50px;
}
Отметьте fiddle
Ответ 3
Другой альтернативой является абсолютное позиционирование.
div {
    position: absolute;
    left: 0;
    right: 50px;
}
Но решение Sandeep - это тот, который вы обычно должны использовать. Просто
избегайте использования float. Это предотвращает естественное наполнение элементов контейнером.
Ответ 4
Мое решение работает с float: left и без него.
HTML:
<div></div>
CSS
div {
    height: 20px;
    background: black;
    float: left;
    width: 100%;
    padding-right: 50px;
    box-sizing: border-box;
    background-clip: content-box; 
}
Совместимость: 
 Firefox 3.6, Safari 5, Chrome 6, Opera 10, IE 9
Ответ 5
Использование дисплея block и margin. display:block, если он не объединен с определенным height/width, попытается заполнить его родительским.
header {
    width:100%;
    background:#d0d0d0;
    height:100%;
}
h1 {
    display:block;
    border:#000 solid 1px;
    margin:0 50px 0 0;
    height:100px;
}
<header>
    <h1></h1>
</header>
Ответ 6
Да, мы можем сделать это, сделав
#custom_div{
 width:100%;
 margin-right:50px;
 }
Спасибо
