HTML第二课——css【2】
请关注公众号:自动化测试实战
现在继续上一节课的内容,看下面代码:
<!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
div{
font-family: 'Microsoft Yahei';
font-size: 20px;
border: 1px solid red;
display: inline;
}
上面代码中有两个div
标签,而在css
样式表中只有一个样式文件,那么此时是不是两个div
标签都使用同一个样式呢?大家看了以后就知道,答案是肯定的。那么我们现在想让两个div
样式不一样,该怎么写呢?此时我们就需要对两个div
有所区分,上面css
文件中选择器叫做标签选择器
,所以只要是div
标签都会适用于对应的样式。现在要区别设置,就涉及到标签选择器了:
-
id选择器
所有的可视化基本都有id属性,id英文全名为identity
意为唯一标识
,所以id值必须是唯一的。而且id命名规范为由数字、字母、下划线组成,且不能用数字开头
。起名字要用驼峰命名法
,比如:myDiv
,myDivSpan
。
<!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
:
/*
这是css注释
*/
#myDiv1{
background-color: #000000;
color:#ffffff;
display: block;
border: solid purple;
}
#myDiv2{
background-color: #ff0000;
color:#fff;
border: solid green;
}
页面显示:
-
class选择器
class
就不是唯一的了,这就是为什么在selenium
中有find_elements_by_class_name()
的原因了。如上所说,用.
表示class
:
/*
这是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标签。