用纯CSS实现的箭头
用CSS即可绘制出各种箭头,无需裁剪图片,甚至没有用到CSS3的东西。对浏览器支持良好。
基本原理
原理非常简单,通过截取border(边框)的部分"拐角"实现,几行CSS代码即可理解:
一个梯形
当元素宽、高和边框的宽相近(等)时,改变某一边的颜色可以看到一个梯形;
::: {#demo11} :::
:::: {#highlighter_625101 .syntaxhighlighter .xml} ::: toolbar :::
+-------------------------------------+-----------------------------------------+
| ::: {.line .number1 .index0 .alt2} | ::::::::::::: container |
| 1 | ::: {.line .number1 .index0 .alt2} |
| ::: | <{.xml .plain}div{.xml |
| | .keyword} id{.xml .color1}={.xml |
| ::: {.line .number2 .index1 .alt1} | .plain}"demo11"{.xml |
| 2 | .string}></{.xml .plain}div{.xml |
| ::: | .keyword}>{.xml .plain} |
| | ::: |
| ::: {.line .number3 .index2 .alt2} | |
| 3 | ::: {.line .number2 .index1 .alt1} |
| ::: | |
| | ::: |
| ::: {.line .number4 .index3 .alt1} | |
| 4 | ::: {.line .number3 .index2 .alt2} |
| ::: | <{.xml .plain}style{.xml |
| | .keyword}>{.xml .plain} |
| ::: {.line .number5 .index4 .alt2} | ::: |
| 5 | |
| ::: | ::: {.line .number4 .index3 .alt1} |
| | #demo11 {{.xml .plain} |
| ::: {.line .number6 .index5 .alt1} | ::: |
| 6 | |
| ::: | ::: {.line .number5 .index4 .alt2} |
| | {.xml |
| ::: {.line .number7 .index6 .alt2} | .spaces}border: 10px solid #000;{.xml |
| 7 | .plain} |
| ::: | ::: |
| | |
| ::: {.line .number8 .index7 .alt1} | ::: {.line .number6 .index5 .alt1} |
| 8 | {.xml |
| ::: | .spaces}border-left-color: #f00;{.xml |
| | .plain} |
| ::: {.line .number9 .index8 .alt2} | ::: |
| 9 | |
| ::: | ::: {.line .number7 .index6 .alt2} |
| | {.xml .spaces}width: 10px;{.xml |
| ::: {.line .number10 .index9 .alt1} | .plain} |
| 10 | ::: |
| ::: | |
| | ::: {.line .number8 .index7 .alt1} |
| | {.xml .spaces}height: 10px;{.xml |
| | .plain} |
| | ::: |
| | |
| | ::: {.line .number9 .index8 .alt2} |
| | }{.xml .plain} |
| | ::: |
| | |
| | ::: {.line .number10 .index9 .alt1} |
| | </{.xml .plain}style{.xml |
| | .keyword}>{.xml .plain} |
| | ::: |
| | ::::::::::::: |
+-------------------------------------+-----------------------------------------+
::::
一个三角形
当元素宽、高为零,且其他边为透明颜色时,可以形一个三角形。
::: {#demo13} :::
:::: {#highlighter_215812 .syntaxhighlighter .xml} ::: toolbar :::
+-------------------------------------+-----------------------------------------+
| ::: {.line .number1 .index0 .alt2} | ::::::::::::: container |
| 1 | ::: {.line .number1 .index0 .alt2} |
| ::: | <{.xml .plain}div{.xml |
| | .keyword} id{.xml .color1}={.xml |
| ::: {.line .number2 .index1 .alt1} | .plain}"demo12"{.xml |
| 2 | .string}></{.xml .plain}div{.xml |
| ::: | .keyword}>{.xml .plain} |
| | ::: |
| ::: {.line .number3 .index2 .alt2} | |
| 3 | ::: {.line .number2 .index1 .alt1} |
| ::: | |
| | ::: |
| ::: {.line .number4 .index3 .alt1} | |
| 4 | ::: {.line .number3 .index2 .alt2} |
| ::: | <{.xml .plain}style{.xml |
| | .keyword}>{.xml .plain} |
| ::: {.line .number5 .index4 .alt2} | ::: |
| 5 | |
| ::: | ::: {.line .number4 .index3 .alt1} |
| | #demo12 {{.xml .plain} |
| ::: {.line .number6 .index5 .alt1} | ::: |
| 6 | |
| ::: | ::: {.line .number5 .index4 .alt2} |
| | {.xml |
| ::: {.line .number7 .index6 .alt2} | .spaces}border: 10px solid #000;{.xml |
| 7 | .plain} |
| ::: | ::: |
| | |
| ::: {.line .number8 .index7 .alt1} | ::: {.line .number6 .index5 .alt1} |
| 8 | {.xml |
| ::: | .spaces}border-left-color: #f00;{.xml |
| | .plain} |
| ::: {.line .number9 .index8 .alt2} | ::: |
| 9 | |
| ::: | ::: {.line .number7 .index6 .alt2} |
| | {.xml .spaces}width: 0;{.xml |
| ::: {.line .number10 .index9 .alt1} | .plain} |
| 10 | ::: |
| ::: | |
| | ::: {.line .number8 .index7 .alt1} |
| | {.xml .spaces}height: 0;{.xml |
| | .plain} |
| | ::: |
| | |
| | ::: {.line .number9 .index8 .alt2} |
| | }{.xml .plain} |
| | ::: |
| | |
| | ::: {.line .number10 .index9 .alt1} |
| | </{.xml .plain}style{.xml |
| | .keyword}>{.xml .plain} |
| | ::: |
| | ::::::::::::: |
+-------------------------------------+-----------------------------------------+
::::
任意角度的三角形
改变各个边的宽度,即通过调整"边框"厚度可以配置出任意角度
::: {#demo14} :::
:::: {#highlighter_510328 .syntaxhighlighter .xml} ::: toolbar :::
+-------------------------------------+------------------------------------------------+
| ::: {.line .number1 .index0 .alt2} | ::::::::::::: container |
| 1 | ::: {.line .number1 .index0 .alt2} |
| ::: | <{.xml .plain}div{.xml .keyword} id{.xml |
| | .color1}={.xml .plain}"demo14"{.xml |
| ::: {.line .number2 .index1 .alt1} | .string}></{.xml .plain}div{.xml |
| 2 | .keyword}>{.xml .plain} |
| ::: | ::: |
| | |
| ::: {.line .number3 .index2 .alt2} | ::: {.line .number2 .index1 .alt1} |
| 3 | |
| ::: | ::: |
| | |
| ::: {.line .number4 .index3 .alt1} | ::: {.line .number3 .index2 .alt2} |
| 4 | <{.xml .plain}style{.xml .keyword}>{.xml |
| ::: | .plain} |
| | ::: |
| ::: {.line .number5 .index4 .alt2} | |
| 5 | ::: {.line .number4 .index3 .alt1} |
| ::: | #demo14 {{.xml .plain} |
| | ::: |
| ::: {.line .number6 .index5 .alt1} | |
| 6 | ::: {.line .number5 .index4 .alt2} |
| ::: | {.xml |
| | .spaces}border: 10px solid transparent;{.xml |
| ::: {.line .number7 .index6 .alt2} | .plain} |
| 7 | ::: |
| ::: | |
| | ::: {.line .number6 .index5 .alt1} |
| ::: {.line .number8 .index7 .alt1} | {.xml |
| 8 | .spaces}border-left: 20px solid #f00;{.xml |
| ::: | .plain} |
| | ::: |
| ::: {.line .number9 .index8 .alt2} | |
| 9 | ::: {.line .number7 .index6 .alt2} |
| ::: | {.xml .spaces}width: 0;{.xml .plain} |
| | ::: |
| ::: {.line .number10 .index9 .alt1} | |
| 10 | ::: {.line .number8 .index7 .alt1} |
| ::: | {.xml .spaces}height: 0px;{.xml .plain} |
| | ::: |
| | |
| | ::: {.line .number9 .index8 .alt2} |
| | }{.xml .plain} |
| | ::: |
| | |
| | ::: {.line .number10 .index9 .alt1} |
| | </{.xml .plain}style{.xml |
| | .keyword}>{.xml .plain} |
| | ::: |
| | ::::::::::::: |
+-------------------------------------+------------------------------------------------+
::::
通过伪元素实现
三角形可以通过伪元素绘制出,而无需改变原来的DOM结构
[文字内容]{#demo15}
:::: {#highlighter_614833 .syntaxhighlighter .xml} ::: toolbar :::
+--------------------------------------+------------------------------------------------+
| ::: {.line .number1 .index0 .alt2} | :::::::::::::::::: container |
| 1 | ::: {.line .number1 .index0 .alt2} |
| ::: | <{.xml .plain}span{.xml |
| | .keyword} id{.xml .color1}={.xml |
| ::: {.line .number2 .index1 .alt1} | .plain}"demo15"{.xml |
| 2 | .string}>文字内容</{.xml .plain}span{.xml |
| ::: | .keyword}>{.xml .plain} |
| | ::: |
| ::: {.line .number3 .index2 .alt2} | |
| 3 | ::: {.line .number2 .index1 .alt1} |
| ::: | |
| | ::: |
| ::: {.line .number4 .index3 .alt1} | |
| 4 | ::: {.line .number3 .index2 .alt2} |
| ::: | <{.xml .plain}style{.xml .keyword}>{.xml |
| | .plain} |
| ::: {.line .number5 .index4 .alt2} | ::: |
| 5 | |
| ::: | ::: {.line .number4 .index3 .alt1} |
| | #demo15{{.xml .plain} |
| ::: {.line .number6 .index5 .alt1} | ::: |
| 6 | |
| ::: | ::: {.line .number5 .index4 .alt2} |
| | {.xml .spaces}position: relative;{.xml |
| ::: {.line .number7 .index6 .alt2} | .plain} |
| 7 | ::: |
| ::: | |
| | ::: {.line .number6 .index5 .alt1} |
| ::: {.line .number8 .index7 .alt1} | }{.xml .plain} |
| 8 | ::: |
| ::: | |
| | ::: {.line .number7 .index6 .alt2} |
| ::: {.line .number9 .index8 .alt2} | #demo15:after {{.xml .plain} |
| 9 | ::: |
| ::: | |
| | ::: {.line .number8 .index7 .alt1} |
| ::: {.line .number10 .index9 .alt1} | {.xml |
| 10 | .spaces}border: 10px solid transparent;{.xml |
| ::: | .plain} |
| | ::: |
| ::: {.line .number11 .index10 .alt2} | |
| 11 | ::: {.line .number9 .index8 .alt2} |
| ::: | {.xml |
| | .spaces}border-left: 10px solid #f00;{.xml |
| ::: {.line .number12 .index11 .alt1} | .plain} |
| 12 | ::: |
| ::: | |
| | ::: {.line .number10 .index9 .alt1} |
| ::: {.line .number13 .index12 .alt2} | {.xml .spaces}width: 0;{.xml .plain} |
| 13 | ::: |
| ::: | |
| | ::: {.line .number11 .index10 .alt2} |
| ::: {.line .number14 .index13 .alt1} | {.xml .spaces}height: 0;{.xml .plain} |
| 14 | ::: |
| ::: | |
| | ::: {.line .number12 .index11 .alt1} |
| ::: {.line .number15 .index14 .alt2} | {.xml .spaces}position: absolute;{.xml |
| 15 | .plain} |
| ::: | ::: |
| | |
| | ::: {.line .number13 .index12 .alt2} |
| | {.xml .spaces}content: ' '{.xml .plain} |
| | ::: |
| | |
| | ::: {.line .number14 .index13 .alt1} |
| | }{.xml .plain} |
| | ::: |
| | |
| | ::: {.line .number15 .index14 .alt2} |
| | </{.xml .plain}style{.xml |
| | .keyword}>{.xml .plain} |
| | ::: |
| | :::::::::::::::::: |
+--------------------------------------+------------------------------------------------+
::::
伪元素实现三角线箭头
通过伪元素绘制出的两个,一个与背景色相同覆盖部分红色箭头,形成三角线
[文字内容]{#demo16}
:::: {#highlighter_803848 .syntaxhighlighter .xml} ::: toolbar :::
+--------------------------------------+------------------------------------------------+
| ::: {.line .number1 .index0 .alt2} | ::::::::::::::::::::::::: container |
| 1 | ::: {.line .number1 .index0 .alt2} |
| ::: | <{.xml .plain}span{.xml |
| | .keyword} id{.xml .color1}={.xml |
| ::: {.line .number2 .index1 .alt1} | .plain}"demo15"{.xml |
| 2 | .string}>文字内容</{.xml .plain}span{.xml |
| ::: | .keyword}>{.xml .plain} |
| | ::: |
| ::: {.line .number3 .index2 .alt2} | |
| 3 | ::: {.line .number2 .index1 .alt1} |
| ::: | |
| | ::: |
| ::: {.line .number4 .index3 .alt1} | |
| 4 | ::: {.line .number3 .index2 .alt2} |
| ::: | <{.xml .plain}style{.xml .keyword}>{.xml |
| | .plain} |
| ::: {.line .number5 .index4 .alt2} | ::: |
| 5 | |
| ::: | ::: {.line .number4 .index3 .alt1} |
| | #demo16{{.xml .plain} |
| ::: {.line .number6 .index5 .alt1} | ::: |
| 6 | |
| ::: | ::: {.line .number5 .index4 .alt2} |
| | {.xml .spaces}position: relative;{.xml |
| ::: {.line .number7 .index6 .alt2} | .plain} |
| 7 | ::: |
| ::: | |
| | ::: {.line .number6 .index5 .alt1} |
| ::: {.line .number8 .index7 .alt1} | }{.xml .plain} |
| 8 | ::: |
| ::: | |
| | ::: {.line .number7 .index6 .alt2} |
| ::: {.line .number9 .index8 .alt2} | #demo16:after, #demo16:before {{.xml .plain} |
| 9 | ::: |
| ::: | |
| | ::: {.line .number8 .index7 .alt1} |
| ::: {.line .number10 .index9 .alt1} | {.xml |
| 10 | .spaces}border: 10px solid transparent;{.xml |
| ::: | .plain} |
| | ::: |
| ::: {.line .number11 .index10 .alt2} | |
| 11 | ::: {.line .number9 .index8 .alt2} |
| ::: | {.xml |
| | .spaces}border-left: 10px solid #fff;{.xml |
| ::: {.line .number12 .index11 .alt1} | .plain} |
| 12 | ::: |
| ::: | |
| | ::: {.line .number10 .index9 .alt1} |
| ::: {.line .number13 .index12 .alt2} | {.xml .spaces}width: 0;{.xml .plain} |
| 13 | ::: |
| ::: | |
| | ::: {.line .number11 .index10 .alt2} |
| ::: {.line .number14 .index13 .alt1} | {.xml .spaces}height: 0;{.xml .plain} |
| 14 | ::: |
| ::: | |
| | ::: {.line .number12 .index11 .alt1} |
| ::: {.line .number15 .index14 .alt2} | {.xml .spaces}position: absolute;{.xml |
| 15 | .plain} |
| ::: | ::: |
| | |
| ::: {.line .number16 .index15 .alt1} | ::: {.line .number13 .index12 .alt2} |
| 16 | {.xml .spaces}top: 0;{.xml .plain} |
| ::: | ::: |
| | |
| ::: {.line .number17 .index16 .alt2} | ::: {.line .number14 .index13 .alt1} |
| 17 | {.xml .spaces}right: -20px;{.xml .plain} |
| ::: | ::: |
| | |
| ::: {.line .number18 .index17 .alt1} | ::: {.line .number15 .index14 .alt2} |
| 18 | {.xml .spaces}content: ' '{.xml .plain} |
| ::: | ::: |
| | |
| ::: {.line .number19 .index18 .alt2} | ::: {.line .number16 .index15 .alt1} |
| 19 | }{.xml .plain} |
| ::: | ::: |
| | |
| ::: {.line .number20 .index19 .alt1} | ::: {.line .number17 .index16 .alt2} |
| 20 | |
| ::: | ::: |
| | |
| ::: {.line .number21 .index20 .alt2} | ::: {.line .number18 .index17 .alt1} |
| 21 | #demo16:before {{.xml .plain} |
| ::: | ::: |
| | |
| ::: {.line .number22 .index21 .alt1} | ::: {.line .number19 .index18 .alt2} |
| 22 | {.xml |
| ::: | .spaces}border-left-color: #f00;{.xml |
| | .plain} |
| | ::: |
| | |
| | ::: {.line .number20 .index19 .alt1} |
| | {.xml .spaces}right: -21px;{.xml .plain} |
| | ::: |
| | |
| | ::: {.line .number21 .index20 .alt2} |
| | }{.xml .plain} |
| | ::: |
| | |
| | ::: {.line .number22 .index21 .alt1} |
| | </{.xml .plain}style{.xml |
| | .keyword}>{.xml .plain} |
| | ::: |
| | ::::::::::::::::::::::::: |
+--------------------------------------+------------------------------------------------+
::::
三角线分割的Tab页
- 文字内容 Tab1
- 文字内容 Tab2
- 文字内容 Tab3
:::: {#highlighter_792288 .syntaxhighlighter .xml} ::: toolbar :::
+--------------------------------------+-----------------------------------------------------+
| ::: {.line .number1 .index0 .alt2} | ::::::::::::::::::::::::::::::::::::::::: container |
| 1 | ::: {.line .number1 .index0 .alt2} |
| ::: | <{.xml .plain}ul{.xml .keyword} id{.xml |
| | .color1}={.xml .plain}"demo17"{.xml |
| ::: {.line .number2 .index1 .alt1} | .string}>{.xml .plain} |
| 2 | ::: |
| ::: | |
| | ::: {.line .number2 .index1 .alt1} |
| ::: {.line .number3 .index2 .alt2} | {.xml .spaces}<{.xml .plain}li{.xml |
| 3 | .keyword}>文字内容 Tab1</{.xml .plain}li{.xml |
| ::: | .keyword}>{.xml .plain} |
| | ::: |
| ::: {.line .number4 .index3 .alt1} | |
| 4 | ::: {.line .number3 .index2 .alt2} |
| ::: | {.xml .spaces}<{.xml .plain}li{.xml |
| | .keyword}>文字内容 Tab2</{.xml .plain}li{.xml |
| ::: {.line .number5 .index4 .alt2} | .keyword}>{.xml .plain} |
| 5 | ::: |
| ::: | |
| | ::: {.line .number4 .index3 .alt1} |
| ::: {.line .number6 .index5 .alt1} | {.xml .spaces}<{.xml .plain}li{.xml |
| 6 | .keyword}>文字内容 Tab3</{.xml .plain}li{.xml |
| ::: | .keyword}>{.xml .plain} |
| | ::: |
| ::: {.line .number7 .index6 .alt2} | |
| 7 | ::: {.line .number5 .index4 .alt2} |
| ::: | </{.xml .plain}ul{.xml .keyword}>{.xml |
| | .plain} |
| ::: {.line .number8 .index7 .alt1} | ::: |
| 8 | |
| ::: | ::: {.line .number6 .index5 .alt1} |
| | |
| ::: {.line .number9 .index8 .alt2} | ::: |
| 9 | |
| ::: | ::: {.line .number7 .index6 .alt2} |
| | <{.xml .plain}style{.xml .keyword}>{.xml |
| ::: {.line .number10 .index9 .alt1} | .plain} |
| 10 | ::: |
| ::: | |
| | ::: {.line .number8 .index7 .alt1} |
| ::: {.line .number11 .index10 .alt2} | #demo17{{.xml .plain} |
| 11 | ::: |
| ::: | |
| | ::: {.line .number9 .index8 .alt2} |
| ::: {.line .number12 .index11 .alt1} | {.xml .spaces}font-size: 10px;{.xml .plain} |
| 12 | ::: |
| ::: | |
| | ::: {.line .number10 .index9 .alt1} |
| ::: {.line .number13 .index12 .alt2} | {.xml .spaces}height: 24px;{.xml .plain} |
| 13 | ::: |
| ::: | |
| | ::: {.line .number11 .index10 .alt2} |
| ::: {.line .number14 .index13 .alt1} | }{.xml .plain} |
| 14 | ::: |
| ::: | |
| | ::: {.line .number12 .index11 .alt1} |
| ::: {.line .number15 .index14 .alt2} | |
| 15 | ::: |
| ::: | |
| | ::: {.line .number13 .index12 .alt2} |
| ::: {.line .number16 .index15 .alt1} | #demo17 li {{.xml .plain} |
| 16 | ::: |
| ::: | |
| | ::: {.line .number14 .index13 .alt1} |
| ::: {.line .number17 .index16 .alt2} | {.xml .spaces}float: left;{.xml .plain} |
| 17 | ::: |
| ::: | |
| | ::: {.line .number15 .index14 .alt2} |
| ::: {.line .number18 .index17 .alt1} | {.xml .spaces}position: relative;{.xml |
| 18 | .plain} |
| ::: | ::: |
| | |
| ::: {.line .number19 .index18 .alt2} | ::: {.line .number16 .index15 .alt1} |
| 19 | {.xml .spaces}list-style: none;{.xml .plain} |
| ::: | ::: |
| | |
| ::: {.line .number20 .index19 .alt1} | ::: {.line .number17 .index16 .alt2} |
| 20 | {.xml .spaces}margin: 0 20px 12px -19px;{.xml |
| ::: | .plain} |
| | ::: |
| ::: {.line .number21 .index20 .alt2} | |
| 21 | ::: {.line .number18 .index17 .alt1} |
| ::: | {.xml |
| | .spaces}border-top: solid 1px #ddd;{.xml .plain} |
| ::: {.line .number22 .index21 .alt1} | ::: |
| 22 | |
| ::: | ::: {.line .number19 .index18 .alt2} |
| | {.xml |
| ::: {.line .number23 .index22 .alt2} | .spaces}border-bottom: solid 1px #ddd;{.xml |
| 23 | .plain} |
| ::: | ::: |
| | |
| ::: {.line .number24 .index23 .alt1} | ::: {.line .number20 .index19 .alt1} |
| 24 | {.xml .spaces}padding-left: 12px;{.xml |
| ::: | .plain} |
| | ::: |
| ::: {.line .number25 .index24 .alt2} | |
| 25 | ::: {.line .number21 .index20 .alt2} |
| ::: | }{.xml .plain} |
| | ::: |
| ::: {.line .number26 .index25 .alt1} | |
| 26 | ::: {.line .number22 .index21 .alt1} |
| ::: | |
| | ::: |
| ::: {.line .number27 .index26 .alt2} | |
| 27 | ::: {.line .number23 .index22 .alt2} |
| ::: | #demo17 li:after, #demo17 li:before {{.xml |
| | .plain} |
| ::: {.line .number28 .index27 .alt1} | ::: |
| 28 | |
| ::: | ::: {.line .number24 .index23 .alt1} |
| | {.xml |
| ::: {.line .number29 .index28 .alt2} | .spaces}border: 10px solid transparent;{.xml |
| 29 | .plain} |
| ::: | ::: |
| | |
| ::: {.line .number30 .index29 .alt1} | ::: {.line .number25 .index24 .alt2} |
| 30 | {.xml |
| ::: | .spaces}border-left: 10px solid #fff;{.xml |
| | .plain} |
| ::: {.line .number31 .index30 .alt2} | ::: |
| 31 | |
| ::: | ::: {.line .number26 .index25 .alt1} |
| | {.xml .spaces}width: 0;{.xml .plain} |
| ::: {.line .number32 .index31 .alt1} | ::: |
| 32 | |
| ::: | ::: {.line .number27 .index26 .alt2} |
| | {.xml .spaces}height: 0;{.xml .plain} |
| ::: {.line .number33 .index32 .alt2} | ::: |
| 33 | |
| ::: | ::: {.line .number28 .index27 .alt1} |
| | {.xml .spaces}position: absolute;{.xml |
| ::: {.line .number34 .index33 .alt1} | .plain} |
| 34 | ::: |
| ::: | |
| | ::: {.line .number29 .index28 .alt2} |
| ::: {.line .number35 .index34 .alt2} | {.xml .spaces}top: 0;{.xml .plain} |
| 35 | ::: |
| ::: | |
| | ::: {.line .number30 .index29 .alt1} |
| ::: {.line .number36 .index35 .alt1} | {.xml .spaces}right: -18px;{.xml .plain} |
| 36 | ::: |
| ::: | |
| | ::: {.line .number31 .index30 .alt2} |
| ::: {.line .number37 .index36 .alt2} | {.xml .spaces}content: ' '{.xml .plain} |
| 37 | ::: |
| ::: | |
| | ::: {.line .number32 .index31 .alt1} |
| ::: {.line .number38 .index37 .alt1} | }{.xml .plain} |
| 38 | ::: |
| ::: | |
| | ::: {.line .number33 .index32 .alt2} |
| | |
| | ::: |
| | |
| | ::: {.line .number34 .index33 .alt1} |
| | #demo17 li:before {{.xml .plain} |
| | ::: |
| | |
| | ::: {.line .number35 .index34 .alt2} |
| | {.xml .spaces}border-left-color: #ddd;{.xml |
| | .plain} |
| | ::: |
| | |
| | ::: {.line .number36 .index35 .alt1} |
| | {.xml .spaces}right: -19px;{.xml .plain} |
| | ::: |
| | |
| | ::: {.line .number37 .index36 .alt2} |
| | }{.xml .plain} |
| | ::: |
| | |
| | ::: {.line .number38 .index37 .alt1} |
| | </{.xml .plain}style{.xml .keyword}>{.xml |
| | .plain} |
| | ::: |
| | ::::::::::::::::::::::::::::::::::::::::: |
+--------------------------------------+-----------------------------------------------------+
::::
三角形跟矩形组合成提示框
这里还有另一种效果,使用三角形跟矩形组合成提示框,代码来自这篇文章:[ ]{.Apple-converted-space}Css arrows and shapes without markup{target="_blank"}
::: {#demo} :::
\
:::: {#highlighter_357092 .syntaxhighlighter .xml} ::: toolbar :::
+--------------------------------------+-----------------------------------------------+
| ::: {.line .number1 .index0 .alt2} | ::::::::::::::::::::::::::::::::::: container |
| 1 | ::: {.line .number1 .index0 .alt2} |
| ::: | <{.xml .plain}div{.xml |
| | .keyword} id{.xml .color1}={.xml |
| ::: {.line .number2 .index1 .alt1} | .plain}"demo"{.xml .string}></{.xml |
| 2 | .plain}div{.xml .keyword}>{.xml .plain} |
| ::: | ::: |
| | |
| ::: {.line .number3 .index2 .alt2} | ::: {.line .number2 .index1 .alt1} |
| 3 | |
| ::: | ::: |
| | |
| ::: {.line .number4 .index3 .alt1} | ::: {.line .number3 .index2 .alt2} |
| 4 | <{.xml .plain}style{.xml |
| ::: | .keyword}>{.xml .plain} |
| | ::: |
| ::: {.line .number5 .index4 .alt2} | |
| 5 | ::: {.line .number4 .index3 .alt1} |
| ::: | #demo {{.xml .plain} |
| | ::: |
| ::: {.line .number6 .index5 .alt1} | |
| 6 | ::: {.line .number5 .index4 .alt2} |
| ::: | {.xml .spaces}width: 100px;{.xml |
| | .plain} |
| ::: {.line .number7 .index6 .alt2} | ::: |
| 7 | |
| ::: | ::: {.line .number6 .index5 .alt1} |
| | {.xml .spaces}height: 100px;{.xml |
| ::: {.line .number8 .index7 .alt1} | .plain} |
| 8 | ::: |
| ::: | |
| | ::: {.line .number7 .index6 .alt2} |
| ::: {.line .number9 .index8 .alt2} | {.xml |
| 9 | .spaces}background-color: #ccc;{.xml |
| ::: | .plain} |
| | ::: |
| ::: {.line .number10 .index9 .alt1} | |
| 10 | ::: {.line .number8 .index7 .alt1} |
| ::: | {.xml .spaces}position: relative;{.xml |
| | .plain} |
| ::: {.line .number11 .index10 .alt2} | ::: |
| 11 | |
| ::: | ::: {.line .number9 .index8 .alt2} |
| | {.xml |
| ::: {.line .number12 .index11 .alt1} | .spaces}border: 4px solid #333;{.xml |
| 12 | .plain} |
| ::: | ::: |
| | |
| ::: {.line .number13 .index12 .alt2} | ::: {.line .number10 .index9 .alt1} |
| 13 | }{.xml .plain} |
| ::: | ::: |
| | |
| ::: {.line .number14 .index13 .alt1} | ::: {.line .number11 .index10 .alt2} |
| 14 | |
| ::: | ::: |
| | |
| ::: {.line .number15 .index14 .alt2} | ::: {.line .number12 .index11 .alt1} |
| 15 | #demo:after, #demo:before {{.xml .plain} |
| ::: | ::: |
| | |
| ::: {.line .number16 .index15 .alt1} | ::: {.line .number13 .index12 .alt2} |
| 16 | {.xml |
| ::: | .spaces}border: solid transparent;{.xml |
| | .plain} |
| ::: {.line .number17 .index16 .alt2} | ::: |
| 17 | |
| ::: | ::: {.line .number14 .index13 .alt1} |
| | {.xml .spaces}content: ' ';{.xml |
| ::: {.line .number18 .index17 .alt1} | .plain} |
| 18 | ::: |
| ::: | |
| | ::: {.line .number15 .index14 .alt2} |
| ::: {.line .number19 .index18 .alt2} | {.xml .spaces}height: 0;{.xml .plain} |
| 19 | ::: |
| ::: | |
| | ::: {.line .number16 .index15 .alt1} |
| ::: {.line .number20 .index19 .alt1} | {.xml .spaces}left: 100%;{.xml .plain} |
| 20 | ::: |
| ::: | |
| | ::: {.line .number17 .index16 .alt2} |
| ::: {.line .number21 .index20 .alt2} | {.xml .spaces}position: absolute;{.xml |
| 21 | .plain} |
| ::: | ::: |
| | |
| ::: {.line .number22 .index21 .alt1} | ::: {.line .number18 .index17 .alt1} |
| 22 | {.xml .spaces}width: 0;{.xml .plain} |
| ::: | ::: |
| | |
| ::: {.line .number23 .index22 .alt2} | ::: {.line .number19 .index18 .alt2} |
| 23 | }{.xml .plain} |
| ::: | ::: |
| | |
| ::: {.line .number24 .index23 .alt1} | ::: {.line .number20 .index19 .alt1} |
| 24 | |
| ::: | ::: |
| | |
| ::: {.line .number25 .index24 .alt2} | ::: {.line .number21 .index20 .alt2} |
| 25 | #demo:after {{.xml .plain} |
| ::: | ::: |
| | |
| ::: {.line .number26 .index25 .alt1} | ::: {.line .number22 .index21 .alt1} |
| 26 | {.xml .spaces}border-width: 9px;{.xml |
| ::: | .plain} |
| | ::: |
| ::: {.line .number27 .index26 .alt2} | |
| 27 | ::: {.line .number23 .index22 .alt2} |
| ::: | {.xml |
| | .spaces}border-left-color: #ccc;{.xml |
| ::: {.line .number28 .index27 .alt1} | .plain} |
| 28 | ::: |
| ::: | |
| | ::: {.line .number24 .index23 .alt1} |
| ::: {.line .number29 .index28 .alt2} | {.xml .spaces}top: 15px;{.xml .plain} |
| 29 | ::: |
| ::: | |
| | ::: {.line .number25 .index24 .alt2} |
| ::: {.line .number30 .index29 .alt1} | }{.xml .plain} |
| 30 | ::: |
| ::: | |
| | ::: {.line .number26 .index25 .alt1} |
| ::: {.line .number31 .index30 .alt2} | |
| 31 | ::: |
| ::: | |
| | ::: {.line .number27 .index26 .alt2} |
| ::: {.line .number32 .index31 .alt1} | #demo:before {{.xml .plain} |
| 32 | ::: |
| ::: | |
| | ::: {.line .number28 .index27 .alt1} |
| | {.xml .spaces}border-width: 14px;{.xml |
| | .plain} |
| | ::: |
| | |
| | ::: {.line .number29 .index28 .alt2} |
| | {.xml |
| | .spaces}border-left-color: #333;{.xml |
| | .plain} |
| | ::: |
| | |
| | ::: {.line .number30 .index29 .alt1} |
| | {.xml .spaces}top: 10px;{.xml .plain} |
| | ::: |
| | |
| | ::: {.line .number31 .index30 .alt2} |
| | }{.xml .plain} |
| | ::: |
| | |
| | ::: {.line .number32 .index31 .alt1} |
| | </{.xml .plain}style{.xml |
| | .keyword}>{.xml .plain} |
| | ::: |
| | ::::::::::::::::::::::::::::::::::: |
+--------------------------------------+-----------------------------------------------+
::::
本文作者:newghost
原文地址:http://ourjs.com/detail/532bc9f36922aa7e1d000001