請關注公衆號:自動化測試實戰css
如今繼續上一節課的內容,看下面代碼:html
<!DOCTYPE html>
<html>
<head> <meta charset="utf-8"> <title>Css</title> <meta name="keywords" content="key1, key2"> <meta name="description" content=""> <!-- <style type="text/css"> /* css的註釋寫法 */ div{ border: 1px solid red; display: inline; } </style> --> <link rel="stylesheet" type="text/css" href="css/index.css"></head><body> <!-- 這是註釋 --> <!--經過css改變文字顏色:color屬性 --> <div>這是一個div標籤</div> <div>這是第二個div標籤</div>
</body>
</html>
index.css
jvm
div{
font-family: 'Microsoft Yahei';
font-size: 20px;
border: 1px solid red;
display: inline;
}
上面代碼中有兩個div
標籤,而在css
樣式表中只有一個樣式文件,那麼此時是否是兩個div
標籤都使用同一個樣式呢?你們看了之後就知道,答案是確定的。那麼咱們如今想讓兩個div
樣式不同,該怎麼寫呢?此時咱們就須要對兩個div
有所區分,上面css
文件中選擇器叫作標籤選擇器
,因此只要是div
標籤都會適用於對應的樣式。如今要區別設置,就涉及到標籤選擇器了:ide
id選擇器測試
全部的可視化基本都有id屬性,id英文全名爲identity
意爲惟一標識
,因此id值必須是惟一的。並且id命名規範爲由數字、字母、下劃線組成,且不能用數字開頭
。起名字要用駝峯命名法
,好比:myDiv
,myDivSpan
。spa
<!DOCTYPE html>
<html>
<head> <meta charset="utf-8"> <title>Css</title> <meta name="keywords" content="key1, key2"> <meta name="description" content=""> <!-- <style type="text/css"> /* css的註釋寫法 */ div{ border: 1px solid red; display: inline; } </style> --> <link rel="stylesheet" type="text/css" href="css/index.css"></head><body> <!-- 這是註釋 --> <!--經過css改變文字顏色:color屬性 --> <div id="myDiv1">這是一個div標籤</div> <div id="myDiv2">這是第二個div標籤</div>
</body>
</html>
上面id
已經寫好,咱們如今來css
文件中修改代碼,若是你看過以前的xpath
寫法,那你就必定記得xpath
中id用#
來表示,css
文件中也同樣——.
表明class
,#
表明id
:code
/* 這是css註釋 */
#myDiv1{
background-color: #000000;
color:#ffffff;
display: block;
border: solid purple;
}
#myDiv2{
background-color: #ff0000;
color:#fff;
border: solid green;
}
頁面顯示:htm
class選擇器blog
class
就不是惟一的了,這就是爲何在selenium
中有find_elements_by_class_name()
的緣由了。如上所說,用.
表示class
:ip
/* 這是css註釋 div{ font-family: 'Microsoft Yahei'; font-size: 20px; border: 1px solid red; display: inline; } */
#myDiv1{
background-color: #000000;
color:#ffffff;
display: block;
border: solid purple;
}
#myDiv2{
background-color: #ff0000;
color:#fff;
border: solid green;
}
.myClass{
background-color: pink;
}
頁面顯示:
背景色有長有短的問題先不用管,下一篇會講。
你也能夠在div
標籤下增長class
屬性,而後設置它的背景色,但若是div
的id
標籤設置了背景色,那麼會優先選擇你在id
下設置的背景色:
<div id="myDiv1" class="myClass">這是一個div標籤</div>
顯示和上圖同樣。因此id
選擇器優先級要高於class
選擇器。
混合選擇器
先說明一下,之後咱們要用混合選擇器,用混合選擇器,用混合選擇器。
混合選擇器就是標籤選擇器
+類選擇器
下面代碼中的div.myClass
意爲class是myClass的div標籤
/* 這是css註釋 div{ font-family: 'Microsoft Yahei'; font-size: 20px; border: 1px solid red; display: inline; } */
#myDiv1{
background-color: #000000;
color:#ffffff;
display: block;
border: solid purple;
}
#myDiv2{
background-color: #ff0000;
color:#fff;
border: solid green;
}
div.myClass{
background-color: pink;
}
這樣,css就只會修改class是myClass的div標籤了。
若是想把class
是myClass
的其餘標籤也用相同的樣式,只須要用逗號隔開:
div.myClass, p.myClass, span.myClass{
background-color: pink;
}
用選擇器的原則就是描述的越詳細越好。
選擇器的優先級:
id ->混合選擇器->class選擇器->標籤選擇器
如今咱們修改html
<!DOCTYPE html>
<html>
<head> <meta charset="utf-8"> <title>Css</title> <meta name="keywords" content="key1, key2"> <meta name="description" content=""> <link rel="stylesheet" type="text/css" href="css/index.css"></head><body> <!-- 這是註釋 --> <!--經過css改變文字顏色:color屬性 --> <div id="myDiv1" class="myClass">這是一個div標籤</div> <div id="myDiv2">這是第二個div標籤</div> <div class="myClass">這是第三個div標籤</div> <p class="myClass">這是p標籤</p> <span class="myClass">這是一個span標籤</span> <div id="div"> <span class="span"> <p>這是一個p標籤</p> </span> </div>
</body>
</html>
如今咱們要修改p
標籤的文字顏色爲紅色:
/* 這是css註釋 div{ font-family: 'Microsoft Yahei'; font-size: 20px; border: 1px solid red; display: inline; } */
#myDiv1{
background-color: #000000;
color:#ffffff;
display: block;
border: solid purple;
}
#myDiv2{
background-color: #ff0000;
color:#fff;
border: solid green;
}
div.myClass, p.myClass, span.myClass{
background-color: pink;
}
#div span.span p{
color:red;
}
以前咱們說過,標籤是分層的,這裏的空格即表示分層,因此上面代碼中最後面的樣式意爲id是div的標籤下一層class爲span的span標籤下一層的p標籤
。
咱們再作一個練習:
.module-body .brand-mask .enter span
你們看一下上面css是什麼意思?
答案:id是module-body的下一層id是brand-mask的下一層id是enter的span標籤。