最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

div+css实现带三角箭头提示框_html/css

来源:动视网 责编:小采 时间:2020-11-27 15:43:16
文档

div+css实现带三角箭头提示框_html/css

div+css实现带三角箭头提示框_html/css_WEB-ITnose:带三角箭头的提示框,就是下面所示: 这是一个提示框 通常我们都用图片来实现上面那个小三角,因为这样方便快速,但是如果图片处理得不好,会看起来有杂边,从而影响视觉,所以换一种思路来解决。 首先来研究一下CSS是如何实现三角形的。 假定有一个盒子
推荐度:
导读div+css实现带三角箭头提示框_html/css_WEB-ITnose:带三角箭头的提示框,就是下面所示: 这是一个提示框 通常我们都用图片来实现上面那个小三角,因为这样方便快速,但是如果图片处理得不好,会看起来有杂边,从而影响视觉,所以换一种思路来解决。 首先来研究一下CSS是如何实现三角形的。 假定有一个盒子


带三角箭头的提示框,就是下面所示:

这是一个提示框

通常我们都用图片来实现上面那个小三角,因为这样方便快速,但是如果图片处理得不好,会看起来有杂边,从而影响视觉,所以换一种思路来解决。

首先来研究一下CSS是如何实现三角形的。

假定有一个盒子(div),给定宽高分别为100像素,再给定边框50像素,那么它看起来会是下面这个样子(为了更直观,给了边框四种不同的颜色):

接下来,把盒子的高度设为0:

再把宽度也设为0:

这样雏形就已经出来了,由于IE6的bug(高度为0的div会有一定默认的高度,我的电脑上测量结果为19像素),需要做一些小调整,给div加一个overflow:hidden,IE6就能正确解析了。

接下来的工作就是去掉其余的三个边框。以向上箭头为例,假如我想让箭头朝上,那么就需要将左、上、右三条边框的颜色给去掉。一个常规的方法是将这三条边框的颜色设为透明,即transparent属性。

border-color:transparent transparent #056F61

设置以后可以看到如下效果:

这样CSS制作的三角形就完成了。到这里看起来工作好像差不多可以结束的样子,还需要测试一下浏览器的兼容性,经过测试,主流浏览器都支持,但是打开IE6,结果悲催了,居然是这个样子(T-T) :

排查一下哪个地方出了问题,才发现原来IE6不支持transparent属性,如之奈何?前面已经做了这么多工作,总不能倒在IE6下吧。

于是上网查了一下IE6支持transparent的方法,结果是需要使用滤镜。不过这个方案肯定不行,要使用滤镜的话,还不如直接用图片。之后再研究了一下,

发现如果将其余三条边的属性由solid改为dotted或者dashed就可以了:

/*border-style:solid*/border-style:dotted dotted solid;border-width:50px;border-color:transparent transparent #056f61; 

这样看起来IE6就“支持”transparent属性了。为什么会这样呢?这个问题我还没搞明白。经过测试发现,如果将盒子的边框类型设置为dashed,在IE6下会有一个奇特的行为:

当盒子的宽高为100像素,边框的宽度为34像素且类型为dashed时,边框就会消失,设为33像素时又显示了,而且这个比例是一定的。

这也许就解释了为什么将边框类型改为dashed时IE6显示“正常”了。

当边框类型为dotted时,IE6显示如下:

将盒子的宽高设为0时黑点消失,此时IE6也显示“正常”了。

虽然IE6的解析可能有问题,但是总算“解决”了其不支持transparent的bug。

接下来的工作就很简单了,如法炮制一个三角形,背景和提示框一致,将其叠加到之前的三角形上,只留一像素的边,再将其定位到提示框上。

可以根据需求制作左右和下边的三角。

以上是个人的一些心得体会,如果有不对的地方还请各位指正。

源码: 带三角箭头的提示框

------------------------------

转载请注明出处。

文档

div+css实现带三角箭头提示框_html/css

div+css实现带三角箭头提示框_html/css_WEB-ITnose:带三角箭头的提示框,就是下面所示: 这是一个提示框 通常我们都用图片来实现上面那个小三角,因为这样方便快速,但是如果图片处理得不好,会看起来有杂边,从而影响视觉,所以换一种思路来解决。 首先来研究一下CSS是如何实现三角形的。 假定有一个盒子
推荐度:
标签: html 箭头 三角
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top