2015-04-15 1 views

ответ

0

Использование JQuery

$('.elementClass').width($(window).width()-300); 
+2

Вам придется обернуть это в прослушиватель для window.onresize, иначе он сломается, когда пользователь изменит размер своего окна браузера. –

+0

Истинное утверждение :-) –

+0

Возможно, jquery - лучший способ, пока я делаю то же самое при изменении размера – LittleFunny

2

Просто используйте право.

div { 
    position: absolute; 
    left: 300px; 
    right: 0; 
} 

https://jsfiddle.net/v2qq0gyp/1/

Вы также можете сделать это для верхней и нижней части, что приводит к полной страницы DIV:

div { 
    position: absolute; 
    top: 0; 
    bottom: 0; 
    left: 0; 
    right: 0; 
} 

С позиции относительной:

div { 
 
    position: relative;  
 
    left: 30%; 
 
    right: 0;  
 
    margin-right: 30%; 
 
}
<div> 
 
    Lorem ipsum dolor sit amet, consectetur adipiscing elit. In erat urna, interdum non velit id, fringilla tempus lectus. Integer fermentum est in nisi lobortis aliquet. Sed rutrum purus purus, non fermentum nulla volutpat id. In lacus lacus, condimentum ut sollicitudin id, finibus et sem. Nulla magna elit, sagittis vitae tortor eu, tempor placerat elit. Fusce fringilla quam in erat commodo, eget vehicula tellus eleifend. Donec vitae nisi urna. 
 

 
    Lorem ipsum dolor sit amet, consectetur adipiscing elit. In erat urna, interdum non velit id, fringilla tempus lectus. Integer fermentum est in nisi lobortis aliquet. Sed rutrum purus purus, non fermentum nulla volutpat id. In lacus lacus, condimentum ut sollicitudin id, finibus et sem. Nulla magna elit, sagittis vitae tortor eu, tempor placerat elit. Fusce fringilla quam in erat commodo, eget vehicula tellus eleifend. Donec vitae nisi urna. 
 
</div>

+0

Примечания: Это потенциально кинуть макет остальной части страницы, хотя –

+0

@SethMcClaine Как? Это уже позиция абсолютная. –

+0

Не говорит, что это абсолютное положение ... может быть относительным ... –

1

Вы также можете использовать calc по ширине.

Пример:

div { 
position: absolute; 
left: 300px; 
width: calc(100% - 300px); 
} 

Он не доступен во всех браузерах согласно комментарии ... Here's скрипку, тем не менее.

+2

Не доступен во всех браузерах: http://caniuse.com/#feat=calc –

+0

@SethMcClaine dam you! LOL просто шучу. спасибо за то, что указали это, не знали об этом –

+0

Мне действительно нравится это решение, не знаю, что было доступно (+1) –

-1

Я считаю, что вы могли бы решить, добавив «padding-left» или «margin-left» вместо «left». И не указывайте «width: 100%».

+0

Это будет работать, только если содержимое div больше, чем оставшееся пространство. –

+0

@SethMcClaine подробно изложите свой комментарий. div по умолчанию имеет «dispaly: block», который получает «ширину» своего родителя минус padding-left/right, margin-left/right и border-left/right. – alexeiTruhin

+0

не работает ** http://jsfiddle.net/x8zfeLw3/ –

0

Другим вариантом было бы использовать влево,%

left: 30%; 
width: 70%; 
+0

Удалите ширину, div автоматически переместится на оставшуюся область, потому что это элемент блока. – mystrdat

-1

Try это надо правильно работает :)

Код:

div{ 
 
    height: 100px; 
 
    margin-left: 300px; 
 
    background-color: red; 
 
}
<div> Content </div>

+1

'device-width' не существует как значение' width', автоматическое умолчание в порядке, поэтому вы можете просто удалить декларацию 'width', потому что' div' является элементом 'display: block' и будет расширяться естественным образом до заполните горизонтальное пространство экрана. – mystrdat

+0

благодарите человека, вы правы. – Bbird

1

Здесь много преувеличенных решений.

A div - элемент блока, который, естественно, расширяется до полной ширины его родителей. Это означает, что вам нужно только немного оттолкнуть его слева, как минимальное решение, и в зависимости от содержащего элемент он будет работать из коробки. Добавьте класс к div, чтобы получить некоторые лучшие практики происходят и использование:

.class { 
    width: auto; // is default 
    margin-left: 300px; 
} 
Смежные вопросы