使用SVG滤镜模拟下划线实例页面
回到相关文章 »效果:
我是一段文字,链接地址transparent是下划实线。
我是一段文字,字号更大,链接地址transparent是下划实线。
代码:
CSS代码:
a { -webkit-filter: url('#svg-underline'); filter: url('#svg-underline'); text-decoration: none; }
HTML代码:
<svg class="out"> <filter id="svg-underline" primitiveUnits="objectBoundingBox"> <!-- 原图文基础上水平垂直方向一点点扩展并存储到新的层上 --> <feMorphology in="SourceGraphic" operator="dilate" radius="0.0075 0.05" result="outline"></feMorphology> <!-- 一个蓝色矩形,高度3%然后宽度100%,位置稍微往下一点 --> <feFlood flood-color="#34538b" width="1" height="0.03" x="0" y="0.9" result="underline"></feFlood> <!-- 遮罩蓝色矩形,这样,文字重合部分边缘会镂空 --> <feComposite in="underline" in2="outline" operator="out" result="underline"></feComposite> <!-- 滤镜走起来 --> <feMerge> <feMergeNode in="underline"></feMergeNode> <feMergeNode in="SourceGraphic"></feMergeNode> </feMerge> </filter> </svg> <p>我是一段文字,<a href>链接地址transparent</a>是下划实线。</p> <p><big>我是一段文字,字号更大,<a href>链接地址transparent</a>是下划实线。</big></p>