CSS Selector (part 1)

Selector概述

示例:

strong {
    color: red;
}

解释:

这是一个完整 css 规则(标签选择器)。
strong 叫做选择器,它选择该规则将被应用到 DOM 的那个元素上去。
{}      里面的部分是声明,包含多条规则。每一条规则以 `;` 隔开。
color   为关键字。
red     为关键字的值。

除了标签选择器,还有其它类别的选择器。分为基本选择器、关系选择器、伪类选择器、伪元素选择器。

基本选择器:

[E] 标签选择器 strong {} 选择使用 <strong> 标签的元素
id id选择器(属性选择器) #1111 {} 选择 id = "1111" 的元素

class

class选择器(属性选择器) .books {}
选择 class = "books" 的元素


*

所有元素 * {} 所有元素

示例:

HTML:

<p class="key" id="principal">

CSS:

* {
  background: red;
}
p {
  font-size: 30px;
}
.key {
  color: green;
}
#principal {
  font-weight: bolder;
}

属性选择器:

[attr]
选择具有 "attr" 属性的元素。

[attr=value]
选择具有 attr 属性, 属性值为 "value" 的元素。

[attr~=value]

选择具有 attr 属性, 属性值包含单词 "value" 的元素。

[attr|=value]

选择具有 attr 属性, 属性值为 "value" 或者为 "value-xxx"的元素, 常用于语言属性的选择(lang="en_us")。

[attr^=value]

选择具有 attr 属性, 属性值以 "value" 作为前缀的元素。

[attr$=value]

选择具有 attr 属性, 属性值以 "value" 作为后缀的元素。

[attr*=value]

选择具有 attr 属性, 属性值以中包含有 "value" 值的元素。

[attr operator value i]

在结尾方括号(])前添加 ! ,使得 "value" 的匹配忽略大小写。

示例:

HTML:

<div class="hello-example">
    <a href="http://example.com">English:</a>
    <span lang="en-us en-gb en-au en-nz">Hello World!</span>
</div>
<div class="hello-example">
    <a href="#portuguese">Portuguese:</a>
    <span lang="pt">Olá Mundo!</span>
</div>
<div class="hello-example">
    <a href="http://example.cn">Chinese (Simplified):</a>
    <span lang="zh-CN">世界您好!</span>
</div>
<div class="hello-example">
    <a href="http://example.cn">Chinese (Traditional):</a>
    <span lang="zh-TW">世界您好!</span>
</div>

CSS:

/* All spans with a "lang" attribute are bold */
span[lang] {font-weight:bold;}

/* All spans in Portuguese are green */
span[lang="pt"] {color:green;}

/* All spans in US English are blue  */
span[lang~="en-us"] {color: blue;}

/* Any span in Chinese is red, matches
   simplified (zh-CN) or traditional (zh-TW) */
span[lang|="zh"] {color: red;}

/* All internal links have a gold background */
a[href^="#"] {background-color:gold}

/* All links to urls ending in ".cn" are red */
a[href$=".cn"] {color: red;}

/* All links with "example" in the url have a grey background */
a[href*="example"] {background-color: #CCCCCC;}

/* All email inputs have a blue border */
/* This matches any capitalization of
   "email", e.g. "email", "EMAIL", "eMaIL", etc. */
input[type="email" i] {border-color: blue;}

关系选择器:

B + E 选择 E 元素, E 为元素 B 的下一个兄弟元素
E:first-child 选择 E 元素, E 为其父元素的第一个子元素
A > E 选择 E 元素, E 为 A 元素的子元素
A E 选择 E 元素, E 为 A 元素的后代元素

示例:

HTML:

<ul>
  <li>One</li>
  <li>Two</li>
  <li>Three</li>
</ul>

<div>
  <span>Span 1. In the div.
    <span>Span 2. In the span that‘s in the div.</span>
  </span>
</div>
<span>Span 3. Not in a div at all.</span>

<ul>
    <li>
        <div>Item 1</div>
        <ul>
            <li>Subitem A</li>
            <li>Subitem B</li>
        </ul>
    </li>
    <li>
        <div>Item 2</div>
        <ul>
            <li>Subitem A</li>
            <li>Subitem B</li>
        </ul>
    </li>
</ul>

<span>This is not red.</span>
<p>Here is a paragraph.</p>
<code>Here is some code.</code>
<span>And here is a span.</span>

CSS:

li:first-of-type + li {
  color: red;
}

span { background-color: white; }
div > span {
  background-color: DodgerBlue;
}

li { list-style-type: disc; }
li li { list-style-type: circle; }

p + span {
  color: red;
}
时间: 2024-08-02 11:39:23

CSS Selector (part 1)的相关文章

Selenium - CSS Selector

昨天我练习了用CSS(即层叠样式表Cascading Stylesheet) Selector来定位(locate)页面上的元素(Elements).Selenium官网的Document里极力推荐使用CSS locator,而不是XPath来定位元素,原因是CSS locator比XPath locator速度快,特别是在IE下面(IE没有自己的XPath 解析器(Parser)).有很多跟Selenium相关的Blog文章都有提到使用CSS Selector的技术.之前我不会CSS Sele

Jsoup代码解读之五-实现一个CSS Selector

Jsoup代码解读之七-实现一个CSS Selector 当当当!终于来到了Jsoup的特色:CSS Selector部分.selector也是我写的爬虫框架webmagic开发的一个重点.附上一张street fighter的图,希望以后webmagic也能挑战Jsoup! select机制 Jsoup的select包里,类结构如下: 在最开始介绍Jsoup的时候,就已经说过NodeVisitor和Selector了.Selector是select部分的对外facade,而NodeVisito

CSS selector? [class*=“span”]怎么理解

我在Twitter 中有看到如下selector: .show-grid [class*="span"] { background-color: #eee; text-align: center; border-radius: 3px; min-height: 30px; line-height: 30px; } 有哪位童鞋知道这种写法. 答: 这是一个属性通配符selector. 在你提供的例子中, 会在引用了.show-grid 样式的容器内查找包含span样式的任何元素并设置对应

[译文]通过ID, TagName, ClassName, Name, CSS selector 得到element

致谢原文: <http://xahlee.info/js/js_get_elements.html> 通过ID得到element: Document.getElementById(id string) 返回element object, 如果失败,得到null 注意id在页面内应该是唯一的,但在iframe的看作是另一个html页面 通过TagName得到element document.getElementsByTagName(tagname)返回element object集合. tagn

css selector: xpath:

css selector: $$(".mainLeft>div>h1") xpath: $x(".mainLeft>div>h1") name = selectText(".mainLeft>div>h1"); xingzhi = selectText(".comTinyDes>tbody>tr:nth-child(1)>td:nth-child(2)>span");

Selenium - Css Selector 使用方法

什么是Css Selector? Css Selector定位实际就是HTML的Css选择器的标签定位 工具 Css Selector可以下载火狐浏览器插件,FireFinder 或 FireBug和FirePath组合使用. 使用方法: 1. Css Selector支持ID.Class的定位 与HTML中CSS定位相同 定位ID:id = "navi" -> #navi 定位Class: class = "inner" -> .inner 多个Cla

Selenium彩蛋篇-Css Selector使用方法

转:http://www.imdsx.cn/index.php/2017/07/27/css1/ 什么是Css Selector? Css Selector定位实际就是HTML的Css选择器的标签定位 工具 Css Selector的练习建议大家安装火狐浏览器后,下载插件,FireFinder 或 FireBug和FirePath组合使用. Css Selector使用方法 1.Css Selector支持ID.Class的定位 与HTML中CSS定位相同 # 号表id 定位有id的标签方式更加

Selenium之Css Selector使用方法

什么是Css Selector? Css Selector定位实际就是HTML的Css选择器的标签定位 工具 Css Selector的练习建议使用火狐浏览器,下载插件,FireFinder.FireBug.Firepath结合使用. Css Selector的使用方法 1.Css Selector支持ID.Class的定位,与HTML中CSS定位相同 2.Css Selector支持标签定位,但是用处不大 3.Css Selector支持任意属性定位 4.Css Selector支持标签属性组

Selenium学习之==&gt;Css Selector使用方法

一.什么是Css Selector Css Selector定位实际就是HTML的Css选择器的标签定位 工具 Css Selector的练习建议大家安装火狐浏览器后,下载插件,FireFinder 或 FireBug和FirePath组合使用. 二.Css Selector使用方法 1.通过ID.Class定位 1 ID定位 2 #号代表id,定位有id的标签方式更加简洁 3 #i1 4 5 Class定位 6 .代表Class 7 .c1 8 Class定位还提供了多个Class定位,通过连

关于Selenium.common.exceptions.WebDriverException: Message: Invalid locator strategy: css selector 的问题

在执行脚本时报Selenium.common.exceptions.WebDriverException: Message: Invalid locator strategy: css selector 的错 出现这个问题时请先检查你的selenium版本是否和Appium-Python-Client 的版本互相兼容 如果你的selenium是3.4的版本,需要下载 Appium-Python-Client 2.8的版本 如果selenium是2.53.6的请一定要下载 Appium-Pytho