在CSS3中,我們可以使用skew()方法將元素傾斜顯示。
skew()方法跟translate()方法、scale()方法一樣,也有3種情況:
(1)skewX(x):使元素在水平方向傾斜(X軸傾斜);
(2)skewY(y):使元素在垂直方向傾斜(Y軸傾斜);
(3)skew(x,y):使元素在水平方向和垂直方向同時傾斜(X軸和Y軸同時傾斜);
語法:
transform:skewX(x);
說明:
x表示元素在X軸傾斜的度數,單位為deg。
如果度數為正,表示元素沿水平方向(X軸)順時針傾斜;如果度數為負,表示元素沿水平方向(X軸)逆時針傾斜。
語法:
transform:skewY(y);
說明:
y表示元素在Y軸傾斜的度數,單位為deg。
如果度數為正,表示元素沿垂直方向(Y軸)順時針傾斜;如果度數為負,表示元素沿垂直方向(Y軸)逆時針傾斜。
注意,這裡是跟位移translate()方法類似的,也是W3C的奇葩規定。
語法:
transform:skew(x,y);
說明:
第一個參數對應X軸,第二個參數對應Y軸。如果第二個參數未提供,則值為0,也就是Y軸方向上無斜切。
舉例:
在線測試
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>CSS3傾斜skew()方法</title>
<style type="text/css">
/*設置原始元素樣式*/
#origin
{
margin:100px auto;/*水平居中*/
width:200px;
height:100px;
border:1px dashed silver;
}
/*設置當前元素樣式*/
#current
{
width:200px;
height:100px;
color:white;
background-color: #3EDFF4;
text-align:center;
transform:skewX(30deg);
-webkit-transform:skewX(30deg); /*兼容-webkit-引擎浏覽器*/
-moz-transform:skewX(30deg);/*兼容-moz-引擎浏覽器*/
}
</style>
</head>
<body>
<div id="origin">
<div id="current"></div>
</div>
</body>
</html>
在浏覽器預覽效果如下:
分析:
對於初學者,可能一時半會看不出skewX()方法的本質原理。其實skewX()方法變形原理是這樣的:由於我給元素限定了高度為100px,而skewX()方法是沿著X軸方向傾斜。所以,只要傾斜角度不是180°,元素都會保持100px的高度。同時為了保持傾斜,只能沿著X軸拉長本身。
由此我們可以總結:
transform:skewY(30deg); -webkit-transform:skewY(30deg); /*兼容-webkit-引擎浏覽器*/ -moz-transform:skewY(30deg); /*兼容-moz-引擎浏覽器*/
當采用上述代碼時,在浏覽器預覽效果如下:
學過點基本數學的人都知道,位移、旋轉和傾斜都不會改變四邊形的面積。skew()方法可能比較少用。不過用的好的話,會讓你的網頁美觀動感,但是用得不好的話,則將是一大敗筆。