9.25【前端开发】超链接伪类:如何在svg元素上使用超链接伪类?

2020-10-09 10:57:40 浏览数 (1)

超链接伪类:如何在svg元素上使用超链接伪类?

a:link 未单击访问时超链接样式 a:link{color:#9ef5f9;}

a:visited 单击访问后超链接样式 a:visited {color:#333;}

a:hover 鼠标悬浮其上的超链接样式 a:hover{color:#ff7300;}

a:active 鼠标单击未释放的超链接样式 a:active {color:#999;}

注意定义的顺序LVHA

这个样式可能会被后声明的其他链接相关的伪类覆盖,这些伪类包括 (:link, :hover,和:active)。要适当地设置链接样式,请将:visited 规则放在:link 规则之后,但在:hover 和:active 规则之前。

参照 LVHA 顺序::link — :visited — :hover — :active。

链接,访问过,悬停,激活(按下的)。

注意先写默认样式

代码语言:javascript复制
    <style>
        a {
            background-color: white;
            border: 1px solid white;
        }
        a:visited {
            background-color: yellow;
            border-color: hotpink;
            color: hotpink;
        }
</style>
    <a href="#test-visited-link">链接1</a>
    <a href="">空链接2</a>

样式限制

并不是只能给a链接加这几个伪类,可以给所有元素添加。但并不是所有的样式可用,只有少量可用

允许使用的 CSS 属性为color, background-color, border-color, border-bottom-color, border-left-color, border-right-color, border-top-color, column-rule-color, 和outline-color。

  • 文本颜色
  • 背景色
  • 边框色

允许使用的 SVG 属性为fill 和 stroke。

在svg上使用超连接伪类

代码语言:javascript复制
    <h2>使用svg</h2>
    <svg width="200" height="200">
        <defs>
            <style type="text/css">
                #rect1 {
                    stroke: black;
                    fill: red;
                }


                #rect1:hover {
                    stroke: black;
                    fill: rgb(101, 31, 192);
                }


                #rect1:active {
                    stroke: black;
                    fill: rgb(109, 84, 98);
                }
</style>
        </defs>
        <rect x="10" height="50" y="10" width="50" id="rect1" />
    </svg

alpha样式将受限

允许使用的样式的 αlpha 分量(透明度)将被忽略。设置在:visited中的样式将使用元素的非:visited 访问状态的 αlpha 分量, 如果该分量为0,这个样式将被完全忽略。

0 人点赞