習HTML時有時候我們需要用代碼設置邊框或虛線邊框的樣式,那該怎么設置呢?下面上海非凡進修學院HTML5開發培訓機構大咖分享下html虛線邊框設置教程,會對幾個不同標簽加虛線邊框效果樣式,同學們可以根據示例靈活掌握與應用到自己DIV+CSS布局中。
為了對html不同標簽加邊框虛線,我們選擇幾個常用標簽對齊設置邊框虛線效果。
1、html常用標簽
div標簽
span
ul li
table tr td
2、實例用到CSS屬性單詞
border
width
height
3、實現虛線的CSS重點介紹
border為邊框屬性,如果要實現對象邊框效果,要設置邊框寬度、邊框顏色、邊框樣式(實線還是虛線)
border:1px dashed #F00 這個就是設置邊框樣式寬度為1px,虛線,虛線為紅色。
4、實例描述
我們對以上幾個標簽設置相同寬度、相同高度、邊框效果。
5、HTML代碼示例:
以上示例對html中不同標簽設置相同的樣式,包括相同邊框虛線。
上海HTML5開發培訓機構大咖提示邊框三個樣式
通常我們可以對邊框設置寬度(厚度)、邊框樣式、邊框顏色這三個屬性與參數。
1)、邊框顏色:border-color:#000
2)、邊框厚度(寬度):border-width:1px
使用數字+單位設置邊框厚度寬度,如1px(邊框厚度寬度為1像素),邊框必須為正數字,大于0的數值。否則設置邊框border樣式無效。
3)、border邊框樣式:border-style:solid
上海HTML5開發培訓機構大咖提示:邊框border樣式值如下:
none :無邊框。與任何指定的border-width值無關
hidden : 隱藏邊框。IE不支持
dotted : 在MAC平臺上IE4+與WINDOWS和UNIX平臺上IE5.5+為點線。否則為實線(常用)
dashed : 在MAC平臺上IE4+與WINDOWS和UNIX平臺上IE5.5+為虛線。否則為實線(常用)
solid :實線邊框(常用)
double : 雙線邊框。兩條單線與其間隔的和等于指定的border-width值
groove : 根據border-color的值畫3D凹槽
ridge :根據border-color的值畫菱形邊框
inset : 根據border-color的值畫3D凹邊
outset : 根據border-color的值畫3D凸邊
前做過很多特殊的布局,比如在這兩篇文章 CSS 實現優惠券的技巧 (juejin.cn)[1]、CSS 實現支持漸變的提示框(tooltips) (juejin.cn)[2],如下
但是一直有一個痛點就是:無法給這些圖形加上邊框
今天帶來一個小技巧:利用 drop-shadow 一行代碼搞定所有不規則邊框
這里需要利用投影 drop-shadow, 不太了解的可以參考 這篇文章: 被低估的CSS濾鏡:drop-shadow[3],這里簡單介紹一下
語法其實很簡單
filter: drop-shadow(offset-x offset-y blur-radius color)
并不是一個單獨的屬性,而是 filter 濾鏡下的一個方法
這里 offset-x、offset-y為偏移量,blur-radius為模糊半徑,color為投影顏色。實際作用就是可以模擬真實世界的投影(透明的部分不會投影),區別如下
可惜的是,雖然和 box-shadow 比較類似,但是少了擴展半徑。試想一下,如果支持了擴展半徑,那不規則邊框是不是很容易了(應該不會支持了,因為真實世界的投影也沒有擴展半徑)?
那么,drop-shadow如何生成邊框呢?
box-shadow 可以很輕易的實現多重陰影
box-shadow: 0 0 3px #333, 1px 1px 5px #666, ...
可以無限疊加下去。
但是,drop-shadow可就不行了,比如
filter: drop-shadow(0 0 3px #333, 1px 1px 5px #666, ...)
可以看到瀏覽器直接認為非法了
不過可以換一種思路,雖然 drop-shadow不支持,但是filter支持多種濾鏡,所以可以這樣來實現
filter: drop-shadow(0 0 3px #333) drop-shadow(0 0 3px #333) drop-shadow(0 0 3px #333)...
這樣就可以生效了
是不是有點像邊框了?如果只設置 0.5px 的模糊,多疊加幾次,模糊的部分會變清晰,這個就有點像一個比較軟的筆觸,多畫幾筆就變清晰了,于是可以得到這樣的效果
這樣就更加接近了,實踐下來,可能需要微調,這里給出一個比較完美的方案(重點來了~)
.wrap{
filter: drop-shadow(0px 0px 0.5px #333) drop-shadow(0px 0px 0px #333) drop-shadow(0px 0px 0px #333) drop-shadow(0px 0px 0px #333) drop-shadow(0px 0px 0px #333)
}
這樣實現的邊框已經足夠清晰,基本可以日常使用了
這段代碼中顏色比較多,可以優化一下,投影的顏色默認是跟隨當前文字顏色的,所以可以簡化為
.wrap{
filter: drop-shadow(0 0 0.5px)drop-shadow(0 0 0)drop-shadow(0 0 0)drop-shadow(0 0 0)drop-shadow(0 0 0);
color: #333;
}
線上示例可訪問 coupon-border[4],還有這個 tooltips-border[5]
使用方式簡單,在容器的最外層加上這一行 CSS 就行了,比如之前的優惠券例子,得到的邊框效果這樣的
還有這樣的
邊框還算不錯,幾乎看不出投影
不過這里需要注意的是,經過 mask 裁剪的圖形需要在外層嵌套一層父級,不然投影會被 mask 直接裁剪掉
<div class="wrap">
<div class="coupon">
<!--優惠券-->
</div>
</div>
另外,這個方案進適合比較小的邊框,如果較大的邊框,可能會比較圓滑,而且需要疊加更多的濾鏡,效果也不太好,如下
這些就需要自行取舍了(一般情況下不會有太粗的邊框)
本文介紹了一個實現不規則邊框的通用方案,成本非常低,效果也非常不錯,這里總結一下:
1.drop-shadow只會對不透明部分生成投影,符合真實物理世界2.drop-shadow不支持多重投影,filter支持多重濾鏡,可以間接實現多重投影3.邊框的實現原理是投影的多重疊加4.有些通過mask裁剪生成的圖形,需要在外包裹一層容器,再生成邊框5.適合比較小的邊框,過大的邊框不太理想6.濾鏡其實是一個比較耗費性能的屬性,不適合太范圍使用
可能大部分同學最后可能還是會選擇 “切圖.png”,不過這也算是一個解決方案 ,多一種方案總是沒錯的。最后,如果覺得還不錯,對你有幫助的話,歡迎點贊、收藏、轉發???
[1] CSS 實現優惠券的技巧 (juejin.cn): https://juejin.cn/post/6945023989555134494
[2] CSS 實現支持漸變的提示框(tooltips) (juejin.cn): https://juejin.cn/post/6971261516284690468
[3] 這篇文章: 被低估的CSS濾鏡:drop-shadow: https://zhuanlan.zhihu.com/p/195792157
[4] coupon-border: https://codepen.io/xboxyan/pen/jOmeoPd
[5] tooltips-border: https://codepen.io/xboxyan/pen/wvdQgXK
*請認真填寫需求信息,我們會在24小時內與您取得聯系。