Correcting teacher:天蓬老师
Correction status:qualified
Teacher's comments:
说明:仅对当前文档的元素有效,使用style标签
示范代码
<head>
<style>
h1{
color:red;
font_size:small;
}
</style>
</head>
<body>
<h1>php中文网</h1>
</body>
说明:适用于所以引入了这个CSS样式表的html文档,使用link标签
示范代码
<head>
<link type="stylesheet" href="css/style.css">
</style>
</head>
<body>
<h1>php中文网</h1>
</body>
style.css中代码为:
h1{
color:red;
font_size:small;
}
说明:仅适用于当前页面中指定的元素,使用style属性
示范代码
<body>
<h1 style="color:red;" >php中文网</h1>
</body>
小结:为了简化html文档页面结构,提高css文件代码复用性,尽量将公共样式或者共享样式写成单独的外部样式表文件(也称样式表的模块化),通过<link>标签引用
1. 标签选择器, 返回一组对象
li {
background-color: violet;
}
/*类选择器: 返回一组 */
li[class="on"] {
background-color: violet;
}
/*class选择器可简化为*/
.on {
background-color: violet;
}
/*id选择器: 返回一个 */
li[id="foo"] {
background-color: violet;
}
/* 因为浏览器不检查id的唯一性,必须由开发者自行保证 */
/* id选择器使用 # 简化 */
#foo {
background-color: violet;
}
说明:选择ul里包含的所有li对象(所有层级)
ul li {
background-color: lightblue;
}
说明:选择ul里包含的子级li对象
ul>li {
background-color: lightblue;
}
说明:仅选中与之相邻(后面)的第一个兄弟元素
/*先定位class=start的对象的位置,然后选择后面第一个同级的li对象*/
.start+li {
background-color: lightgreen;
}
<body>
<ul>
<li>item1</li>
<li class="start">item2</li>
<li>item3</li>
<li>item4
<ul>
<li>item4-1</li>
<li>item4-2</li>
<li>item4-3</li>
</ul>
</li>
<li>item5</li>
</ul>
</body>
说明:仅选中与之相邻(后面)的第一个兄弟元素
/*先定位class=start的对象的位置,然后选择同级所有li对象*/
.start~li {
background-color: lightgreen;
}
<body>
<ul>
<li>item1</li>
<li class="start">item2</li>
<li>item3</li>
<li>item4
<ul>
<li>item4-1</li>
<li>item4-2</li>
<li>item4-3</li>
</ul>
</li>
<li>item5</li>
</ul>
</body>
说明:与结构相关,选择器的重点难点中所在,
关键词:nth-of-type(an+b):
- an是起点,n=(0、1、2、3、4。。。)
- b是偏移量,用于表示目标对象与an的距离
公共代码
<body>
<ul>
<li>item1</li>
<li>item2</li>
<li>item3</li>
<li>item4</li>
<li>item5</li>
<li>item6</li>
<li>item7</li>
<li>item8</li>
<li>item9</li>
<li>item10</li>
</ul>
</body>
ul li:nth-of-type(0n+3) {
background-color: violet;
}
/* 0乘以任何数都等于0,故如果能够明确是第几个,通常直接写偏移量就可以*/
ul li:nth-of-type(3) {
background-color: violet;
}
ul li:nth-of-type(1n) {
background-color: violet;
}
/* 如果只是为了全选,这样做没意义,还不如标签选择器来得直接,但是一旦带上偏移量就完全不同了 */
/*选择第3个及后面的所有li对象*/
ul li:nth-of-type(1n+3) {
background-color: violet;
}
/* 1乘以任何数都等于自己,所以省去1 */
ul li:nth-of-type(n+3) {
background-color: violet;
}
ul li:nth-last-of-type(-n+3) {
background-color: violet;
}
/* 我只选择倒数第3个,直接命中 */
/* ul li:nth-last-of-type(3) {
background-color: violet;
}
/*偶数为2n,奇数则为2n-1或者2n+1*/
ul li:nth-of-type(2n) {
background-color: violet;
}
/* 正向::nth-of-type(1) 的语法糖 :first-of-type */
ul li:first-of-type {
background-color: violet;
}
/*反向第一个::nth-last-of-type(1)的语法糖:last-of-type*/
ul li:last-of-type {
background-color: violet;
}
ul li:only-of-type {
background-color: violet;
}
/*选择最后一个ul的第一个li对象*/
ul:last-of-type li:first-of-type {
background-color: violet;
}
伪类选择器小结 :nth-of-type(an+b)这是最核心的一个选择器,其它的相关选择器都是它的语法糖