一、初始CSS
1.1、介绍CSS
1、CSS定义如何显示HTML元素。
2、当浏览器读到一个样式表,他就会按照这个样式表来对文档进行格式化(渲染)。
1.2、CSS语法
每个CSS样式由两个组成部分:选择器和声明。声明又包括属性和属性值。每个声明之后用分号结束。
1.3、CSS注释
/*#p1 {color: green;}*/ /*注释*/ /*注释是代码之母*/
二、CSS的几种引入方式
2.1、行内样式
行内式是在标记的style属性中设定CSS样式。不推荐大规模使用。
<p style="color: red;">我是一个p标签!</p>
2.2、内部样式
嵌入式是将CSS样式集中写在网页的<head></head>标签对的<style></style>标签对中。格式如下:
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <title>Title</title> <style> p {color: aqua} </style> </head>
2.3、外部样式
外部样式就是将CSS写在一个单独的文件中,然后在页面进行引入即可。推荐使用此方式。
/*第一步:创建CSS文件*/ /*第二部:在<head></head>中写入*/ <link rel="stylesheet" href="基本的样式.css"> /*文件名*/
三、CSS选择器
3.1、基本选择器
1、元素选择器
p {color: aqua}
2、ID选择器
#p1 { color: green; } /*id='p1',#表示ID*/
3、类选择器
.c1 {color: yellow} /*在style中写入*/ /*首先要写入相同属性*/ <span class="c1">我是span标签</span> <p class="c1">我是p标签</p> <i class="c1">我是i标签</i>
/*有c1这个class的p标签*/
p.c1 {color: antiquewhite}
4、通用选择器
* {color: aquamarine}
3.2、组合选择器
1、儿子选择器
/*找儿子标签:找li的儿子a的标签*/ li>a {color: green} <ul> <li><a href="">手机</a></li> <li><a href="">电脑</a></li> <li><a href="">爆米花</a></li> </ul>
2、后代选择器
/*子子孙孙中找标签*/ #p1 p {color: blue} <div id="p1"> <div> <div> <p>我是一个p标签</p> </div> </div><p>我是一个p标签</p> </div>
3、毗邻选择器
/*毗邻选择器:找下面紧挨着的*/ div+p {color: yellow} <p>div上面的p</p> <div>div</div> <p>div下面的p</p>
4、弟弟选择器
/*弟弟选择器:同级往下面找*/ #d2~* {color: pink} <div id="d2">d2</div> <p>d2下面的p</p> <a href="">哈哈</a> <p>p标签</p>
3.3、属性选择器
<style> /*找到所有有qs这个属性的标签*/ div[qs] {color: green} /*找到所有有qs属性值是nb2的标签*/ div[qs='nb2'] {color: yellow} </style> <div id="d1" class="c1" qs="nb">骑士计划!</div> <div qs="nb2">骑士计划!</div> <div>只要python学得好,媳妇年年在高考</div>
3.4、分组和嵌套
1、分组
当多个元素的样式相同的时候,我们没有必要重复地为每个元素都设置样式,我们可以通过在多个选择期之间使用,用逗号分隔的分组选择器来统一设置元素样式。
<style> div, p {color: blueviolet} </style> <div>我是div标签!</div> <p>我是p标签!</p>
2、嵌套
多个选择器可以混合起来使用,比如:.c1类内部所有p标签设置字体颜色为红色。
<style> .c1 p {color: blue} </style> <div class="c1"> <div> <i>我是i标签</i> <p> 我是p1标签 </p> </div> <p>我是p标签!</p> </div>
3.5、伪类选择器
<style> /*未访问过的链接,设置为:粉红色*/ a:link { color: pink; } /*访问过的链接,设置为:蓝色*/ a:visited { color: blue; } /*鼠标指向瞬间,链接变成紫色*/ a:hover { color: blueviolet; } /*鼠标选定链接瞬间,链接变成黄色*/ a:active{ color: yellow; } /*input输入框获取焦点时样式*/ input:focus { outline: none; background-color: aqua; } </style> <a href="https://www.luffycity.com">路飞学城</a> <a href="http://www.4399.com">4399</a> <a href="https://www.baidu.com">百度</a> <a href="https://www.flnet.com/">富连网</a> <a href="http://www.qq.com">QQ</a> <input type="text">
3.6、伪元素选择器
<style> /*首字母设置*/ p:first-letter { font-size: 48px; color: aqua; } /*在每个p元素之前插入内容*/ p:before { content:"#"; color: red; } /*在每个<p>元素之后插入内容*/ p:after { content: '[/]'; color: red; } </style> <p>我是p标签</p> <div>我是div标签</div> <i>我是i标签</i>
3.7、选择器的优先级
1、继承是CSS的一个主要特征。例如一个body定义了的字体颜色值也会应用到段落的文本中。
body { color: red; }
可以通过对应的标签设置字体颜色就可以覆盖掉它继承的样式。
p { color: green; }
2、选择器的优先级
按照不同选择器的权重来决定的,具体的选择如下:
除此之外还可以通过添加 !important 方式来强制让样式生效,但并不推荐使用。因为如果过多使用会导致样式混乱,不易维护。
2.2不讲道理的 !important
p {color: red !important} <p style="color: aqua">我是p标签</p> <div>我是div标签</div> <i>我是i标签</i>