css selector只匹配最近的一层

html-css010

css selector只匹配最近的一层,第1张

语法:find_element_by_css_selector("css选择器定位策略”) 或者 find_elements_by_css_selector("css选择器定位策略”)

1、css可以通过元素的 id,class,标签 这三个常规属性直接定位到

tips:若用id定位,则用 #。若用class定位,则用 .

下面是百度搜索框的HTML代码:

通过css selector定位有如下三种常规方式:

  find_element_by_selector("#kw") (#表示通过id定位)

find_element_by_selector(".s_ipt") (. 表示通过class定位)

find_element_by_selector("标签名“”) 其实单纯通过标签名来定位元素,是有很大局限性的,因为一个页面中,非常大可能的

存在标签名的重复,因此无法很精确的定位

$str = '<link rel="dns-prefetch" href="//imgcache.a.com">

<link  type="text/css" href="

<link  href="index1.css" rel="stylesheet" type="text/css">

<link  type="text/css" rel="stylesheet" href="/index2.css"  >' //如果是第三和第四行加上,那第二行的"

应该是多打了一个"x"

$preg_csslink = '/<link[\w\W]*?type="text\/css"[\w\W]*?>/i'

preg_match_all($preg_csslink, $str, $arr_csslink)

$csslink_source = $arr_csslink[0]

foreach ($arr_csslink[0] as &$val) {

$preg_href = '/href="(.*?)\.css"/i'

preg_match($preg_href, $val, $arr_href)

$href = $arr_href[1]

if (strpos($href, '

) !== 0) {

if (strpos($href, '/') === 0) {

$val = str_replace($href, '

$href, $val)

} else {

$val = str_replace($href, '

$href, $val)

}

}

}

$new_str = str_replace($csslink_source, $arr_csslink[0], $str)

在HTML中常用以下3种方式定义CSS:Embedding(嵌入式)、Linking(引用式)、Inline(内联式)

一、嵌入式:使用HTML的style元素,在文档中定义CSS样式。

<head> 

<style type="text/css"> 

h1{color:red} 

p{color:blue} 

</style> 

<head>

二、内联式 :每一个HTML元素都包含一个style属性,可以直接定义样式。该样式仅能用于该元素的内容,对于另一个同名的元素则不起作用。

<p style="color:#FFFfont-weight:bold">内联样式</p>

三、外部引用式:外部引用指HTML文档本身不含有CSS样式,而是动态引用外部的CSS文件定义文档的表现形式。

1、使用样式表的处理指令语句-在HTML文档的开头部分写一个关于样式表的指令处理语句

<?xml-stylesheet type="text/css" href="mystyle.css" ?> 

<html> 

指令语句 

</html>

不过只有使用xml语法格式编写的html文档才支持使用该指令,大多数浏览器仅当被保存为xhtml或xml格式才有效,且JS不能处理这种CSS,所以不建议使用。

2、使用@import命令 -在style元素之间使用@import命令导入外部的css文件

<head> 

<style type="text/css"> 

<!--下面两行代码效果一样 

@import "mystyle.css" 

@import url("mystyle.css") 

--> 

</style> 

</head>

任何@import规则必须出现在所有规则之前。参数是一个css文件的URL地址。在一个css文件中也可以用@import指令将另一个css文件导入。

3、使用link元素

<head> 

<link rel="stylesheet" href="css的url" type="text/css" > 

</head>

这也是最常用的方式。

4、使用HTTP消息报头链接到样式表 -可以使用HTTP消息报头的link字段链接一个外部样式表。

link:<mystyle.css>rel=stylesheet 

//等同于<link rel="stylesheet" href="css的url" type="text/css" >

HTTP报头中可以使用多个link,从而链接多个样式表,且HTTP报头中的link比HTML文档中的link(head元素中)具有优先级。