CSS选择器的分类与应用

一.概述

       计算机前端分为HTML,CSS,JavaScript。前端工程相当于造房子,HTML是利用许多的标签把大的空间划分为一个个小的独立的空间。CSS相当于做装修的。HTML与CSS两个组成一个静态的不与人交互的房子。JavaScript是做交互的,分为效果交互与数据交互。(数据交互JavaScript自己做太难,所以需要jQuery。jQuery是一个JavaScript库,把JavaScript的方法进行封装)层叠样式单:加样式

        CSS是层叠样式单,它的作用是加样式。CSS又分为选择器 :选择哪些元素来加样式; 盒子模型:元素本身特性:内联级元素,块级元素,弹性盒子;布局:横着布局(用float,内联块级元素布局,弹性盒子布局),竖着布局(用div标签)。CSS有各种样式。下面我们先说CSS选择器的分类与应用。

二.选择器样式的分类

1.内部样式

  在当前html文件上的<head></head>加style标签来写样式

     <style>

        div {

            color:pink;

            background:white;



        }

        p {

            color:pink;

            background:white;

        }

    </style>

2.外部样式

     单独建一个css文件,利用link进行关联来写样式 

     link这个语句写在<head></head>里

 <link rel="stylesheet" href="css/css选择器.css">

3.行内样式

    一行一行的写

 <div style="color: red;background:yellow"></div> 

 三.三种样式优先级的比较

        行内样式优先级最高    外部样式=内部样式,谁在下面执行谁

四.选择器外部样式的基本格式

  选择器 {

    属性:值;

    属性1:值1;

​
 div {
     color:pink;
     background:yellow;
}

​

五. 选择器外部样式的分类 

 一.基本选择器 

1.元素选择器 :用元素名称做选择

 div {

    color:pink;

    background:yellow;

} 

特例:选择所有元素用  

   * {

    color:pink;

    background:yellow;

} 

2. 属性选择器

什么属性都可以,class,aaa,id,bbb

div[id] 有id属性的div元素

div[id=xx] 有id属性,且id属性值为xx的div元素

div[id*=xx] 有id属性,且id属性值包含xx的div元素

div[id^=xx] 有id属性,且id属性值以xx开头的div元素

div[id$=xx] 有id属性,且id属性值以xx结尾的div元素

  div[id] {

    color:pink;

    background:yellow;

} 

div[id=xx] {

    color:pink;

    background:yellow;

} 

3.id选择器

 #后跟id的值

#xx{

    color:pink;

    background:yellow;

}

4.class选择器

 /* .后跟class的值 */

特例:结合选择器 

/* 既是p标签的,又是class值为xx的 */

p.xx{

    color:pink;

    background:yellow;

}

5.包含选择器 selector1 selector2 

/* div下的所有p标签 用空格 强调包含 div的子孙后代 */

div p{

    color:pink;

    background:yellow;

}

 6.子选择器  selector1>selector2 

/* 只强调父子关系 */

div>p{

    color:pink;

    background:yellow;

}

7.兄弟选择器  selector1~selector2

/* class用.cc表示  以下表示class值为cc的之后的li标签*/

.cc~li{

    color:pink;

    background:yellow;

}

/* 找之后所有的标签 */

.cc~*{

    color:pink;

    background:yellow;

}

 8.选择器组合 selector1,selector2,selector3

/* 有限且样式重复 用选择器组合 */

/* 而 * 都会选择,包括背景 */

p,
div a,
span{

    color:pink;

    background:yellow;

}

 二.伪元素选择器 

1.首字母

  只给首字母加样式

  /* div::first-letter只能用于块级元素,即竖着分布的元素 div标签 h标签 */

div::first-letter{

    color:pink;

    font-size: 30px;

    background:yellow;

}

2.首行

/* div::first-line只能用于块级元素,即竖着分布的元素 div标签 h标签*/

div::first-line{

   /* 单词裂开 */

    word-break: break-all;

    color:pink;

    font-size: 30px;

    background:yellow;

}

3.在前边插入

/*  ::before   样式也是给前面加入的东西加上的,html里没有,但页面有  */

 div::before{

    content:"aaaa";

    color:pink;

    font-size: 30px;

    background:yellow;

}

 4.在后边插入

/*  ::after */

 div::after{

    content:"aaaa";

    color:pink;

    font-size: 30px;

    background:yellow;

}

 三.伪类选择器 

1.结构型伪类选择器

    :nth-child()

        只认数字,如果类型刚好符合,则被选中,否则无效果

        括号里可以是数字n n从1开始

        可以是英文单词  odd为奇数 even为偶数

        括号里可以是表达式  5n+2 n从0开始

        找第一个:nth-child(1)  与first-child等价

        找最后一个:last-child  与 nth-last-child(1)等价

        倒着数:nth-last-child()

    :nth-of-type()

        既认数字也认类型,找同类型的第n个元素

        括号里可以是数字n n从1开始

        可以是英文单词  odd为奇数 even为偶数

        括号里可以是表达式  5n+2 n从0开始

        找第一个:first-of-type 与nth-of-type(1)等价

        找最后一个:last-of-type 与 nth-last-of-type(1)等价

        倒着数:nth-last-of-type()

ul li:nth-last-of-type(3n+2){

    color:pink;

    font-size: 30px;

    background:yellow;

}

 2.ui状态伪类选择器 

        :hover 鼠标悬停状态 鼠标在上面,但没有点击所呈现状态

        :focus 焦点状态  鼠标已点击所呈现状态

        :checked 选中状态 对于复选框

ul li:hover{

    color:pink;

    background:yellow;

}

/* 对于输入框或复选框用input */

input:checked{

    /* 加阴影 阴影的水平偏移量  阴影的垂直偏移量  阴影的模糊度  阴影的颜色*/

    box-shadow: 3px 3px 3px red;

}

3.其它伪类选择器 

 not() 排除括号里的剩下加状态 ()括号里填标签所赋予的class值,例如.Java  .php 

ul li:not(.java):not(php){

    color:pink;

    background:yellow;

}  

六.选择器的优先规则

  1.选择器写的越长(越准确),优先级越高

 2.优先级高低:id选择器>class选择器>元素选择器

 3.同级别长度下,css代码按顺序执行,后边的效果会把前边的覆盖掉

  4.终极规则:以上规则适用大部分场景特殊场景不适用,自行测试