CSS3中SVG简单应用

效果图
这是火焰遮罩效果图,顺着案例简单讲一下SVG的简单应用

HTML部分

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="viewport" content="width=device-width,initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
    <title>火焰背景遮罩字</title>
    <link rel="stylesheet" href="css/fire.css">
</head>
<body>
    <svg viewBox="0 0 1000 300">
        <pattern id="p-fire"
                 viewBox="30 100 186 200"
                 patternUnits="userSpaceOnUse"
                 width="216" height="200"
                 x="-70" y="35">
        <image xlink:href="img/fire.gif" width="256" height="300"></image>
        </pattern>
        <text text-anchor="middle"
              x="50%"
              y="50%"
              dy=".35em"
              class="text"
        >
            hello
        </text>
    </svg>
   <input id="mytext" type="text"/>

</body>
</html>

CSS部分(fire.css):

.text{
    fill:url("#p-fire"); /*fill填满,铺满*/
    stroke:#330000;  /*文本轮廓的线条颜色*/
    stroke-width:8; /*文本轮廓的厚度,线条宽度*/
    stroke-opacity: .5;  /*轮廓透明度*/
    font-size:16em;
    font-weight:600;
}

/*其他的样式*/
html,body{
   height:100%;
}
body{
    background:#000;
    text-transform: uppercase;
    margin:0;
}
svg{
    position:absolute;
    width:100%;
    height:90%;
    margin:0;
}

使用的图片(fire.gif):
这里写图片描述



首先讲一下我自己理解的原理步骤

1、SVG矢量图形,里面包括可见视图pattern(包含火焰图片image)、文本text

2、导入图片xlink,设置宽高;此时看不见图片(靠想象)

3、用viewBox=”0 0 100 100”,表示坐标为(0,0)的点出发,宽高为100的框框,然后将该框框内锁定的元素(就是刚才的火焰)放大至整个pattern;设置pattern宽高,x,y是设置位置

4、在css中设置样式,用pattern铺满文字;(fill)

5、然后在SVG中设置框框选中整个字,放大至SVG大小;(viewBox)


现在详细讲一下各个标签的作用以及标签属性

SVG是可缩放矢量图形


1、svg标签:创建一个svg文档片段

viewBox=“x,y,width,height” 坐标(x,y)作为起始点圈出一个框框,然后将框框,连同框框中的元素一起放大至整个svg大小;width为正数,表示起始点往右的宽度;height为正,则往下;


2、pattern标签:定义坐标,你想要的视图显示和视图的大小,然后添加到你的模式形状;

id=”用于引用这个模式的唯一ID” 必需的。

viewBox=”x,y.width,height” 与上面相同

patternUnits=”userSpaceOnUse’或’objectBoundingBox”。
第二个值X,Y,width,height, 一个会使用模式对象的边框的小部分,单位(%)。”

patternContentUnits=“‘userSpaceOnUse’或 ‘objectBoundingBox’”
patternTransform=”允许整个表达式进行转换”

width=”模式平铺的宽度(默认为100%)”
height=”模式平铺的高度(默认为100%)”

x=”模式的偏移量,来自左上角(默认为0)” //用于定位该模式
y=”模式的偏移量,来自左上角(默认为0)”

xlink:href=”另一种模式,其属性值是默认值以及任何子类可以继承。递归”


3、image标签:定义图像

xlink:href=”图像路径” ,必需

width=”图像的宽度”,必需
height=”图像的高度”,必需

x=”图像的左上角的x轴坐标”
y=”图像的左上角的y轴坐标”


4、text标签:定义一个文本

x=”列表在x轴的位置。”
y=“列表在y轴的位置”

dx=”在字符的长度列表中移动相对最后绘制标识符号的绝对位置”
dy=”在字符的长度列表中移动相对最后绘制标识符号的绝对位置”

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值