使用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>