CSS选择器详解
1、元素选择器
这是最基本的CSS选择器,HTML文档中的元素本身就是一个选择器:
p {line-height:1.5em; margin-bottom:1em;}
2、关系选择器
E F:后代选择器,该选择器定位元素E的后代中所有元素F:
ul li {margin-bottom:0.5em;}
E > F:子选择器,该选择器定位元素E的直接子元素中的所有元素F,它将忽略任何进一步的嵌套:
ul > li {list-style:none;} //仅限ul的直接子元素li,如果li里面还嵌套着另一个 ul 结构时,最里面的 li 将被忽略
E F:相邻兄弟选择器,该选择器定位与元素E具有相同父元素且在标记中紧邻E的元素F:
li li {border-top:1px solid #ddd;} //定位具有相同父元素ul里除第一个li之外的所有li
E ~ F:一般兄弟选择器,该选择器定位与元素E具有相同父元素且在标记中位于E之后的所有元素F:
h1 ~ p {color:#f00;} //定位具有相同父元素的,h1标签之后的所有p标签
3、属性选择器
E[attr]:该选择器定位具有属性attr的任何元素E:
input[required] {border:1px solid #f00;} //定位页面里所有具有必填属性"required"的input
E[attr=val]:该选择器定位具有属性attr且属性值为val的任何元素E:
input[type=password] {border:1px solid #aaa;} //定位页面里的密码输入框
E[attr|=avl]:该选择器定位具有属性attr且属性值为val或以val-开始的任何元素E:
p[class|=a] {color:#333;} //定位页面里所有的P段落里具有class属性且属性值为a或是a-开始的,比如class="a"以及class="a-b"
E[attr~=val]:该选择器定位具有属性attr且属性值为完整单词 val 的任何元素E:
div[title~=english] {color:#f88;} //定位页面里所有具有属性title且属性值里拥有完整单词english的div容器,比如title="english"以及title="a english"
E[attr^=val]:该选择器定位具有属性attr且属性值以val开头的任何元素E:
div[class^=a] {color:#666;} //定位页面里具有属性class且属性值以a开头的div容器,比如class="a"以及class="ab"
E[attr$=val]:该选择器与E[attr^=val]正好相反,定位具有属性attr且属性值以val结尾的任何元素E:
div[class$=a] {color:#f00;} //定位页面里具有属性class且属性值以a结尾的div窗口,比如class="nba"以及class="cba"
E[attr*=val]:该选择器与E[attr~=val]相似,但更进一步,定位具有属性attr且属性值任意位置包含val的元素E,val可以是一个完整的单词,也可以是一个单词中的一部分:
a[title*=link] {text-decoration:underline;} //定位所有title里具有link字符串的a链接
4、伪类
:link:未访问的链接;
:visited:已访问的链接,不建议使用;
:hover:鼠标移动到容器,不仅限于链接,可用于页面中的任何元素;
:active:被激活时的状态,不仅限于链接,可用于任何具有tabindex属性的元素;
:focus:获得焦点时状态,不仅限于链接,可用于任何具有tabindex属性的无线:
input:focus {border:1px solid #333;} //输入框获得焦点时的样式
:enabled:已启用的界面元素:
input:enabled {border:1px solid #899;}
:disabled:已禁用的界面元素:
input:disabled {background:#eee;}
:target:该选择器定位当前活动页面内定位点的目标元素:
#info:target {font-size:24px;} //当访问的URL网址为 123.html#info 时,id="info"将加载这个字体样式
:default:应用于一个或多个作为一组类似元素中的默认元素的UI元素;
:valid:应用于有效元素:
input:valid {border:1px solid #6a6;} //当输入框验证为有效时加载这个边框样式,基于type或pattern属性
:invalid:应用于空的必填元素,以及未能与type或pattern属性所定义的需求相匹配的元素:
input:invalid {border:1px solid #f00;} //当输入框为空且必填时,或已填写但验证无效时,加载此边框样式
:in-range:应用于具有范围限制的元素,其中该值位于限制内;比如具有min和max属性的number和range输入框;
out-of-range:与:in-range选择相反,其中该值在限制范围外;
:required:应用于具有必填属性required的表单控件;
optional:应用于没有必填属性required的所有表单控件
:read-only:应用于其内容无法供用户修改的元素;
:read-write:应用于其内容可供用户修改的元素,比如输入框;
:root:根元素,始终指html元素;
E F:nth-child(n):该选择器定位元素E的第n个子元素的元素F:
div.class p:nth-child(3) {color:#f00;} //class="class"的div容器里的第3个元素p,如果第3个子元素不是p,此样式将失效
E F:nth-last-child(n):该选择器定位元素E的倒数第n个子元素的元素F;
E:nth-of-type(n):该选择器定位元素E的第n个指定类型子元素;
E:nth-lash-of-type(n):该选择器定位元素E的导数第n个指定类型子元素:
.class p:nth-child(2) 与 .class p:nth-of-type(2) 的区别在于,如果.class里的第2个子元素不是P元素时,.class p:nth-child(2) 的样式将无效,而.class p:nth-of-type(2) 将定位在 .class 里的第2个p元素
nth-child(n)、nth-last-child(n)、nth-of-type(n)、nth-last-of-type(n),这其中的 n 可以使用数字静态式,比如 .nth-child(2n 1) 将匹配第1、3、5...个元素
E:first-child:父元素的第一个子元素E,与:nth-child(1)相同;
E:last-child:父元素的倒数第一个子元素E;
E:first-of-type:与:nth-of-type(1)相同;
E:last-of-type:与:nth-last-of-type(1)相同;
E:only-child:父元素中唯一的子元素E;
E:only-of-type:父元素中唯一具有该类型的元素E;
E:empty:没有子元素的元素,没有子元素包括文本节点;
E:lang(en):具有使用双字母缩写(en)表示的语言的元素;
E:not(exception):该选择器将选择与括号内的选择器不匹配的元素:
p:not(.info) {font-size:12px;} //匹配所有class值不为info的p元素
5、伪元素
伪元素可用于定位文档中包含的文本,为与伪类进行区分,伪元素使用双冒号 :: 定义,但单冒号 : 也能被识别。
::first-line:匹配文本首行;
::first-letter:匹配文本首字母;
::before 与 ::after :使用 contnet 属性生成额外的内容并插入在标记中:
a[href^=http]::after {content:"link"} //在页面的a链接的后面插入文字link
::selection:匹配突出显示的文本:
::selection {background:#444; color:#fff;} //定义选中的文本颜色与背景色
当然,如果要方便的使用这些强大的CSS选择器的话,使用Chrome、Firefox之类的浏览器吧,最起码得抛弃IE9以下的IE版本浏览器吧。

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

创建 Bootstrap 分割线有两种方法:使用 标签,可创建水平分割线。使用 CSS border 属性,可创建自定义样式的分割线。

HTML定义网页结构,CSS负责样式和布局,JavaScript赋予动态交互。三者在网页开发中各司其职,共同构建丰富多彩的网站。

在 Vue.js 中使用 Bootstrap 分为五个步骤:安装 Bootstrap。在 main.js 中导入 Bootstrap。直接在模板中使用 Bootstrap 组件。可选:自定义样式。可选:使用插件。

在 Bootstrap 中插入图片有以下几种方法:直接插入图片,使用 HTML 的 img 标签。使用 Bootstrap 图像组件,可以提供响应式图片和更多样式。设置图片大小,使用 img-fluid 类可以使图片自适应。设置边框,使用 img-bordered 类。设置圆角,使用 img-rounded 类。设置阴影,使用 shadow 类。调整图片大小和位置,使用 CSS 样式。使用背景图片,使用 background-image CSS 属性。

要调整 Bootstrap 中元素大小,可以使用尺寸类,具体包括:调整宽度:.col-、.w-、.mw-调整高度:.h-、.min-h-、.max-h-

要设置 Bootstrap 框架,需要按照以下步骤:1. 通过 CDN 引用 Bootstrap 文件;2. 下载文件并将其托管在自己的服务器上;3. 在 HTML 中包含 Bootstrap 文件;4. 根据需要编译 Sass/Less;5. 导入定制文件(可选)。设置完成后,即可使用 Bootstrap 的网格系统、组件和样式创建响应式网站和应用程序。

如何使用 Bootstrap 按钮?引入 Bootstrap CSS创建按钮元素并添加 Bootstrap 按钮类添加按钮文本

答案:可以使用 Bootstrap 的日期选择器组件在页面中查看日期。步骤:引入 Bootstrap 框架。在 HTML 中创建日期选择器输入框。Bootstrap 将自动为选择器添加样式。使用 JavaScript 获取选定的日期。
