美文网首页web之路让前端飞程序员
【十五】CSS 选择器:如何选中svg里的a元素?

【十五】CSS 选择器:如何选中svg里的a元素?

作者: alanwhy | 来源:发表于2019-03-10 17:20 被阅读3次

所有前端体系的集合链接:web之路

选择器是由CSS 最先引入的一个机制(但随着document.querySelector 等API的加入,选择器已经不仅仅是CSS的一部分了)

选择器的基本意义是:根据一些特征,选中元素树上的一批元素

分类:

  • 简单选择器:针对某一特征判断是否选中元素
  • 复合选择器:连续写在一起的简单选择器,针对元素自身特征选择单个元素
  • 复杂选择器:由 空格 > ~ + || 等符号连接的复合选择器,根据父元素或者前序元素检查单个元素
  • 选择器列表,由逗号分隔的复杂选择器,表示 或 的关系

简单选择器

image.png
类型选择器和合体选择器

根据一个元素的标签名来选中元素

   div {

   }

我们还必须考虑html 或者 xml的命名空间问题

svg 和 html 都有a标签 我们若要想区分选择svg 的 a 和html 的 a,就必须用带命名空间的类型选择器

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>JS Bin</title>
</head>
<body>
<svg width="100" height="28" viewBox="0 0 100 28" version="1.1"
     xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
  <desc>Example link01 - a link on an ellipse
  </desc>
  <a xlink:href="http://www.w3.org">
    <text y="100%">name</text>
  </a>
</svg>
<br/>
<a href="javascript:void 0;">name</a>
</body>
</html>

@namespace svg url(http://www.w3.org/2000/svg);
@namespace html url(http://www.w3.org/1999/xhtml);
svg|a {
  stroke:blue;
  stroke-width:1;
}

html|a {
  font-size:40px
}

有一个特殊的选择器,就是*,叫做全体选择器,可以选中任何元素。用法跟类型选择器完全一致

id选择器和class选择器
#myid {
  stroke:blue;
  stroke-width:1;
}

.mycls {
  font-size:40px
}

属性选择器出来之后,其实是可以一定程度上代替它们的,但是class 选择器识别的是:用空格分隔的class语法

<a class="a b c">xxx</a>
.a {
    color:red;
}
属性选择器

根据html元素的属性来选中元素,一共四种形态

  • [att]

直接在方括号中放属性名1,是检查元素是否具有这个属性,只要元素有这个属性,不论属性是什么值,都可以被选中

  • [att=val]

精确匹配,检查一个元素属性值是否是val

  • [att~=val]

多种匹配,检查一个元素的值是否是若干值之一,这里的val不是一个单一的值,可以使用空格间隔的一个序列

  • [att|=val]

开头匹配,检查一个元素的值是否是以val 开头,它跟精确匹配的区别是属性只要以val 开头即可

有些HTML属性含有特殊字符,可以奖val用引号括起来,形成一个CSS字符串,可以使用单引号来规避,也可以用反斜杠转义

伪类选择器

一系列由CSS 规定好的选择器,它们以冒号开头。分为普通和函数两个类型

树结构关系伪类选择器

:root 伪类 表示树的根元素,在选择器是针对完整的HTML文档时,我们一般用HTML标签即可选中根元素,但随着scoped css 和 shadow root 等出现,选择器可以针对某一子树来选择,这个时候就需要root 伪类了

  • :empty 伪类表示没有子节点的元素,这里有个例外就是子节点为空白文本的情况
  • :nth-child和 :nth-last-child ,CSS 的An+B语法设计的时比较复杂的
image.png
  • :nth-last-child 的区别仅仅时从后往前数
  • :first-child :last-child 分别表示第一个和最后一个元素
  • :only-child 选中唯一一个子元素

of-type系列,是一个语法糖,S:nth-of-type(An+B) 是 :nth-child(|An+B| of S)的另一种写法
所以也有 nth-last-of-type、first-of-type、last-of-type、only-of-type

链接与行为伪类选择器
  • :any-link 表示任意的链接,包括 a、area和link标签
  • :link 表示未访问过的链接
  • :visited 表示访问过的链接
  • :hover 表示鼠标悬停在上的元素
  • :active 表示用户正在激活这个元素
  • :focus 表示焦点落在这个元素上
  • :target 用于选中浏览器URL的 hash部分所指示的元素
逻辑伪类元素

介绍一下:not伪类,作用是选中内部的简单选择器命中的元素

*|*:not(:hover)
其他伪类选择器
  • 国际化:处理国际化和多语言问题
    • dir
    • lang
  • 音频/视频:用于区分音视频播放状态
    • play
    • pause
  • 时序:用于配合读屏软件等时序性客户端的伪类
    • current
    • past
    • future
  • 表格:用于处理table的列的伪类
  • nth-col
  • nth-last-col

参考原文:CSS 选择器:如何选中svg里的a元素?

相关文章

  • 【十五】CSS 选择器:如何选中svg里的a元素?

    所有前端体系的集合链接:web之路 选择器是由CSS 最先引入的一个机制(但随着document.querySel...

  • CSS元素选择器及其优先算法

    CSS 选择器 这一块可以说是很基础了,只有用选择器选中元素,才能使样式生效 元素选择器(标签选择器) 直接选中原...

  • CSS选择器

    css选择器式css的根基,设置元素样式首先就的把元素选中 1.类选择器 2.id选择器 3.子标签选择器 4.后...

  • CSS 拾遗

    CSS拾遗选择器选中带有class或id的元素选中多个class选择器组合使用dom结构作为选择器层叠(Casca...

  • 一文学会CSS基本选择器和复合选择器

    CSS基本选择器 要想为指定的HTML元素添加CSS样式,首先需要选中该元素。在CSS中,执行这一选择操作规则部分...

  • 项目中常用到的代码

    css 字体选中样式 三角形 css选择器 在 CSS 中,选择器是一种模式,用于选择需要添加样式的元素。"CSS...

  • CSS-选择器10-first-child、last-child

    CSS选择器-系列文章 1、CSS选择器说明 特别注意,选择的是选中对象在父元素中的第一个元素 2、基础效果演示 ...

  • CSS 第1篇

    1.CSS选择器常见的有几种? 1.id选择器 #id{ } “#id”选中元素2.类选择器 .class{ } ...

  • 笔试题整理(四)

    1、CSS3选择器 ①解析:div p:被选中的 元素可能是 元素的子元素,孙子元素,重孙元素…。div>p:被选...

  • CSS

    类选择器: eg. CSS中用“.”号选中该类【 .a{...} 】 若某元素同时属于多个类 eg. CSS中用紧...

网友评论

    本文标题:【十五】CSS 选择器:如何选中svg里的a元素?

    本文链接:https://www.haomeiwen.com/subject/lttppqtx.html