html四边形的的框怎么编写,html知识点之利用css四边形切角并且加上边框
html知識點之利用css四邊形切角并且加上邊框
html知識點之利用css四邊形切角并且加上邊框
前言
這幾個月做了很多前端工作,其中一個需求還是蠻頭疼,UI給的圖上面的四邊形是一個帶斜邊的,直接用背景圖可以實現,但是會出現各種布局的問題,比如內容太大了,邊框不會跟著擴大,廢話不多說,這里寫一些如何利用css話四邊形帶有斜邊,并且給斜邊加邊框,在這之前,先簡單說一下需要用到的函數
linear-gradient()函數
#grad {
background-image: linear-gradient(red, yellow, blue);
}
看上面的代碼是從頭部開始的線性漸變,從紅色開始,轉為黃色,再到藍色。
這里大概就知道了linear-gradient是用來畫漸變用的。并且可以指定顏色以及方向。
clip-path函數
這個函數我也不是很懂,大概就是裁剪路徑,配合函數后面的做標參數,對四邊形進行裁剪,這里是配合polygon使用。
實現代碼
clip-path: polygon(0 0, calc(100% - 15px) 0,100% 15px, 100% calc(100% - 0px),
calc(100% - 0px) 100%, 0px 100%,0 calc(100% - 0px),0 0px);
background:linear-gradient(-45deg,#4C829A 0px, rgba(216,236,255,0.05) 0) bottom right,
linear-gradient(45deg,#4C829A 0px, rgba(216,236,255,0.05) 0) bottom left,
linear-gradient(135deg,#4C829A 0px, rgba(216,236,255,0.05) 0) top left,
linear-gradient(-135deg,#4C829A 10px,rgba(216,236,255,0.05) 0) top right;
background-repeat: no-repeat;
border: solid 1px #4C829A;
上
面這個樣式就可以實現了,這是我實現的效果。
注意,我不光實現了切角,還實現了,切角以后,邊框也貼著斜邊。
代碼解釋
background:linear-gradient(-45deg,#4C829A 0px, rgba(216,236,255,0.05) 0) bottom right,
linear-gradient(45deg,#4C829A 0px, rgba(216,236,255,0.05) 0) bottom left,
linear-gradient(135deg,#4C829A 0px, rgba(216,236,255,0.05) 0) top left,
linear-gradient(-135deg,#4C829A 10px,rgba(216,236,255,0.05) 0) top right;
先解釋這個代碼。 linear-gradient最后面的是方向,這里有四個方向。不細說了、
其中第一個參數135deg就是角度,比如 top right;即上到右,切-135度,
第二個參數是4C829A 是邊框的邊框的顏色,
第三個參數0px,是你要切多高。這個地方經過演算,是這里的值,看圖。
虛線部分即為你設置的值,這個值是以頂點為起點,45度角延長,
第四個參數,rgba(216,236,255,0.05) 前面三個是是四邊形的填充顏色,最后一個0.05是填充顏色的透明度,這里也可以設置background-size: 50% 50%;意思即為將四邊形平均分為四分,每一份的顏色可以單獨設置,這里不做深究,這里我也沒用到
第五個參數0表示漸變渲染顏色,這里寫0,表示不讓他漸變渲染,如果需要漸變渲染顏色,并且四邊形需要不同的顏色,就可以用到上面的background-size屬性。
第六個屬性 top right表示方向。代表你要從哪里往哪里切
上面說了第一個要點,能夠實現四邊形切邊,但是邊框還是四邊,沒有切邊。
clip-path: polygon(0 0, calc(100% - 15px) 0,100% 15px, 100% calc(100% - 0px),
calc(100% - 0px) 100%, 0px 100%,0 calc(100% - 0px),0 0px);
這段代碼,可以通過裁剪的方式,實現邊框也跟著切邊。
經過反復實驗,發現 polygon(0 0, calc(100% - 15px) 0,100% 15px, 100% calc(100% - 0px),
calc(100% - 0px) 100%, 0px 100%,0 calc(100% - 0px),0 0px);中的八個點,按照順序,分別是圖中的1-8,好像沒什么規律,這里可能會有問題,具體大家可自行演算。可以看到,我切的斜邊是右上角,就是切2號點和3號點。2號點的坐標本來是100%和0,其控制的是上面那條邊的右邊坐標點,這里減去15px,就是切割后的坐標點,3號點位同理,縱坐標切15px,然后可以大概算出沿著直角三角形做垂直線,大概可以算出其距離時10.6px。也就是 linear-gradient(-135deg,#4C829A 10px,rgba(216,236,255,0.05) 0) top right;這里設置的10px(大致結果),下面這張圖,可以幫助大家理解怎么算的。
當然,你也可以先設置你要切多少個px,然后算出坐標值是多少。但是這個算出來的結果,可能跟實際效果還是有所出入,具體還需要自己在計算值得上下進行調整
html知識點之利用css四邊形切角并且加上邊框相關教程
總結
以上是生活随笔為你收集整理的html四边形的的框怎么编写,html知识点之利用css四边形切角并且加上边框的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mfc oninitdialog 中的h
- 下一篇: java编译时文件是什么,JAVA编译出