2014-12-24 4 views
2

Я работаю над каким-то графическим приложением. Есть элементы внутри контейнера div, и есть еще один div сверху, который должен закрепить все элементы внутри, если он.Содержимое клипа внутри div с другим div

Вот пример: http://jsfiddle.net/n6m4n750/

Красный прямоугольник "#clip должны обрезать все элементы внутри #container DIV, так что любые элементы или части элемента, который находится за пределами #clip DIV, будут скрыты.

Как это можно сделать?

Любая помощь будет оценена по достоинству.

+0

Не можете ли вы, чтобы все потомки #container были внутри #clip вместо? Возможно, использование чистой разметки и CSS для рисования ставит перед собой очень крутую задачу. – Luca

+0

Если вы можете игнорировать IE, возможно, вы можете работать с ['clip-path'] (https://developer.mozilla.org/en/docs/Web/CSS/clip-path) и элементами SVG. http://caniuse.com/#feat=css-clip-path –

+0

Это просто демо, реальное приложение намного сложнее и, к сожалению, я не могу изменить HTML, поэтому потомки #container будут внутри #clip. Поэтому я должен найти другое решение ... – Light

ответ

1

Невозможно по-настоящему закрепить его, насколько я знаю.

Если фон белый, вы можете моделировать идею givind огромную белую тень вокруг него

#clip { 
    position: absolute; 
    width: 300px; 
    height: 300px; 
    border: solid 2px red; 
    top: 50px; 
    left: 50px; 
    box-shadow: 0px 0px 0px 1000px white; 
} 

demo

+0

Приятная идея, но #container должен быть виден ... У него будет применено фоновое изображение ... любая другая идея? – Light

+0

Не можете ли вы изменить свой HTML-код? – vals

+0

Это просто демо, реальное приложение намного сложнее, и, к сожалению, я не могу изменить HTML, поэтому потомки #container будут внутри #clip. Поэтому я должен найти другое решение ... – Light

1

Добавьте следующий CSS к #clip:

box-shadow: 0px 0px 0px 25px white; 

Здесь белая тень #clip перекрывает содержимое, которое необходимо обрезать, что дает эффект отсечения.

DEMO.

Смежные вопросы