通過把border上左設置為有顏色,下右設置為透明,在#demo:before
放置一個向下的等邊三角形,絕對定位使之頂部與大盒子的下邊框重合。
再通過把border上左設置為白色,下右設置為透明,在大三角形里面放置一個白色小三角形,覆蓋掉一部分顏色,就形成了尖下巴。
可以用#demo:before
和#demo:after
偽元素來實現,也可以在大盒子里放置小盒子再絕對定位。
html代碼:
<p id="demo"></p>
css代碼:
#demo { width: 200px; height: 100px; background:#FFF; border: 8px solid #666; border-radius: 30px; box-shadow: 2px 2px 4px #888; position: relative; } #demo:before { content:""; position: absolute; left: 30px; top: 100px; border: 25px solid; border-color: #666 transparent transparent #666; } #demo:after { content:""; position: absolute; left: 38px; top: 100px; border: 15px solid; border-color: #FFF transparent transparent #FFF; }
有幾個細節需要注意:
#demo:after
的兩條有色邊框應該與盒子的背景顏色相同,所以要記得給盒子設置背景顏色,而不是透明;此處我將盒子背景設置為與邊框相同的白色。
此處有絕對定位,可以不給border設置width:0px;height:0px;
,正常情況是需要的,否則邊框就會拉伸成一行。
如下圖,黑三角形的兩條邊框減去白三角形的兩條邊框等于(c+d),而為了美觀,d應該約等于a(c必須是整數,所以a不可能是整數),這里需要一些計算。
更多純CSS實現對白框相關文章請關注PHP中文網!
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com