2011-11-07 81 views

回答

2

如果<div>是不會包含任何東西,如果它只是容貌,那麼你可以只風格的邊框看起來像:

#yourDiv { 
    height:375px; /* height of the left side */ 
    width:0; 
    border-right:none; 
    border-left:50px solid gray; /* width of the "div" */ 

    border-top:50px solid transparent; 
    border-bottom:50px solid transparent; /* 375 - 50 - 50 = 275 */ 
} 

但是,如果你希望能夠把東西在<div>裏面,你可以做類似的東西,內容之前和之後,利用額外的,空的元素:

<div class="skewedBefore"></div> 
<div>blah blah blah</div> 
<div class="skewedAfter"></div> 

.skewedBefore, .skewedAfter { 
    height:0; width:0; 
    border-left:100px solid gray; /* width of the content div */ 
} 
.skewedBefore { border-top:50px solid transparent } 
.skewedAfter { border-bottom:50px solid transparent } 

你甚至可以使用僞元素(:前:後)爲第二個解決方案,如果你想至。

+0

非常聰明。感謝您的建議。我不得不調整高度到275,但它的工作! – William

+0

目前,我在那裏有一個圖像。我希望有一種方法可以使它更具動態性,以便在z的長度範圍內有一個從x高度到y高度的光滑盒子。 – William

1

我認爲你正在尋找CSS3 transforms。你可以傾斜和縮放到你的內心。

+0

到目前爲止,我還沒有找到適合此描述的轉換。很高興找到一個雖然! – William

+0

@William:參見[本文](http://math.stackexchange.com/a/339033/35416),瞭解如何使用'matrix3d'將任意四點映射到任何其他四點,例如將矩形圖像轉換爲任意形狀的四邊形。 – MvG