CSS quiz: 带边 border 的三角形
- - 幸福收藏夹在 twitter 上发了一条推,给一道 CSS 题给大家做. 有几位同学给了回答,@zhiyelee 同学还给出了他的 具体实现方案. 推的原文是:“CSS Quiz: 如何不用图片、兼容所有浏览器实现这样的界面. 晚上博客公布答案 twitpic.com/981xba”. 如 @zhiyelee 同学的方案所示,原理可以分解为:.
在 twitter 上发了一条推,给一道 CSS 题给大家做。有几位同学给了回答,@zhiyelee 同学还给出了他的 具体实现方案。推的原文是:“CSS Quiz: 如何不用图片、兼容所有浏览器实现这样的界面?晚上博客公布答案 twitpic.com/981xba”。大概需要实现下图的效果:
如 @zhiyelee 同学的方案所示,原理可以分解为:
这是一种不错的方案。我现在小三角形的时候,也喜欢用这种方法。
CSS3 是经常被提起,但在桌面端又很少被用到的内容。像 Alice UI 中有很多兼容解决方案其他都是利用 CSS3 来作高级浏览器的实现的。今天这个方案应该也算是一种兼容解决方案吧。后续再整到 Alice 中去。实现原理是这样的:
具体的效果可以看: Pure CSS Tips Angle。主要的实现代码可以自己 view source,这里贴出 CSS 代码:
/* 兼容解决方案:菱形 */ .diamond{ -ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=0.7071067811865475, M12=-0.7071067811865477, M21=0.7071067811865477, M22=0.7071067811865475, SizingMethod='auto expand')"; filter: progid:DXImageTransform.Microsoft.Matrix( M11=0.7071067811865475, M12=-0.7071067811865477, M21=0.7071067811865477, M22=0.7071067811865475, SizingMethod='auto expand' ); -moz-transform: rotate(45deg); -o-transform: rotate(45deg); -webkit-transform: rotate(45deg); -ms-transform: rotate(45deg); transform:rotate(45deg); } :root .diamond{filter:none\9;} /* Tips 组件 */ .tips{position:absolute;background: #fff8e8;border:1px solid #ffba00;padding:10px;} .tips-angle{position:absolute;display:block;width:8px;height:8px;font-size:0;background:#fff8ef;border-left:1px solid #ffba00;border-top:1px solid #ffba00;top:-5px;top:-6px\9;left:10px;}