CCS选择器 选择器优先级 选择器常见属性

CSS前戏

主要用来调节html标签的各种样式

"""
思考:页面都是由HTML构成的 并且页面上有很多相同的HTML标签 但是相同的HTML标签在不同的位置可能有不同的样式 我们如何区分标签

标签的两大重要属性>>>:区分标签
	1.class属性
		分门别类 主要用于批量查找	
	2.id属性
		精确查找 主要用于点对点

学习css的流程
	1.先学习如何查找标签
	2.再学习如何调整样式
	
	css注释语法
	/*注释内容*/
"""

1.css语法结构

每个CSS样式由两个组成部分:选择器和声明。声明又包括属性和属性值。每个声明之后用分号结束。

选择器 {
    	样式名1:样式值1;
    	样式名2:样式值2
}

image

2.css注释语法

/*注释内容*/

3.引入css的多种方式

1.head内style标签内部编写(学习的时候使用)
<p style="color: red">Hello world.</p>
2.head内link标签引入(标准的方式)
<link href="mystyle.css" rel="stylesheet" type="text/css"/>
3.标签内部通过style属性直接编写(不推荐)

<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        p{
            background-color: #2b99ff;
        }
    </style>
</head>

4.@import外部引入
image

CSS基本选择器

1.标签选择器

直接按照标签名查找标签

    	div {
                color: red;
            }
	<div>cloud</div>

2.类选择器

按照标签的class值查找标签

    	.c1 {
            color: green;
        }
	<p class="c1">cloud</p>

3.id选择器

根据标签的id之精准查找标签

    	#d1 {
            color: yellow;
        }
	<p id="c1">cloud</p>

4.通用选择器

直接选择页面所有的标签

    	* {
            color:blue;
        }

CSS组合选择器

使用各种连接符将基本CSS进行组合 就产生了CCS组合选择器
用家族关系来描述CSS嵌套层级

示例:
	<p>ppp</p>
        <p>ppp</p>
        <div>div
            <p>div p</p>
            <div>div div
                <p>div div p
                    <span>div div p span</span>
                </p>
            </div>
            <span>div span</span>
        </div>
        <p>ppp</p>
        <span>span span</span>

<!-- 
针对标签的上下层级以及嵌套有另外的说法
        父标签 后代标签 子标签 弟弟标签 哥哥标签 祖先标签
我们选定一个标签 那他同级上面的标签为哥标签,同级下面的标签为弟标签。
-->

image

1.后代选择器(空格)

查找div里的 所有后代span 也就是查找到最深的嵌套层级

    div span {
            color: red;
        }

2.儿子选择器 >

查找div里第一层级的span 区分好儿标签和孙标签!

    div>span {
            color: yellow;
        }

3.毗邻选择器 +

查找div下面紧挨着他的span 只找一个
查找不到就失效

    div+span {
            color: yellow;
        }

4.弟弟选择器 ~

查找div下面同级别所有span 可以找多个

    div~span {
            color: yellow;
        }

分组和嵌套

分组 div,p,span

多个选择器合并查找 彼此之间是独立的
是为了简化代码 而产生的写法

div,p,span {  # 多个选择器合并查找
        color: yellow;
    }
#d1,.c1,span {
        color: green;
    }

嵌套

满足多个条件的标签才能被查找到。注意和CSS组合选择器有所区分!!这中间是没有连接符的 ! !
注意不能这样:divp 要么这样div p 要么这样div .c1

div.c1 {  查找class含有c1的div
        color: red;
    }
div#d1 {  查找id是d1的div
        color: red;
    }
.c1 p.c2 {  查找含有c1样式值里面的含有c2样式值的p标签 组合 + 嵌套
       color: antiquewhite; 
    }

属性选择器 [username]

[username] {	按照属性名查找
    color: red;
}

[username='jason'] {  按照属性名等于属性值
    color: yellow;
}

div[username='jason'] {  
    color: darkcyan;
}

伪类选择器 a:link hover active visited input:focus

选择处于某种特殊状态的元素,根据状态选择标签

"""a标签补充说明 针对没有点击过的网址 默认是蓝色 点击过的则为紫色

通过伪类选择器可以修改a标签各种不同状态下的颜色:
没点过link 悬停hover 点下去不松开active 已经访问过的标签visited """

举例1:当悬停在a标签上 a标签变成桔色:
 a:hover {
        color: orange;
    }
	
举例2:设定input获取焦点(被点击)之后采用的样式
input:focus { 
  background-color: red;	
}

伪元素选择器 :before

主要用于向指定的选择器添加指定的效果。
伪元素选择器可以帮助我们利用CSS创建新标签元素,而不需要HTML标签,从而简化HTML结构。


			p:first-letter {
				font-size: 48px;
				color: red;
			}
			p:before {		css添加文本无法正常选中
				content: '嘿嘿嘿';
				color: blue;
			}
			p:after {		css添加文本无法正常选中
				content: '呵呵呵';
				color: red;
			}
			

image
来自菜鸟教程的总结:

伪类选择元素基于的是当前元素处于的状态,或者说元素当前所具有的特性,而不是元素的id、class、属性等静态的标志。由于状态是动态变化的,所以一个元素达到一个特定状态时,它可能得到一个伪类的样式;当状态改变时,它又会失去这个样式。由此可以看出,它的功能和class有些类似,但它是基于文档之外的抽象,所以叫伪类。

与伪类针对特殊状态的元素不同的是,伪元素是对元素中的特定内容进行操作,它所操作的层次比伪类更深了一层,也因此它的动态性比伪类要低得多。实际上,设计伪元素的目的就是去选取诸如元素内容第一个字(母)、第一行,选取某些内容前面或后面这种普通的选择器无法完成的工作。它控制的内容实际上和元素是相同的,但是它本身只是基于元素的抽象,并不存在于文档中,所以叫伪元素。

选择器优先级

继承是CSS的一个主要特征,它是依赖于祖先-后代的关系的。继承是一种机制,它允许样式不仅可以应用于某个特定的元素,还可以应用于它的后代。例如一个body定义了的字体颜色值也会应用到段落的文本中。
此时页面上所有标签都会继承body的字体颜色。然而CSS继承性的权重是非常低的,是比普通元素的权重还要低的0。
我们只要给对应的标签设置字体颜色就可覆盖掉它继承的样式

1.选择器相同 导入方式不同
	就近原则
2.选择器不同 导入方式相同
	内联样式1000 > id选择器100> 类选择器10 > 标签选择器1 > 继承0

image

image
附一张经典图片:
image

CSS样式条件 常见属性

字体样式 font text

font-size:14px 24px 28px 36px  字体代码
font-weight: lighter;          字体粗细
text-align: center		文本居中
text-decoration: none;  主要用于a标签取消下划线
text-indent: 32px;		首行缩进

颜色 color

使用取色器工具可获得rgb颜色

color:三种模式
    color: red;
    color: #3d3d3d;
    color: rgb(186,11,98);
    color: rgba(186,11,98,0.5) 最后一个参数还可以控制透明度 0~1

背景属性 background

注意color是定义标签内容的颜色
background是定义标签下背景的颜色

div {
        width: 800px;  # 设置div块宽 px的意思是像素
        height: 800px;  # 设置div块高
        background-color: red;  # 背景颜色
        background-image: url("https://img2.baidu.com/it/u=167083063");  # 将图片作为背景
        background-image: url("666.png");  # 用本地的图片作为背景
        background-repeat: no-repeat;  # 背景图像不会重复
        background-repeat: repeat-x;  # 背景图像向水平方向重复
        background-repeat: repeat-y;  # 背景图像向垂直方向重复
        background-position: center center # 设置背景图像的起始位置;
        background: url("666.png") blue no-repeat center center; 
	# 当多个属性名有相同的前缀 那么可以简写一次性完成
    }
posted @ 2022-12-01 21:18  passion2021  阅读(165)  评论(0编辑  收藏  举报