CSS选择器可以分为以下几种:
元素选择器:通过HTML标签名选择元素,如div、p、a等。
类选择器:以点"."开头,后面跟上类名,用于选择具有相同类名的元素,如.nav。
ID选择器:以井号"#"开头,后面跟上id名,用于选择唯一的元素,如#header。
属性选择器:根据元素的属性值来选择元素,如[href="example.com"]。
伪类选择器:用于选择处于特定状态的元素,如:hover、:visited等。
伪元素选择器:用于在元素的某个位置插入特定的内容,如::before、::after等。
子选择器:选择某个元素下的直接子元素,如ul > li。
后代选择器:选择某个元素下的所有后代元素,如ul li。
相邻兄弟选择器:选择与某个元素处于同一级别的、紧随在它后面的元素,如h1 + p。
通用选择器:选择所有元素,用"*"表示。
底层原理是:当浏览器渲染HTML文档时,会按照CSS选择器的规则来匹配文档中的元素。浏览器会从文档的根节点开始,遍历文档中的每一个节点,并对每一个节点进行CSS选择器匹配。当浏览器找到与CSS选择器匹配的元素后,就会对这些元素应用对应的CSS样式。这个过程是基于浏览器的CSS引擎实现的,它会将CSS选择器解析成一组匹配规则,并根据这些规则来匹配文档中的元素。