CSS选择器

1、标签选择器

body {text-align: center}

上例直接使用HTML标签的选择器,就是标签选择器,元素选择器。
注意,如果将标签改为*,表示统配所有HTML标签。

* {color:red}

2、id选择器(用#)

id指的是HTML标签内的属性id,例如<div id="menu">

通过对单独的id设置样式

#menu {
    background-color: #FFF;
   	/* background-color 背景色*/
    width: 100%;
    /*width 背景色的宽度*/
    border-bottom: #f0f0f0 solid 1px;
    /* border是边框 border-bottom 是下边框 后接颜色 宽度 线的类型 */
    margin: 0px 0px 5px 0px;
    /* 外边框 上左下右距离 */
}

3、类选择器 (用.)

类,指的是标签中的class属性,例如<div class='main center'>

一个标签可以有多个类

.center {
    width: 80%;
    margin: auto;
}

4、选择器分组

分组的选择就可以使用同样的样式声明

h1,h2,h3,h4,h5,#nemu,.detail {
    color: green;
}
h1{
    font-size: 10px;
}

5、层次选择器

5.1、后代选择器

所有div标签下所有li标签

div li {
    display: inline;
}

idmenudiv标签下所有li

div#menu li {
    display: inline;
}

idmenu的所有标签下的所有li标签

#menu li {
            display: inline-block;
    		/* 展示效果为块内联*/
            text-align: center;
    		/*块内文本居中*/
            width: 33%;
    		/* 块宽度为父标签的33% */
        }

5.2、子选择器

所有ul标签下直接的子元素li标签

ul > li {
    display: inline;
}

所有idmenudiv标签下所有ul标签的直接子标签li

div#menu ul > li {
    display: inline;
}

5.3、相邻兄弟选择器

detail类的div标签下的所有p标签的紧挨着的亲兄弟p标签

div.detail p + p {
    color: green;
}

6、伪类 pseudo-classes

伪类能增加样式,类似于class
锚伪类,链接标签a的四种状态

/*未访问的链接*/
a:link {
    color: red;
    text-decoration: none;
    /*关闭文本修饰*/
}
        
/*鼠标移动到连接上*/
a:hover {
    color: black;
    text-decoration: underline;
    /* 下划线 */
}

a:visited {color: green}    /* 已访问的链接 */
a:active {color: black} /* 选定的链接 */

伪类可以和css类配合使用

/*标签后跟类*/
a.red:visited {color: #FF0000}
a:hover {
    color: red;
}
a {
    color: chartreuse;
    text-decoration: none;
}
<a class="red" href="css_syntax.asp">CSS Syntax</a>

注意,伪类和前面部分中间不要有空格。

7、伪元素pseudo-element

伪元素能增加元素
::before::after 可以在元素前后插入内容。通常使用一个content属性为元素增加一个修饰性内容

/*在前面*/
#homepage::before {
    content: "♥";
}
/*在后面*/        
#homepage::after {
    content: "¶";
}
/*后面插入一个图片*/
#homepage::after {
    content: url(img/log.png);
}

单冒号只是为了兼容旧语法。

8、属性选择器

格式 说明 范例
E [ attr ] 具有某属性 [title]{color:red}
E [ attr = value ] 具有某属性且等于value [class="main center"]{color:red}
E [ attr ~= value ] 具有某属性且属性值中的一个是value [class~="center"]{color:red}
E [ attr |= value ] 具有某属性且属性值使用了-,且-之前的部分是value的才匹配
*[class|="main"]能和<div class='main-center'>减号之前的部分匹配
[class|="main"]

CSS选择器总结

https://www.w3school.com.cn/cssref/css_selectors.asp

选择器 例子 例子描述
.*class* .intro 选择 class="intro" 的所有元素。
.class1.class2 .name1.name2 选择 class 属性中同时有 name1 和 name2 的所有元素。
.class1 .class2 .name1 .name2 选择作为类名 name1 元素后代的所有类名 name2 元素。
#id #firstname 选择 id="firstname" 的元素。
* * 选择所有元素。
element p 选择所有 <p> 元素。
element.class p.intro 选择 class="intro" 的所有 <p> 元素。
element,element div, p 选择所有 <div> 元素和所有 <p> 元素。
element element div p 选择 <div> 元素内的所有 <p> 元素。
element>element div > p 选择父元素是 <div> 的所有 <p> 元素。
element+element div + p 选择紧跟 <div> 元素的首个 <p> 元素。
element1~element2 p ~ ul 选择前面有 <p> 元素的每个 <ul> 元素。
[attribute] [target] 选择带有 target 属性的所有元素。
[attribute=value] [target=_blank] 选择带有 target="_blank" 属性的所有元素。
[attribute~=value] [title~=flower] 选择 title 属性包含单词 "flower" 的所有元素。
[attribute|=value] [lang|=en] 选择 lang 属性值以 "en" 开头的所有元素。
[attribute^=value] a[href^="https"] 选择其 src 属性值以 "https" 开头的每个 <a> 元素。
[attribute$=value] a[href$=".pdf"] 选择其 src 属性以 ".pdf" 结尾的所有 <a> 元素。
[attribute*=value] a[href*="w3schools"] 选择其 href 属性值中包含 "abc" 子串的每个 <a> 元素。
:active a:active 选择活动链接。
:after p:after 在每个 <p> 的内容之后插入内容。
:before p:before 在每个 <p> 的内容之前插入内容。
:checked input:checked 选择每个被选中的 <input> 元素。
:default input:default 选择默认的 <input> 元素。
:disabled input:disabled 选择每个被禁用的 <input> 元素。
:empty p:empty 选择没有子元素的每个 <p> 元素(包括文本节点)。
:enabled input:enabled 选择每个启用的 <input> 元素。
:first-child p:first-child 选择属于父元素的第一个子元素为<p>标签的元素。
:first-letter p:first-letter 选择每个 <p> 元素的首字母。
:first-line p:first-line 选择每个 <p> 元素的首行。
:first-of-type p:first-of-type 选择属于其父元素的首个为<p>标签的元素。
:focus input:focus 选择获得焦点的 input 元素。
:fullscreen :fullscreen 选择处于全屏模式的元素。
:hover a:hover 选择鼠标指针位于其上的链接。
:in-range input:in-range 选择其值在指定范围内的 input 元素。
:indeterminate input:indeterminate 选择处于不确定状态的 input 元素。
:invalid input:invalid 选择具有无效值的所有 input 元素。
:lang(language) p:lang(it) 选择 lang 属性等于 "it"(意大利)为 <p>标签的元素。
:last-child p:last-child 选择属于其父元素最后一个子元素为 <p>标签的元素。
:last-of-type p:last-of-type 选择属于其父元素的最后一个 <p>标签的元素。
:link a:link 选择所有未访问过的链接。
:not(selector) :not(p) 选择非 <p> 元素的每个元素。
:nth-child(n) p:nth-child(2) 选择属于其父元素的第二个子元素为 <p>标签的元素。
:nth-last-child(n) p:nth-last-child(2) 同上,从最后一个子元素开始计数。
:nth-of-type(n) p:nth-of-type(2) 选择属于其父元素第二个为<p> 标签的元素。
:nth-last-of-type(n) p:nth-last-of-type(2) 同上,但是从最后一个子元素开始计数。
:only-of-type p:only-of-type 选择属于其父元素唯一为<p> 标签的元素。不唯一则无法选择
:only-child p:only-child 选择属于其父元素的唯一子元素为<p> 标签的元素。不唯一则无法选择。
:optional input:optional 选择不带 "required" 属性的 input 元素。
:out-of-range input:out-of-range 选择值超出指定范围的 input 元素。
::placeholder input::placeholder 选择已规定 "placeholder" 属性的 input 元素。
:read-only input:read-only 选择已规定 "readonly" 属性的 input 元素。
:read-write input:read-write 选择未规定 "readonly" 属性的 input 元素。
:required input:required 选择已规定 "required" 属性的 input 元素。
:root :root 选择文档的根元素。
::selection ::selection 选择用户已选取的元素部分。
:target #news:target 选择当前活动的 #news 元素。
:valid input:valid 选择带有有效值的所有 input 元素。
:visited a:visited 选择所有已访问的链接。
posted @ 2023-11-09 17:51  厚礼蝎  阅读(12)  评论(0编辑  收藏  举报