日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

CSS Border 使用小分享

 

原理

css 盒模型

CSS Border 使用小分享

 

一個盒子包括:margin+border+padding+content

上下左右邊框交界處出呈現平滑的斜線。 利用這個特點, 通過設置不同的上下左右邊框寬度或者顏色可以得到小三角, 小梯形等。

調整寬度大小可以調節三角形形狀。

示例 1

一般情況下, 我們設置盒子的寬高度, 及上下左右邊框, 會呈現如下圖:

CSS Border 使用小分享

 

#test2 {
 height: 0;
 width: 0;
 overflow: hidden; /* 這里設置overflow, font-size, line-height */
 font-size: 0; /*是因為, 雖然寬高度為0, 但在IE6下會具有默認的 */
 line-height: 0; /* 字體大小和行高, 導致盒子呈現被撐開的長矩形 */
 border-color: #FF9600 #3366ff # 12 ad2a# f0eb7a;
 border-style: solid;
 border-width: 20 px;
}

示例 2

在上面基礎上, 我們把寬高度都設為 0 時,會呈現上述的邊界斜線。

CSS Border 使用小分享

 

#test2 {
 height: 0;
 width: 0;
 overflow: hidden; /* 這里設置overflow, font-size, line-height */
 font-size: 0; /*是因為, 雖然寬高度為 0, 但在 IE 6 下會具有默認的 */
 line-height: 0; /* 字體大小和行高, 導致盒子呈現被撐開的長矩形 */
 border-color: #FF9600 #3366ff # 12 ad2a# f0eb7a;
 border-style: solid;
 border-width: 20 px;
}

這時, 其實我們已經看到有上下左右四個三角形了…… 如果,我們把 4 種顏色,只保留一種顏色,余下 3 種顏色設置為透明(或者設置為和背景色相同的顏色),那不就出現一個小三角了么?

示例 3

只保留上面的橙色,看看

CSS Border 使用小分享

 

#test3 {
 height:0;
 width:0;
 overflow: hidden;
 font-size: 0;
 line-height: 0;
 border-color:#FF9600 transparent transparent transparent;
 border-style:solid;
 border-width:20px;
}

可是,IE 6 下不支持透明啊~,會出現下圖的樣子

CSS Border 使用小分享

 

找到一個在 IE 6 下邊框透明的文章中找到解決辦法,如下例

示例 4

IE 6 下, 設置余下三條邊的 border-style 為 dashed,即可達到透明的效果~ 具體原因可以見參考資料 3

CSS Border 使用小分享

 

#test3 {
 height:0;
 width:0;
 overflow: hidden;
 font-size: 0;
 line-height: 0;
 border-color:#FF9600 transparent transparent transparent;
 border-style:solid;
 border-width:20px;
}

當然,在 IE 6 下,不設置透明, 將其顏色設置為背景色,使其看不出來也是可以的。

示例 5

上面我們畫的小三角的斜邊都是依靠原來盒子的邊,還有另外一種形式的小三角, 就是斜邊在盒子的對角線上

CSS Border 使用小分享

 

#test5 {
 height: 0;
 width: 0;
 overflow: hidden;
 font-size: 0;
 line-height: 0;
 border-color: #ff9600 #3366ff transparent transparent;
 border-style: solid solid dashed dashed;
 border-width: 40px 40px 0 0; 
}

保留其中一種顏色,就可以得到斜邊在對角線上的三角形了…… 多個這樣的三角形,通過設置邊框大小,顏色,拼湊起來可以形成任意形狀的三角形。

CSS Border 使用小分享

 

像這種不規則的三角形,延伸一下,放在氣泡框上,就可以省去拼背景圖片的麻煩了。

CSS Border 使用小分享

 

另外,關于氣泡框,可以使用棱形字符(◆)來實現,設置其 font-size,顏色和背景色一致,定位可以使用 margin 負值和 absolute 絕對定位來實現。

應用之圓角生成

應該說是近似圓角,其實由一個高度非常小的梯形展示出來

上梯形(無上邊框,下左右 3px 寬度, 左右顏色去掉)+ 矩形 + 下梯形

CSS Border 使用小分享

 

 

自適應圓角 1:

整個 rc 設置為 float: left 或 display: inline-block 分為top,bd,bottom, top 中又有兩個層 rc1 和 rc2,rc1 只設置 border-top,高度為 0,并設置左右 margin 呈短小的一橫線,rc2 只設置左右 border 并且左右 margin 小于 rc1,height 為 1px,中間 bd 設置左右 border,不設置左右 margin。

不過 IE 6/7 出現 bug:rc 在 IE 6 中依然顯示為 dispaly: block,而 IE 7 中 top 和 bottom 縮成一坨,不肯擴展開來,而在 rc1/rc2/rc3 中插入文字 xxx 后只能擴展到文字寬度,不能與 bd 對齊。

自適應圓角 2:

自 google 系產品的 1px 圓角按鈕,三層 div, 最外層 div1 正常設置邊框寬度 1px, 呈現出上下邊框線,中間 div2 只設置左右邊框,且把左右 margin 設置成負值,呈現出圓角處的 4 個圓點 內層 div3 同樣只設置左右邊框,同時 margin 上下空出 div2 的高度,margin 左右也設置與 div2 相同的負值。

其他小問題

  • 透明:

IE 6 瀏覽器不支持 transparent 透明屬性,就 border 生成三角技術而言,直接設置對應的透明邊框的 border-style 屬性為 dotted 或是 dashed 即可解決這一問題,原因是在 IE 6 下,點線與虛線均以邊框寬度為基準,點線長度必須是其寬度的 3 倍以上(height >= border-width * 3),虛線寬長度必須是其寬度的 5 倍以上(height >= border-width * 5),否則點線和虛線都不會出現。

  • IE 6 的奇偶 bug:

如果定位外框高度或是寬度為奇數,則 IE 6 下,絕對定位元素的低定位和右定位會有1像素的誤差。所以,盡量保證外框的高度或寬度為偶數值。

  • IE 6 的空 div 高度 bug:

IE 6 下,空 div 會有莫名的高度,也就是說 height: 0 不頂用,此時形成的尖角的實際占高于其他瀏覽器是有差異的。可使用 font-size: 0 + overflow: hidden 修復此問題。

  • filter: chroma 濾鏡

該屬性屬性可以設置一個對象中指定的顏色為透明色,如:

border-color: pink;
filter: chroma(color=pink);

希望本文能幫助到您!

點贊+轉發,讓更多的人也能看到這篇內容(收藏不點贊,都是耍流氓-_-)

關注 {我},享受文章首發體驗!

每周重點攻克一個前端技術難點。更多精彩前端內容私信 我 回復“教程”

原文鏈接:https://fed.taobao.org/blog/2010/08/05/css-border-hack/

作者:admin

分享到:
標簽:CSS Border
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定