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元素中)具有优先级。