CSS基础——选择器
CSS
-
CSS的基础
-
CSS定义
CSS全称为Cascading Style Sheet,中文翻译为“层叠样式表”。
-
CSS的作用
简单地来讲,CSS 能对你制作的网页进行布局、颜色、背景、宽度、高度、字体进行控制,让网页按您的美工设计布局的更加美观漂亮。 样式是用来控制页面外观、设置元素对象属性的工具,使用样式可使页面产生各种特殊的效果。
-
CSS的语法
-
基本格式:
<head> <meta charset="UTF-8"> <title>DOC</title> <style type="text/css"> /*样式表内容*/ </style> </head>
-
-
-
样式代码存在的位置
-
直接写在标签内
<p style="color: red"> 你好.... </p>
-
在head标签内写在style标签内
<head> <meta charset="UTF-8"> <title>DOC</title> <style type="text/css"> /*样式表内容*/ </style> </head> <body> <!--body内容--> </body>
-
写在独立的CSS文件中,通过link标签引入
<head> <link rel="stylesheet" href="css文件路径"> </head>
-
-
CSS选择器(定义如何在HTML中找标签)
1. 基本选择器
-
ID选择器
- 作用:通过标签id选择标签
<style> #ID {属性名: 属性} </style>
- 特点:
1、一个 ID 选择器在一个页面只能使用一次。如果使用2次或者2次以上,不符合 w3c 规范,JS 调用会出问题。
2、一个标签只能使用一个 ID 选择器。
3.一个标签可以同时使用类选择器和 ID 选择器。
-
元素选择器
- 作用:通过标签类型选择标签
<style> 标签名 {属性名: 属性} </style>
-
类选择器
- 作用:通过定义class属性选择标签
<style> .class {属性名:属性} </style> 或者 <style> 标签类型.class {属性名:属性} </style>
-
PS:
1、谁调用,谁生效。
2、一个标签可以调用多个类选择器。多个标签可以调用同一个类选择器。 -
类选择器命名规则
- 不能用纯数字或者数字开头来定义类名;
- 不能使用特殊符号或者特殊符号开头(_ 除外)来定义类名;
- 不建议使用汉字来定义类名;
- 不推荐使用属性或者属性的值来定义类名。
-
类选择器常用的命名
-
通配符选择器
- 格式:
× {属性名: 属性值}
- 作用:匹配所以类型的元素
- 格式:
2.组合选择器
-
定义:两个或者两个以上的的基础选择器通过不同方式连接在一起
-
交集选择器
-
格式:
标签类(ID)选择器 {属性: 属性值;}
-
特点:既要满足使用某个标签,还要满足使用了类选择器或者ID选择器。
例子: <head> <style> div.box{ color: red; } div#d1{ width: 400px; height: 300px; backgroud-color: red; } </style> </head>
-
-
后代选择器
-
格式:
选择器 选择器 {属性: 属性值;}
-
使用条件:
- 后代选择器首选选择器要满足包含(嵌套)关系;
- 父级元素在前面,子集元素在后面。
-
特点:无限制隔代。(多层嵌套全部生效)
<head> <style> div span{ font-size: 42px; } .box span{ color: red; } </style> </head> <body> <div> <p class="box"> <span>我是div标签的孙子级的标签</span> </p> </div> <div><span>我是div标签的子级标签</span></div> </body>
PS:只要是标签选择器,ID选择器,类选择器就可以自由组合
-
-
子代选择器
-
格式:
选择器>选择器 {属性: 属性值}
-
原则:只会选中子集的元素,下下级的元素不会选中
<head> <style> div>span{ font-size: 42px; } </style> </head> <body> <div> <span>选中我</span> <p> <span>选不中我</span> </p> </div> </body>
-
-
毗邻选择器
-
格式:
选择器1+选择器2{属性: 属性值}
-
作用:选择所以紧接着选择器1之后的选择器2元素
<head> <style> div+span{ font-size: 42px } </style> </head> <body> <div> <span>不能找到我</span> </div> <span>可以找到我</span> <span>不可以找到我</span> </body>
-
-
后续选择器
-
格式:
选择器1~选择器2{属性: 属性值}
-
作用:选中选择器1后的所有选择器2的元素
<head> <style> div~span{ font-size: 42px } </style> </head> <body> <div> <span>不能找到我</span> </div> <span>可以找到我</span> <span>可以找到我</span> </body>
-
-
并集选择器
-
格式:
选择器, 选择器, 选择器{属性: 属性值;}
-
原则:并集选择器应用于多个选择器找到的标签应用相同的样式时,为了避免重复写到一起
<head> <style> .a,#d1,div,h2{ font-size: 24px color: #ffffff } </style> </head>
-
-
PS:
×
为通配符选择器,也就是可以选中所有元素
3.属性选择器
<!-- 通过属性或者属性值找到标签 --> <style> div[属性] {color: red} or div[属性=属性值] {color: red} </style>
- PS:不常用的属性选择器:
<head> <style> /*找到所有title属性以hello开头的元素*/ [title^="hello"] { color: red; } /*找到所有title属性以hello结尾的元素*/ [title$="hello"] { color: yellow; } /*找到所有title属性中包含(字符串包含)hello的元素*/ [title*="hello"] { color: red; } /*找到所有title属性(有多个值或值以空格分割)中有一个值为hello的元素:*/ [title~="hello"] { color: green; } </style> </head>
4.伪类选择器
-
-
状态:同一个标签在不同时刻会有不同状态
/*未访问的链接*/ a:link { color: red; } /*已经访问的链接*/ a:visited { color: blue; } /*鼠标移动到链接上*/ a:hover { color: #FF00FF; } /*选定的链接,就是在鼠标点击的时候*/ a:active { color: pink; } /*input输入框获取焦点时的样式*/ input:focus { outline: none backgroud-color: #eee }
5.伪元素选择器
使用CSS生成一个新的标签属性
-
设置标签内容的首个字的形式
firist-letter
p:first-letter { font-size: 48px; color: red; }
-
在标签内容的开头加入新的内容
before
p:before { content:"*"; color:red; }
-
在标签内容的结尾加入新的内容
after
p:after { content:"[?]"; color:blue; }
PS:before and after
常用于清除浮动。
6.选择器的优先级
- 原则一:选择器相同时,谁最后加载就变成什么样子。
- 原则二:选择器不同的时候,按照权重选择。
- PS1:各个选择器的权重:内联选择器权重最高>id选择器权重次之>类选择器权重第三>元素选择器最低
- 原则三:权重选择器永不进位。
- PS2:紧急情况样式的修改使用:
样式!inportant;
,不到最后不使用,因为破坏逻辑,使得这个样式始终显示。