请关注公众号:自动化测试实战

现在继续上一节课的内容,看下面代码:

<!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命名规范为由数字、字母、下划线组成,且不能用数字开头。起名字要用驼峰命名法,比如:myDivmyDivSpan

<!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属性,然后设置它的背景色,但如果divid标签设置了背景色,那么会优先选择你在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标签了。

如果想把classmyClass的其他标签也用相同的样式,只需要用逗号隔开:

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标签。

HTML第二课——css【2】的更多相关文章

  1. 萌新接触前端的第二课——CSS

    前端知识——CSS CSS(英文全称:Cascading Style Sheets) 中文名层叠样式表,是一种用来表现HTML或XML等文件样式的计算机语言.CSS不仅可以静态地修饰网页,还可以配合各 ...

  2. Html标签第二课css

    css(Cascading Style Sheet)叠层样式表.用于控制网页样式并允许将样式信息与网页内容分离的一种标记性语言. 一:样式三种控制方法 1.行内样式: <div  style=& ...

  3. HTML第二课——css

    请关注公众号:自动化测试实战 先给大家提个建议,就是用sublime编辑器来编写.用其他的也无所谓,我只是建议,因为这个会帮你自动补全很多代码. css概念 css叫层叠样式表.意思就是一层一层的叠加 ...

  4. CI(CodeIgniter)框架入门教程——第二课 初始MVC

    本文转载自:http://www.softeng.cn/?p=53 今天的主要内容是,使用CodeIgniter框架完整的MVC内容来做一个简单的计算器,通过这个计算器,让大家能够体会到我在第一节课中 ...

  5. 【Web探索之旅】第二部分第二课:服务器语言

    内容简介 1.第二部分第二课:服务器语言 2.第二部分第三课预告:框架和内容管理系统 第二部分第二课:服务器语言 介绍了Web的客户端,我们来谈谈Web的服务器端. 既然客户端有客户端的编程语言(HT ...

  6. 如何用webgl(three.js)搭建一个3D库房-第二课

    闲话少叙,我们接着第一课继续讲(http://www.cnblogs.com/yeyunfei/p/7899613.html),很久没有做技术分享了.很多人问第二课有没有,我也是抽空写一下第二课. 第 ...

  7. js项目练习第二课

    百度输入法 <style> *{ list-style: none; text-decoration: none; padding: 0; margin: 0; } a:hover{ te ...

  8. 【JavaScript从入门到精通】第二课 初探JavaScript魅力-02

    第二课 初探JavaScript魅力-02 变量 说起变量,我们不得不提起我们有一部比较古老的电视剧叫<包青天>.包青天有一把非常厉害的宝剑叫“尚方宝剑”,见到尚方宝剑有如见到皇帝.某种程 ...

  9. 如何用webgl(three.js)搭建一个3D库房,3D密集架,3D档案室,-第二课

    闲话少叙,我们接着第一课继续讲(http://www.cnblogs.com/yeyunfei/p/7899613.html),很久没有做技术分享了.很多人问第二课有没有,我也是抽空写一下第二课. 第 ...

随机推荐

  1. 认识网页:html + css + JavaScript

    参考资料:爬虫课程 认识网页 使用chrome,右键检查,查看网页源码,左侧的html,右侧的css,底下的JavaScript. 网页 = HTML(内容) + CSS(样式) + JavaScri ...

  2. English trip -- VC(情景课) 7 C How much are the shose? 鞋多少钱

    Grammar focus 语法点: How much is ...? How much are...? How much is the shirt?    $15.99. How much are ...

  3. 4-2 Ajax练习题,12结算!Check Out。

    练习题:在购物车的每个商品旁添加按钮,按一下减一个,数量为0删除该商品.先用普通方法再用Ajax支持. 1.自定义方法decrease, 为其设定路径routes.rb. 在resouurces :l ...

  4. html5- 摘自网友dudu

    HTML5中新增了<canvas>画布标签,通过它,可以使用JavaScript在网页中绘制图像.<canvas>标签在网页中得到的是一个矩形空白区域,可以通过width和he ...

  5. 常用OS获取信息命令

    一.linux#CPU信息(总核心数和型号) cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c #物理CPU数及每颗物理CPU中核心数(可能有 ...

  6. 信号处理函数的返回setjmp/longjmp

    信号处理函数可以正常返回,也可以调用其他函数返回到程序的主函数中,而不是从该处理程序返回. 正如ANSI C标准所说明的,一个信号处理程序可以返回或者调用abort.exit或longjmp(goto ...

  7. mahout推荐系统

    本章包含以下内容: 首先看一下实战中的推荐系统 推荐引擎的精度评价 评价一个引擎的准确率和召回率 在真实数据集:GroupLens 上评价推荐系统 我们每天都会对喜欢的.不喜欢的.甚至不关心的事情有很 ...

  8. chrome plugins

    ehpomnigmfglbkmnboidmmhhmicfdmom_1_1_0知行-时间管理 必开 Adkill and Media Download Cnblogs Wz(博客园网摘) Kami - ...

  9. Laravel中不可逆的加密方法

    1 //对 A 密码使用Bcrypt 加密 2 $password = Hash::make('secret'); 3 4 //你也可直接使用 bcrypt 的 function 5 $passwor ...

  10. git忽略操作

    在使用git的过程中,我们会有一些文件是不需要版本管理的,这时候就需要忽略这些文件 这里暂时只讲我用到的办法 全局忽略 在任意位置建立 .gitignore 文件,在其中写入你要忽略文件的规则(写法自 ...