摘要:查看效果第六種和背景描邊旋轉此方法就是設置一個寬度和高度分別為的方塊背景,然后背景相鄰的兩條邊描邊再有的屬性旋轉角度,來實現箭頭的朝向。
我們在網頁開發中實現一個tips時會有一個小箭頭,實現這種方法的文章網上已經泛濫了,但有時實現這個小箭頭不止只有單純的三角它還有描邊,今天我們就借那些現有的文章在深入一點來說說如何給tips小箭頭描邊,本章不涉及svg/canvas,沒必要因為我講的是css。
主體樣式:
.dui-tips{ position: relative; padding: 10px; text-align: center; border: 1px solid #f60; border-radius: 5px; background-color: #fff; }第一種border描邊雙層覆蓋:
就是大家常用的border,實現原理就是給其中一條邊設置顏色寬度及樣式,我這里使用了兩個偽類進行折疊,將一個白色的覆蓋在有顏色的偽類上面,再偏移1px來模擬實現1px的描邊效果,代碼如下:
.dui-tips { &:before, &:after { position: absolute; left: 50%; display: table; width: 0; height: 0; content: ""; transform: translate(-50%, 0); border-width: 10px 10px 0 10px; border-style: solid; } &:before { z-index: 0; bottom: -10px; border-color: #f60 transparent transparent transparent; } &:after { z-index: 1; bottom: -8px; border-color: #fff transparent transparent transparent; } }
查看效果
第二種border描邊結合濾鏡drop-shadow屬性:第二種是第一種的延伸,使用濾鏡filter的drop-shadow描邊來實現,box-shadow和drop-shadow實現不規則投影
.dui-tips { &:after { position: absolute; left: 50%; display: table; width: 0; height: 0; content: ""; transform: translate(-50%, 0); border-width: 10px 10px 0 10px; border-style: solid; bottom: -9px; border-color: #fff transparent transparent transparent; filter: drop-shadow(0px 2px 0px #f60); } }
查看效果
第三種通過特殊符號或字體雙層覆蓋第三種方法和第一種類似,通過兩層顏色疊加在有層級的偏移來實現
.dui-tips { &:before, &:after { font-size: 24px; line-height: 18px; position: absolute; left: 50%; display: table; content: "◆"; transform: translate(-50%, 0); text-align: center; } &:before { z-index: 0; bottom: -10px; color: #f60; } &:after { z-index: 1; bottom: -8px; color: #fff; } }
查看效果
第四種通過text-shadow實現這種放發通過給文子設置1px的陰影來顯描邊效果
.dui-tips { &:after { font-size: 24px; line-height: 18px; position: absolute; left: 50%; display: table; content: "◆"; transform: translate(-50%, 0); text-align: center; z-index: 1; bottom: -8px; color: #fff; text-shadow: 0 2px 0 #f60; } }
查看效果
第五種 background雙層覆蓋這種方式設置兩個寬度和高度分別為10px的方塊背景,再給兩層背景分別設置不同的顏色,再通過兩層背景顏色疊加,經過層級偏移再有transform的rotate屬性旋轉角度,來實現箭頭的朝向。
.dui-tips { &:before, &:after { position: absolute; left: 50%; display: table; width: 10px; height: 10px; content: ""; margin-left: -5px; transform: rotate(-45deg); } &:before { z-index: 0; bottom: -6px; background-color: #f60; } &:after { z-index: 1; bottom: -5px; background-color: #fff; } }
查看效果
第六種background和border背景描邊旋轉此方法就是設置一個寬度和高度分別為10px的方塊背景,然后背景相鄰的兩條邊描邊再有transform的rotate屬性旋轉角度,來實現箭頭的朝向。
.dui-tips { &:after { position: absolute; left: 50%; display: table; width: 10px; height: 10px; margin-left: -5px; content: ""; transform: rotate(-45deg); z-index: 1; bottom: -6px; border-bottom: 1px solid #f60; border-left: 1px solid #f60; background-color: #fff; } }
查看效果
第七種background和box-shadow.dui-tips { &:after { position: absolute; left: 50%; display: table; width: 10px; height: 10px; content: ""; margin-left: -5px; transform: rotate(-45deg); z-index: 1; bottom: -5px; background-color: #fff; box-shadow: -1px 1px 0 #f60; } }
查看效果
第八種linear-gradient.dui-tips{ &:before, &:after{ position: absolute; left: 50%; display: table; width: 10px; height: 10px; content: ""; margin-left: -5px; transform: rotate(-135deg); } &:before { z-index: 0; bottom: -6px; background: linear-gradient(-45deg, transparent 7px, #f60 0); } &:after { z-index: 1; bottom: -5px; background: linear-gradient(-45deg, transparent 7px, #fff 0); } }
查看效果
第九種linear-gradient和box-shadow.dui-tips{ &:after{ position: absolute; left: 50%; display: table; width: 10px; height: 10px; content: ""; margin-left: -5px; transform: rotate(-135deg); z-index: 1; bottom: -5px; background: linear-gradient(-45deg, transparent 7px, #fff 0); box-shadow: -1px -1px 0 #f60 } }
查看效果
第十種linear-gradient和border.dui-tips{ &:after{ position: absolute; left: 50%; display: table; width: 10px; height: 10px; content: ""; margin-left: -5px; transform: rotate(-135deg); z-index: 1; bottom: -6px; background: linear-gradient(-45deg, transparent 7px, #fff 0); border-top: 1px solid #f60; border-left: 1px solid #f60; } }
查看效果
第十一種ouline.dui-tips { &:before, &:after { position: absolute; left: 50%; display: table; width: 0; height: 0; content: ""; transform: rotate(45deg); outline-style: solid; outline-width: 5px; } &:before { z-index: 0; bottom: -1px; outline-color: #f60; } &:after { z-index: 1; bottom: 0; outline-color: #fff; } }
查看效果
作者: w3cbest前端開發
互動: 如有疑問可進群討論
本文原創,著作權歸作者所有。商業轉載請聯系@w3cbest前端開發獲得授權,非商業轉載請注明原鏈接及出處。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/53477.html
摘要:查看效果第六種和背景描邊旋轉此方法就是設置一個寬度和高度分別為的方塊背景,然后背景相鄰的兩條邊描邊再有的屬性旋轉角度,來實現箭頭的朝向。 showImg(https://segmentfault.com/img/bVbmX2F?w=400&h=277); 我們在網頁開發中實現一個tips時會有一個小箭頭,實現這種方法的文章網上已經泛濫了,但有時實現這個小箭頭不止只有單純的三角它還有描邊...
摘要:早上無意間進入一個網站,看到他們的效果略屌,如圖剛開始以為是動畫之類的,審查元素發現居然是用動畫實現的,頓時激起了我的欲望,決定要一探究竟,查看代碼之后,發現原理居然是如此簡單多個描邊動畫使用不同的即可對于一個形狀元素或文本元素,可以使用 早上無意間進入一個網站,看到他們的LOGO效果略屌,如圖:showImg(https://segmentfault.com/img/bVT9At?w...
摘要:給設置寬高標簽的寬高默認是是一個行內塊元素可以在標簽上通過,來設置可以在中給對象設置注意不要通過來調整的寬高導致內部的畫布被拉伸,圖形變形獲取畫筆工具繪圖都是通過標簽的畫筆來進行的注意,不要寫成,里面傳入的參數目前也只有這一種情況描邊和填充 給canvas設置寬高: canvas標簽的寬高默認是300*150,是一個行內塊元素 可以在canvas標簽上通過width,height...
閱讀 1179·2021-11-22 13:54
閱讀 2427·2021-09-22 15:36
閱讀 2734·2019-08-30 15:54
閱讀 801·2019-08-30 15:53
閱讀 3167·2019-08-30 15:53
閱讀 513·2019-08-29 15:21
閱讀 2861·2019-08-28 18:28
閱讀 3003·2019-08-26 13:37