CSS知识点整理(一)

CSS基础和选择器

CSS是什么?

css全称是Cascading Style Sheets,层叠样式表,是网页样式的描述语言。

@charset "utf-8"
h1 {
  color: red;
  font-size: 20px;
}
Paste_Image.png

在页面引入css的四种方式:

  1. 内联样式 <h1 style="color: red; font-size: 20px;"></h1>
  2. 内部样式
<style type="text/css">
    h1 {
      color: red;
      font-size: 20px;
}
</style>
  1. 外部样式(一)
<head>
  <link rel="stylesheet" type="text/css" href="index.css">
</head>
  1. 外部样式(二)
<style>
   @import url("index.css");
   @import "demo.css"
</style>

浏览器的默认样式

Paste_Image.png

文件路径

  • 绝对路径:
    是带有盘符的路径:C:\上课内容\上课视频\01html第一天\源代码\1.jpg

  • 相对路径
    由页面是一个文件,图片也是一个文件,而现在需要在页面上输出图片,所以需要得到图片相对于文件的路径。
    1.如果页面与图片在同一目录下面:

    Paste_Image.png

    ![](2.jpg)

    2.如果页面再图片的上一级目录:

Paste_Image.png

![](image/1.jpg)

3.如果图片在页面的上一级目录:

Paste_Image.png

![](../2.jpg)
注意:因为相对路径的可移植性比绝对路径强,所以在实际开发中只要不出意外情况都是用相对路径。

CSS选择器

  • 选择器类型
    1.基础选择器
    2.组合选择器
    3.属性选择器
    4.伪类选择器
    5.伪元素选择器
    基础选择器
选择器 含义
通配符* 通用元素选择器,匹配页面任何元素(这也就决定了我们很少使用)
#id id选择器,匹配特定id元素
.class 类选择器,匹配class包含(不是等于)特定类的元素
element 标签选择器

示例

* {
margin: 0;
padding: 0;
}

#id-selector {
color: #333;
}

.class-selector {
  background: #ccc
}

p {
 font-size: 20px;
}

组合选择器

选择器 含义
E,F 多元素选择器,用,分隔,同时匹配元素E或元素F
E F 后代选择器,用空格分隔,匹配E元素所有的后代(不只是子元素、子元素向下递归)元素F
E>F 子元素选择器,用>分隔,匹配E元素的所有直接子元素
E+F 直接相邻选择器,匹配E元素之后的相邻的同级元素F
E~F 普通相邻选择器(弟弟选择器),匹配E元素之后的同级元素F(无论直接相邻 与否)
.class1.class2 id和class选择器和选择器连写的时候中间没有分隔符,和 #本身充当分隔符的元素 .
element#idt id和class选择器和选择器连写的时候中间没有分隔符,.和 #本身充当分隔符的元素

示例:

  1. 并列选择器
Paste_Image.png

2.后代选择器

Paste_Image.png

3.直接子元素

Paste_Image.png
  1. 直接相邻选择器 E+F
Paste_Image.png

5.普通相邻选择器(弟弟选择器)(图片中.p1后面的所有同级邻居p全都选中了!)

Paste_Image.png

6.element.class2

Paste_Image.png

7..class1.class2

Paste_Image.png

属性选择器

选择器 含义
E[attr] 匹配所有具有属性attr的元素,div[id]就能取到所有有id属性的div
E[attr = value] 匹配属性attr值为value的元素,div[id=test],匹配id=test的div
E[attr ~= value] 匹配所有属性attr具有多个空格分隔、其中一个值等于value的元素
E[attr ^= value] 匹配属性attr的值以value开头的元素
E[attr $= value] 匹配属性attr的值以value结尾的元素
E[attr *= value] 匹配属性attr的值包含value的元素

示例:

1.E[type=text]匹配type属性为text的元素

Paste_Image.png

伪类选择器

选择器 含义
E:first-child 匹配元素E的第一个子元素
E:link 匹配所有未被点击的链接
E:visited 匹配所有已被点击的链接
E:hover 匹配鼠标悬停其上的E元素
E:active 匹配鼠标已经其上按下、还没有释放的E元素
E:focus 匹配获得当前焦点的E元素
E:lang(c) 匹配lang属性等于c的E元素
E:enabled 匹配表单中可用的元素
E:disabled 匹配表单中禁用的元素
E:checkedt 匹配表单中被选中的radio或checkbox元素
E::selection 匹配用户当前选中的元素
E:root 匹配文档的根元素,对于HTML文档,就是HTML元素
E:nth-child(n) 匹配其父元素的第n个子元素,第一个编号为1
E:nth-last-child(n) 匹配其父元素的倒数第n个子元素,第一个编号为1
E:nth-of-type(n) 与:nth-child()作用类似,但是仅匹配使用同种标签的元素
E:nth-last-of-type(n) 与:nth-last-child() 作用类似,但是仅匹配使用同种标签的元素
E:last-child 匹配父元素的最后一个子元素,等同于:nth-last-child(1)
E:first-of-type 匹配父元素下使用同种标签的第一个子元素,等同于:nth-of-type(1)
E:last-of-type 匹配父元素下使用同种标签的最后一个子元素,等同于:nth-last-of-type(1)
E:only-child 匹配父元素下仅有的一个子元素,等同于:first-child:last-child或 :nth-child(1):nth-last-child(1)
E:only-of-type 匹配父元素下使用同种标签的唯一一个子元素,等同于:first-of-type:last-of-type或 :nth-of-type(1):nth-last-of-type(1)
E:empty 匹配一个不包含任何子元素的元素,文本节点也被看作子元素
E:not(selector) 匹配不符合当前选择器的任何元素

注意:a:link、a:visited、a:hover、a:active正确顺序是这样的!
记忆方法:
爱恨原则:love-hate
心理作用:
lv-ha:买了一个lv,心里乐哈哈

有些锚伪类除了可以作用在a标签上还可以作用在其他标签上:
:link 只能用于a标签
:visited 只能用于a标签
:hover 其他标签也可以使用这个伪类
:active 其他标签也可以使用这个伪类

示例:

1.E:first-child

Paste_Image.png
  1. E:first-of-type(父元素下使用同种标签的第一个子元素)
Paste_Image.png
  1. E:nth-of-type(2)[括号中的2代表E元素的父元素下面同种类型标签的第二个标签]
Paste_Image.png

像第三个例子中的2,可以写成数字1,2,3,4,5,6等等。也可以写成2n(偶数),2n+1(奇数),或者4n-1。也可直接用英文even(偶数),odd(奇数)。

伪元素选择器

选择器 含义
E::first-line 匹配E元素内容的第一行
E::first-letter 匹配E元素内容的第一个字母
E::before 在E元素之前插入生成的内容
E::after 在E元素之后插入生成的内容

示例: (这两个示例面试会经常用到)
1.E:before(在E元素之前插入生成的内容)

Paste_Image.png

2.E::after(在E元素内容之后插入生成的内容)

Paste_Image.png

选择器优先级(重点)

CSS优先级从高到低分别是:
1.在属性后面使用!important会覆盖页面内任何位置定义的元素样式
2.作为style属性写在元素标签上的内联样式
3.id选择器
4.类选择器
5.伪类选择器
6.属性选择器
7.标签选择器
8.通配符选择器
9.浏览器自定义

当多个选择器组合以后,我们要比较优先级,就需要计算它们的权重。
算法:
(0,0,0,0)==》第一个0对应的是important的个数,第二个0对应的是id选择器的个数,第三个0对应的是类选择器的个数,第四个0对应的是标签选择器的个数,就是当前选择器的权重。
比较:
先从第一个0开始比较,如果第一个0大,那么说明这个选择器的权重高,如果第一个相同,比较第二个,依次类推。
总结:权重是优先级的算法。
选择器工作的一个原理:
选择器在查找元素的时候是从右往左找!!!

文章著作权归饥人谷_sunny和饥人谷所有,转载须说明来源

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,686评论 1 92
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,463评论 19 139
  • 一:在制作一个Web应用或Web站点的过程中,你是如何考虑他的UI、安全性、高性能、SEO、可维护性以及技术因素的...
    Arno_z阅读 4,997评论 0 1
  • ——送给曾经的初恋,送给曾经的“公主” 在我们每一个人的内心深处,都藏着一个人。每次想起他的时候,会觉得有一点点心...
    耳朵在聆听阅读 3,349评论 0 1
  • 为什么需要做一个被这个世界真正需要的人?怎样才算一个真正被需要的人?有什么衡量的标准吗?要如何做才能成为一个被世界...
    左非阅读 3,865评论 0 1