纯CSS实现一个微信logo并不难,难的是怎样用最少的html
标签实现。我一直在想怎样用一个标签就能实现,最后还是没想出来,就只好用两个标签了。
首先需要两个标签元素:
1 | <div class="bg"> |
先画个背景:
1 | .bg { |
再画个大的椭圆:
1 | .inner { |
小的椭圆利用.inner
的::before
伪元素实现:
1 | &::before { |
下图时现在的结果:
里面的四个圆怎么画呢?可以利用CSS3的box-shadow
属性实现,一般重复性的东西都会用这个属性,因为它可以制造出无数个一模一样的东西出来。
利用.bg
的::before
伪元素实现这些圆:
1 | &::before { |
::before
本身会实现一个圆(一个小圆),然后利用box-shadow
属性实现其它的三个圆。
来看看现在的效果:
现在就剩下两个角了,想想还有哪些东西没用上?还有两个伪元素,分别是.bg
的::after
和.inner
的::after
,刚好可以实现两个角。
这两个角其实就是平常的小三角,然后再旋转个45
度,CSS
实现小三角太常见了:
1 | .bg::after { |
最终效果:
全部css
代码:
1 | @mixin pos($left, $top) { |
画这个logo最难的地方应该就是实现四个小圆的时候,因为CSS3
不太熟的人可能不会想到利用box-shadow
去实现。
大家还有其它的方法实现微信logo吗?有没有一个标签就能实现的?欢迎留下你的实现方式。