沙漏是一種常見的幾何圖形,它由兩個相互重疊的三角形組成,寬度逐漸縮小,中間最寬,逐漸變窄,最終形成一個尖頭。在CSS中,我們可以利用偽類和transform來實現(xiàn)一個沙漏效果。
/* 定義一個父元素 *//* 設(shè)置父元素的高度和寬度 */ .hourglass { width: 100px; height: 160px; position: relative; } /* 定義上三角形 */ .hourglass:before { content: ""; position: absolute; top: 0; left: 0; right: 0; margin: auto; width: 0; height: 0; border-style: solid; border-width: 80px 50px 0 50px; border-color: red transparent transparent transparent; transform: rotate(180deg); } /* 定義下三角形 */ .hourglass:after { content: ""; position: absolute; bottom: 0; left: 0; right: 0; margin: auto; width: 0; height: 0; border-style: solid; border-width: 0 50px 80px 50px; border-color: transparent transparent red transparent; } /* 調(diào)整上下三角形的位置 */ .hourglass:before, .hourglass:after { z-index: -1; } /* 設(shè)置父元素的背景顏色和邊框 */ .hourglass { background-color: yellow; border: 1px solid black; }
上述代碼中,我們利用:before和:after偽類來分別定義上下兩個三角形。利用border屬性以及transform中的rotate屬性來設(shè)置三角形的形狀和方向。同時,利用position和z-index屬性來控制兩個三角形的位置。
最終,我們得到一個具有沙漏形狀的div元素,可以通過調(diào)整父元素的高度和寬度以及三角形的大小和角度來實現(xiàn)不同大小和形狀的沙漏效果。