3、CSS选择器

一、CSS介绍

层贴样式表:就是给HTML标签添加样式的,让它变的更加的好看,如果把Web比作一个人,HTML是人体的骨骼,而CSS就是人体的皮肤。

1、注释

# 注释
/*单行注释*/

/*
多行注释1
多行注释2
多行注释3
*/

通常我们在写css样式的时候也会用注释来划定样式区域(因为HTML代码多所以对呀的css代码也会很多)
/*这是博客园首页的css样式文件*/
/*顶部导航条样式*/
...
/*左侧菜单栏样式*/
...
/*右侧菜单栏样式*/
...

2、语法格式

/*css的语法结构*
选择器 {
  属性1:值1;
  属性2:值2;
  属性3:值3;
  属性4:值4;
}

3、引用方式

1.style标签内部直接书写
<style>
    h1  {
        color: burlywood;
    }
</style>

2.link标签引入外部css文件(最正规的方式 解耦合)
<link rel="stylesheet" href="mycss.css">

3.行内式(一般不用)

二、CSS选择器

要使用CSS对HTML页面中的元素实现一对一,一对多或者多对一的控制,这就需要用到CSS选择器。CSS选择器:就是指定CSS要作用的某个标签,意为:选择哪个容器。

1、基本选择器

<style>

/*【id选择器】*/
#d1{
color:greenyellow;  /*找到id是d1的标签,将文本颜色变成绿黄色*/
}

#########################################################################

/*【类选择器】*/
.c1{
color:red;  /*找到class值里面包含c1的标签,将文本颜色变成红色*/
}

#########################################################################

/*【元素/标签选择器】*/
span{
color:green;  /*找到所有的span标签,将文本颜色变成绿色*/
}

#########################################################################

/*【通用选择器】*/
*{
color:green;  /*把所有的标签变成绿色,基本用不上,了解即可*/
}

</style>

2、组合选择器

/*在前端 我们将标签的嵌套用亲戚关系来表述层级*/

<div>div
	<p>div p</p>
	<p>div p
		<span>div p span</span>
	</p>
	<span>span</span>
	<span>span</span>
</div>

/*div里面的p span都是div的后代
  p是div的儿子
  p里面的span是p的儿子 是div的孙子
  div是p的父亲*/
/*【后代选择器】*/
div span {
	color: red;  /*div包里所有的标签 改为红色*/
	}

/*【儿子选择器】*/
div>span {
	color: red;  /*div次一级别的个 改为红色*/
}

/*【毗邻选择器】*/
div+span {
	color: red;  /*同级别紧挨着的下面的第一个 改为红色*/
}

/*【弟弟选择器】*/
div~span {
	color: red;  /*同级别下面所有的span 改为红色*/
}

3、属性选择器

/*
1 含有某个属性
2 含有某个属性并且有某个值
3 含有某个属性并且有某个值的某个标签
*/

/*属性选择器是以[]作为标志的*/

/*将所有含有属性名是username的标签背景色改为红色*/
[username] {
	background-color: red;
}

/*找到所有属性名是username并且属性值是jason的标签*/
[username='jason'] { 	
    background-color: orange;
}

/*找到所有属性名是username并且属性值是jason的input标签*/
input[username='jason'] {
	background-color: wheat;
}

4、分组和嵌套

<style>
/*分组,同时为div,p,span的文本都换成红色*/
    div,p,span {
    color:red;
    }

/*嵌套,为id为d1的div内部下class为c2的文本换成红色*/
	#d1 .c2{
    color: red;
	}

</style

/*下面是body的内容*/
<body>
    <div id="d1">div
    <p class="c2">p</p>
    <span id="d3">span</span>
    <span id="d4">span</span>
    </div>
</body>

5、伪类选择器

同一个标签,根据其不同的种状态,有不同的样式。这就叫做“伪类”。伪类用冒号来表示。

伪类选择器分为两种。
(1)静态伪类:只能用于超链接的样式。如下:
    :link 超链接点击之前
    :visited 链接被访问过之后

PS:以上两种样式,只能用于超链接。

(2)动态伪类:针对所有标签都适用的样式。如下:

    :hover “悬停”:鼠标放到标签上的时候
    :active	“激活”: 鼠标点击标签,但是不松手时。
    :focus 是某个标签获得焦点时的样式(比如某个输入框获得焦点)
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    
    <style>
        a:link {  /*访问之前的状态*/
            color: red;
        }
        a:hover {  /*需要记住*/
            color: aqua;  /*鼠标悬浮态*/
        }
        a:active {
            color: black;  /*鼠标点击不松开的状态  激活态*/
        }
        a:visited {
            color: darkgray;  /*访问之后的状态*/
        }
        p {
            color: darkgray;
            font-size: 48px;
        }
        p:hover {
            color: white;
        }

        input:focus {  /*input框获取焦点(鼠标点了input框)*/
            background-color: red;
        }
    </style>
    
</head>
<body>
<a href="https://www.jd.com/">京东商城</a>
<p>点我点我</p>
<input type="text">
</body>
</html>

6、伪元素选择器

CSS 伪元素用于设置元素指定部分的样式。

例如,它可用于:

  • 设置元素的首字母、首行的样式
  • 在元素的内容之前或之后插入内容
/*可以把第一个变得很大*/
p:first-letter {
    font-size:48px;
    color:orange;
	}

/*在文本开头,用css添加内容,因为是css添加,所以无法选中*/
p:before {
    content: '无坚不摧';
    color: blue;
	}

/*在文本末尾,用css添加内容*/
p:after {
    content: '安如磐石';
    color: orange;
	}

/*before和after通常都是用来清除浮动带来的影响:父标签塌陷的问题*/

7、选择器优先级

"""
id选择器
类选择器
标签选择器
行内式
"""
1.选择器相同 书写顺序不同
就近原则:谁离标签更近就听谁的

2.选择器不同 ...
行内 > id选择器  > 类选择器 > 标签选择器
精确度越高越有效
posted @ 2021-05-10 20:39  黑影Poco  阅读(74)  评论(0)    收藏  举报