2013-02-26 154 views
3

我試圖玩弄的CSS邊界,但無法弄清楚如何實現以下「四四方方」的樣子:是否可以用css實現斜邊?

enter image description here

這可能嗎?如果是這樣(不要使用深色背景,因爲它是在那裏添加對比度)

+0

我在想:以後也是這樣,但是rotate3D mhmm我真的不想使用它,因爲跨瀏覽器問題 – Ilja 2013-02-26 21:23:57

+0

或者''after'後面的這個技巧:http://css-tricks.com/ snippets/css/css-triangle/ – 2013-02-26 21:24:25

+0

有趣的是,我會嘗試和這個想法一起玩 – Ilja 2013-02-26 21:25:40

回答

3

這是可能的 - 使用:after和一些額外的CSS技巧與邊界。

http://jsfiddle.net/EaZ8r/3/

CSS

body { 
    background: #000; 
} 

#box { 
    height: 150px; 
    width: 200px; 
    background: #fff; 
    margin: 0 auto; 
    position: relative; 
} 

#box:after { 
    display: block; 
    background: blue; 
    width: 180px; 
    height: 0px; 
    border: 10px #000 solid; 
    border-top: 15px #eee solid; 
    content: ""; 
    position: absolute; 
    bottom: 0px; 
} 

它是如何工作的?

這裏最主要的是很好的理解border如何被瀏覽器淹沒。看看這個例子:http://jsfiddle.net/n2nsB/。當兩個邊界彼此相遇時,畫布會在它們之間分裂,導致某種三角形淹沒在那裏。這是非常有用的,因爲兩件事情:

  1. 首先,border-width可以單獨爲所有4個邊框設置,所以你可以改變分割的角度!檢查例子:http://jsfiddle.net/n2nsB/1/
  2. 第二,但更重要的是:你可以設置border-color等於background使其無形!例如:http://jsfiddle.net/n2nsB/2/
  3. 甚至可以設置邊框,當元素沒有高度時,邊框只能是該元素被淹沒的東西。例如:http://jsfiddle.net/n2nsB/3/

另一方面,你也應該知道如何:after僞元素的作品。你可以在網上找到很多有關這方面的很好的教程。我建議這一開始:http://coding.smashingmagazine.com/2011/07/13/learning-to-use-the-before-and-after-pseudo-elements-in-css/

所以只要結合所有的東西,並得到你想要的。

+0

嘿,感謝它的工作!但是我完全不知道它是如何實現的,你能否以更深入的方式解釋它? – Ilja 2013-02-26 21:42:48

+1

我已經更新了我的答案。希望它幫助更多。 – MarcinJuraszek 2013-02-26 21:58:04

相關問題