2013-07-17 52 views
1

是否可以在div#inner的形狀中切掉部分div#outer?我想實現這樣的事情:切掉元素內容的一部分

+0

'背景:透明;'? – user

+1

你嘗試過什麼嗎? – j08691

+0

背景:透明只會顯示外框的背景,而不是透過它。 –

回答

3

如果它只是一個背景圖像通過洞顯示,那麼你可以使用相同的圖像爲#inner格的背景,並將其background-attachment設置爲fixed

類似於

<div id="outer"> 
    <div id="inner">div#inner</div> 
    div#outer 
<div> 

,並在http://codepen.io/gpetrioli/pen/GsBbd

body{background:url('someimage') 0 0 no-repeat;} 

#inner{ 
    background:url('someimage') 0 0 no-repeat fixed; 
} 

演示(包含一些JavaScript來左右​​移動div,只需點擊並拖動

+0

這正是我一直在尋找的。謝謝! – rgtk

1

可以使用mask-image你需要切出形狀的圖像,例如:

mask-image: url(mask-image.png); 

但是我不知道怎麼樣它適用於IE。 Check here for more details on mask-image property;

+0

不適用於我。 http://jsfiddle.net/RKmdd/ – rgtk

+0

無法找到你的'#outer' div的背景圖片,所以它沒有顯示任何東西。 – SharkofMirkwood

+0

對我來說,它顯示出來了。請再試一次,我剛更新了圖片。 – rgtk

0

嘗試使用僞構件的透明元件連接到它的父,具有大的邊界,讓具有孔的印象:

#outer { 
    background:red; 
    width:400px; 
    margin-left: 60px; 
    height:100px; 
    position:relative; 
} 
#inner { 
    position:absolute; 
    right:-150px; 
    top:0; 
    bottom:0; 
    width:150px; 
    overflow:hidden; 
} 
#inner:after { 
    content:""; 
    width:30px; 
    height:30px; 
    display:block; 
    border:red 50px solid; 
    position: absolute; 
    top:-20px; 
    left:0; 
} 

http://jsfiddle.net/PMSdG/3/

+0

很好的答案!比我的更好,+1。 – SharkofMirkwood

+0

不幸的是,這個答案不能解決我的問題。如果我想要在div中間放一圈,該怎麼辦? – rgtk

+0

如果你想在那裏有一個圓圈,你可以添加一個邊框半徑:http://jsfiddle.net/PMSdG/2/ – braican