CSS内容

简介: 名字和值之间是用冒号连接,也不要忘了以分号结尾

第三章 CSS


名字和值之间是用冒号连接,也不要忘了以分号结尾



第四章 CSS语法

/*

​ css中的注释,注释中的内容会自动被浏览器所忽略(ctrl+/ 出注释)

​ css的基本语法:

​ 选择器 声明块

​ 选择器:通过我们的选择器可以选中页面中的指定元素

​ 比如p的作用就是选中页面中所有的p元素

​ 声明块,通过声明块来指定要为元素设置的样式

​ 声明块由一个一个的声明组成

​ 声明是一个名值对结构

​ 一个样式名对应一个样式值,名和值之间以:连接,以;结尾

*/

/*

​ 将所有的段落设置为红色(字体)

​ 元素选择器

​ 作用:根据标签名来选中指定的元素

​ 语法:标签名{ }

​ 例子:p{ } h1{} div{}

*/

/*

p{

​ color:red;

}

h1{

​ color:green;

}

/*

​ id选择器

​ 作用:根据元素的id属性值选中一个元素

​ 语法:#id属性值{}

​ 例子:#box{} #red{}

​ #开头 表示id选择器 (id只能是唯一一个,如果设置了重复的id,那重复的id就变一样的样式,但是这样写是不对的,也只能操作负责一个,这样很容易出现隐患)

*/

/*

​ 类选择器

​ 作用:根据元素的class属性值选中一组元素

​ 语法:.class属性值

​ 例如:.blue{

​ color:blue;

​ }

*/

/*

​ 通配选择器

​ 作用:选中页面中的所有元素

​ 语法:*

*/

第五章 复合选择器

例题:

我是div

我是p元素

/将class为red的元素设置为红色(字体)/

.red{

​ coloe:red;

}

/将class为red的div字体大小设置为30px /

所以我们采取 : div(元素选择器).red(类选择器){

​ font-size:30px;

}

/*

​ 交集选择器

​ 作用:选中同时复合多个条件的元素

​ 语法:选择器1选择器2选择器3选择器n{}

​ 注意点:

​ 交集选择器中如果有元素选择器,必须使用元素选择器开头

*/

.a.b.c (意思是同时满足这三个条件的类选择器) 比如

sdjskdsk

还有一种

​ / div#box1{}/ (表示选中这个div同时这个div的id是box1,不推荐这样写,因为通过box1已经可以确定这个元素的唯一性了,通过box1就可以找到唯一对应的元素,你再加一个div等于多此一举)

/*

​ 选择器分组(并集选择器)

​ 作用:同时选择多个选择器对应的元素

​ 语法:选择器1,选择器2,选择器3,选择器n{} (中间是逗号,意义是即选择了选择器1,也选中选择器2,选择器3)

​ #b1,p1,h1,span,div.red{}

*/

/*

​ 为div的子元素span设置一个字体颜色红色

​ (为div直接包含的span设置一个字体颜色)

​ 子元素选择器

​ 作用:选中指定父元素的指定子元素

​ 语法:父元素>子元素

*/

例如:div > span{

​ color : orange;

​ (只有div内的span可以被选中,div外的span不能被选中,但是有一个弊端,这种方式没有告诉你,你是要哪个div里面的span,如果有好多div,div又套着span,那么这些div里套着的span都会被选中)

}

解决方式:

例如

​ 我是一个div

                    <p>
                        我是div中的p元素
                        <span>我是p元素中的span</span>
                    </p>
                        <span>我是div中的span</span>

        <div>
            <span>我是第二个div里的span</span>
        </div>

这时我们如果要选中第一个div中的span,可以直接写成 div.box > span{}, 这时下面的span就不会被带上了。

/*

​ 后代元素选择器

​ 作用:选中指定元素的指定后代元素

​ 语法:祖先 后代 (中间是空格)

*/

接上面那个例题,如果我们要选中 div中所有的span都变成蓝色,不管是p标签里面的span,还是p标签外面的span都变蓝色怎么选?

直接用后代元素选择器

/*

​ div span {

​ color:blue;

​ (div中所有的后代span元素都被选中)

}

*/

还可以 div > p > span{} (这时就要求我们的span要两个祖先元素,一个父元素是p,p的父元素还得是div,其实就是找div的孙子span,这时的color只有我们里面的span,外面的span就不会被选中)

/*

​ 选择下一个兄弟

​ 语法:前一个 + 下一个

​ 选择下边所有的兄弟 (一定是选择它下边的,它上边的不会被选中)

​ 语法:兄 ~ 弟 (中间是波浪号 )

*/

例如 p + span {

​ color :red;

}

这样写的话是这句话 我是div中的span 变红色了,因为这个选择器是选择下一个兄弟元素,找紧挨它的后面的一个,注意只是下一个,假设下面有很多个兄弟,也只找离他最近的。

假设情况是这样的:

        <p>
            我是div中的p元素
            <span>我是p元素中的span</span>
        </p>
        <div></div>
        <span>我是div中的span</span>
        <span>我是div中的span</span>
        <span>我是div中的span</span>
        <span>我是div中的span</span>

这种情况也找不到,要挨着p的span才能找到,这里中间隔了一个div,span没有紧挨div所以找不到。

/*

​ 属性选择器

​ [属性名]选择含有指定属性的元素

​ [属性名 = 属性值]选择含有指定属性和属性值的元素

​ [属性名 ^= 属性值] 选择属性值以指定值开头的元素

​ [属性名 $= 属性值] 选择属性值以指定值结尾的元素

​ [属性名 *= 属性值] 选择属性值中含有某值的元素的元素

*/

例如: p[title]{

​ color : orange;

}

​ p[title = abc]{

​ color :orange;

}

​ p[title^=abc]{

​ color : orange;

}

​ p[title$=abc]{

​ color : orange;

}

​ 比如 p[title$=helloabc]{

​ color :orange; (因为helloabc也是以abc结尾的,所以可以被选定)

}

​ p[title *= e]{

​ color : orange; (在哪个位置不重要,重要的是那个title里有没有e这个字母)

}



少小离家老大回



乡音无改鬓毛衰



儿童相见不相识



*/

伪类选择器

ul > li 然后按Tab键,就会自动生成一个包含有li的这样一个结构。(根据css选择器,来生成标签)

ul >li*5 然后按Tab键,就会自动生成ul里面有5个li

/*

​ 伪类(不存在的类,特殊的类)

​ -伪类用来描述一个元素的特殊状态

​ 比如:第一个元素,被点击的元素,鼠标移入的元素…………

​ -伪类一般情况下都是使用:开头

​ :first-child 第一个子元素

​ (好处在于不用加任何标识,总是能确保你要选择的是第一个)

​ :last-child 最后一个子元素

​ :nth-child() 选中第n个子元素,想选哪个选哪个

​ 特殊值:

​ n 第n个 n的范围0到正无穷

​ 2n 或 even 表示选中偶数位的元素

​ 2n+1 或 odd 表示的都是选中奇数位的元素

​ -以上这些伪类都是根据所有的子元素进行排序的,不是说你是第一个li,你得是所有元素里的第一个,比如有什么div,什么span,你li都得是它们上面第一个,才算是第一个.

比如

  • ​ 我是一个span

​ 这样的li就不算第一个,因为span在它上面。

还有 :first-of-type 只找同类型中的第一个元素

​ :last-of-type 只找同类型中的最后一个元素

​ :nth-of-type …………

​ -这几个伪类的功能和上述的类似,不同点是它们是在同类型元素中进行排序

​ :not()否定伪类

​ -将符合条件的元素从选择器中去除

​ 比如假设我们要去除第三个

​ 那就是 ul > li:not(:nth-child(3)){ (表示选中所有li,除了第三个,注意child还是大排行,假设前面有别的标签,就从那个标签算起第3个)

​ color : yellow;

}

​ 如果改写为ul > li:not(:first-of-type(3)){ (这是一个小排行 ,那么就会从li标签开始数第三个)

​ color:yellow;

}

*/

比如 ul>li:first-child{

​ color : red;

}

ul>li:last-child{

​ color : red;

}

ul>li:nth-child(2){

​ color : red;

}

::before 和 ::after的定义

⑴::before 创建一个伪元素,作为已选中元素的第一个子元素,常通过 content 属性来为一个元素添加修饰性的内容。

⑵::after 创建一个伪元素,作为已选中元素的最后一个子元素,常通过 content 属性来为一个元素添加修饰性的内容

伪类before 写法 ::before{

​ content : ' ' ;

​ }

伪类after写法 ::after{

​ content:' ' ;

​ }

两种伪类的特点:

1、伪元素before和after的content属性必须填写,可设置为空串;

2、伪元素before和after的content属性中的文本是不能被搜索引擎获取的;

3、伪元素before和after属于行内元素,并可通过设置display属性转换为块元素或者行内块元素;

相关文章
|
5月前
|
XML 前端开发 开发者
css的相关内容
【4月更文挑战第12天】css的相关内容
36 2
|
2月前
|
前端开发
零基础 CSS 入门问题之CSS 代码的一般格式是什么样的
零基础 CSS 入门问题之CSS 代码的一般格式是什么样的
|
2月前
|
前端开发 开发者
几种常见的 CSS 文档应用,快看看你会几种?
几种常见的 CSS 文档应用,快看看你会几种?
|
12月前
|
前端开发
【CSS】CSS文本样式【CSS基础知识详解】
【CSS】CSS文本样式【CSS基础知识详解】
|
12月前
|
机器学习/深度学习 人工智能 前端开发
【CSS】CSS列表【CSS基础知识详解】
【CSS】CSS列表【CSS基础知识详解】
|
前端开发
CSS3内容 部分知识总结
CSS3内容 部分知识总结
|
前端开发
CSS部分内容知识总结
CSS部分内容知识总结
|
前端开发 容器
HTML&CSS Day06 CSS定位布局
HTML&CSS Day06 CSS定位布局
99 0
|
前端开发 Shell 容器
今日的CSS小案例
今日的CSS小案例
118 0
|
前端开发
CSS —— 常用效果(一)(纯 CSS)
CSS —— 常用效果(一)(纯 CSS)