使用css来制作三角,在日常用得较多。恰好这几天项目中有用到,之前只是从网上copy下来代码直接用,但是今天在用的时候遇到一些问题,于是借此机会把这个css绘制三角好好研究下吧。

我们分别写一个<div>,<s>,<span>标签,并给上下左右四个border赋值不同的颜色,看看是什么样子:

html:

<div class="triangle"></div> <p><s class="triangle"></s><span class="triangle"></span></p>

css:

.triangle {width: 20px;height: 20px;border: 9px solid;border-color: blue red green yellow;
}

在chrome下如图:

在IE下,div构成的三角中的内容区比chrome要小。

如果,我们把四个方向border的任意一边保留,其余三个边的颜色设置成透明,同时把设置height:0,width:0,这样我们就能得到一个三角形咯,我们先把所有边的颜色都保留,看是什么样子的。

我们发现,div这种块级元素,在chrome下面可以完美的表现出4个三角,但是IE下只能表现出上下的三角。其次,内联元素表现出的样式,在IE和chrome下面是一样的。于是,这样就可能会出现一个问题。就是在写三角的时候,我们写上下三角的时候,在IE和chrome下面,块级元素和内联元素都能展示出三角。但是你如果按照这种代码去写左右方向的三角的话,在chrome下ok,但是IE下面就会显示出体形来。这就会出现问题咯。这个问题也困扰了我,当时我也想,怎么同样的代码,出来的三角就不一样呢?原来方向不同,在IE下的表现也不一样。好,现在,我们来让梯形变成三角形。只需要加上一段代码:font-size:0,就可以啦

修改css代码如下:

.triangle {height: 0;width: 0;border: 9px solid;border-color: blue red green yellow;font-size: 0;
}

现在可以完美的兼容IE和chrome啦,FF也不在话下,哈哈。

好,现在我们再设置其中三个边框的颜色为透明的!看看会不会有三角出现哦,就以右边的三角为例吧。

修改css代码如下:

.triangle {height: 0;width: 0;border: 9px solid;border-color: transparent red transparent transparent;font-size: 0;
}

最终,IE7/8/9和chrome下面都ok,只是IE6下面不支持transparent,而使用默认的背景色黑色,如图所示:

IE6下面如此的丑陋,当然得解决掉,你可以使用如下的方法:

1. css hack

针对IE6的hack,给上,左,下的三个border设置为白色,但是这个情况只适用于背景色也为白色的情况

相应css代码:

.triangle {height: 0;width: 0;border: 9px solid;border-color: transparent red transparent transparent;font-size: 0;_border-top-color: white;_border-left-color: white;_border-bottom-color: white;
}

2. border-style

这个方法更好,设置要显示一边的三角border-style:solid,其他三边为border-style:dashed,这样利用虚线样式的border可以形成天然无污染的空白,多好!修改css代码如下:

.triangle {height: 0;width: 0;border-width: 9px ;border-style: dashed solid dashed dashed; border-color: transparent red transparent transparent;font-size: 0;
}

这样IE6就可以兼容咯!

参考资料:

css border三角,圆角生成技术简介

利用css制作小三角

转载于:https://www.cnblogs.com/hutaoer/archive/2012/11/09/2762475.html

使用css制作三角,兼容IE6,用到的标签divsspan相关推荐

  1. div+css 布局下兼容IE6 IE7 FF常见问题

    div+css 布局下兼容IE6 IE7 FF常见问题 收藏 所有浏览器 通用 (市面上主要用到的IE6 IE7 FF) height: 100px; IE6 专用 _height: 100px; I ...

  2. html中三角向下符号,使用css实现三角符号效果

    关于使用css制作三角符号,网上有很多的例子了,在这里只是为了详细的向各位解释一下三角符号的原理 下图,是一个长宽为100px,边框宽度为100px的一个元素,由此可见,在css中上下左右的边框相交处 ...

  3. 使用css实现三角符号

    关于使用css制作三角符号,网上有很多的例子了,在这里只是为了详细的向各位解释一下三角符号的原理 下图,是一个长宽为100px,边框宽度为100px的一个元素,由此可见,在css中上下左右的边框相交处 ...

  4. css border制作小三角形状及应用(兼容IE6)

    原理 css盒模型 一个盒子包括: margin+border+padding+content – 上下左右边框交界处出呈现平滑的斜线. 利用这个特点, 通过设置不同的上下左右边框宽度或者颜色可以得到 ...

  5. 纯css制作带三角(兼容所有浏览器)

    如何用 border 来制作三角. html 代码如下: 代码如下: <div class="arrow-up"></div> <div class= ...

  6. html flash 兼容ie7,网页制作常见的面试题(怎样兼容IE6/IE7/火狐浏览器)

    1.IE6双边距问题? 在IE6的浏览器中明明设置的是10px的margin却为什么显示的是20px的margin其实这个Ie6的一个双边距BUG 例如: 因为加上浮动后就会多出一倍的边距,浮动后本来 ...

  7. 兼容ie6css怎么设置,CSS样式兼容IE6、IE7、IE8、FF火狐浏览器的方法

    网页布局设计技术迄今为止主要有:table表格布局,DIV+CSS布局以及层布局.目前的网页布局设计领域主流是以DIV+CSS布局为主,table表格布局和层布局为辅.另外我还要告诉你一个秘密,那就是 ...

  8. 纯CSS实现兼容ie6以上的圆角头像

    先贴下各种浏览器下的效果图: 1.IE6 2.IE7 3.Chrome <!DOCTYPE html> <html xmlns="http://www.w3.org/199 ...

  9. CSS完美兼容IE6/IE7/FF的通用方法 ~!!!

    http://www.w3pop.com/learn/view/p/2/o/0/doc/css_hack_ie67_ff/ CSS完美兼容IE6/IE7/FF的通用方法 作者:w3pop.com 翻译 ...

最新文章

  1. 数据告诉你,哪个省才是高考地狱模式?第一名,你想不到!
  2. extjs4 textfield width
  3. mysql创建非聚集索引_一文看懂聚集索引和非聚集索引的区别
  4. Android sendevent/getevent 用法
  5. ios batchRequest
  6. 51单片机入门——蜂鸣器
  7. Vite图片压缩(vite-plugin-imagemin) imagemin error: XXXX解决办法
  8. 顶级赛事|2021 CCF大数据与计算智能大赛重磅来袭!
  9. C++ 开源库,很完整介绍【转】
  10. 企业计算机系统管理基本要求,药品经营企业计算机系统介绍.ppt
  11. 百度代码配置化实践:配置化是业务架构三化之一
  12. HTML(二) -- 表格设计
  13. python做网站开发_如何用Python做网站开发
  14. H5实现一个简易本地视频播放器
  15. matlab 积分 例子,[Matlab]使用arrayfun对矩阵表达式积分的例子
  16. python Dataframe apply()自定义函数中axis参数
  17. 语法长难句-----比较级的特殊用法as专题
  18. PHP中一些常用证件的验证方法
  19. hp激光打印出来字淡的处理方法
  20. 镇魂歌~Qt5容器类_1

热门文章

  1. 算法 --- 记一道面试dp算法题
  2. SQL Where in list 问题
  3. 100~200之间的素数(及其四个优化方案)
  4. ListView下拉刷新、上拉载入更多之封装改进
  5. JavaFX 的 UI 控件集 ControlsFX
  6. android jni ——Field Method -- Accessing Field
  7. MongoDB 主从集群配置
  8. VI编辑器的基本使用
  9. 设计模式是用来弥补面向对象编程缺陷的方法总结
  10. 变量在内存中的值[c][code]