我的编程空间,编程开发者的网络收藏夹
学习永远不晚

怎么使用CSS属性选择器来拼接HTML的DNA

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

怎么使用CSS属性选择器来拼接HTML的DNA

这篇文章主要介绍了怎么使用CSS属性选择器来拼接HTML的DNA,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

CSS属性选择器非常神奇,它们可以帮你避免添加数不胜数的类名,从另一方面来指出你代码里的一些问题。但是大家不用慌,虽然属性选择器复杂且强大,但是很易于学习和使用。在这篇文章,我们将讨论它们是如何运行起来的,再教大家一些使用方面的技巧。

一般我们最普遍的使用方法是将HTML属性放进一个方括号中,称之为属性选择器。例如:

[href] {    color: chartreuse;}

任何具有href属性且没有更具体的选择器的html元素现在都会变成黄绿色。属性选择器的特性和类选择器一致

但是你可以使用属性选择器做更多的事情。就像你的DNA一样,它们具有嵌入式的逻辑,可帮助您选择各种属性组合和值。 它们不仅可以精确的匹配标签,类或id选择器,而且可以匹配属性中的任何属性甚至字符串值。

属性选择

属性选择器可以独立存在或更具体一点,比如我们需要选择具有title属性的所有div标签。

div[title]

也可以通过下面操作来选择具有title属性的div的子元素:

div [title]

需要明确的是,中间的空格代表着是后台选择器,即选择具有该属性的元素的子元素。我们也可以更精确一点,来选择想要的属性值:

div[title="dna"]

大多数情况下,属性选择器不需要引号,但我会使用它们,因为我相信它可以提供可读性并确保具有良好的兼容性

如果你想从经过空格分割后的列表里选择具有"dna"字符的属性值,比如“my beautiful dna”或“mutating dna is fun!”,可以在等号前添加一个波浪号`~`:

div[title~="dna"]

您可以选择“dontblamemeblamemydna”或“his-stupidity-is-from-upbringing-not-dna”之类的标题,然后使用美元符号`$`来匹配title的结尾:

[title$="dna"]

要匹配属性值的前面,例如“dnamutants”或“dna-splicing-for-all”的标题,就用插入符号`^`。

[title^="dna"]

如果你想完全匹配一个值开头的完整单词,可以使用管道符来做。比如你不想选择一个“genealogy”的title,但仍然想选择“gene”和“gene-data”:

[title|="gene"]

还有一个匹配任何子字符串的模糊搜索属性运算符`*`:

[title*="dna"]

最后要知道的是,您可以添加一个标志,让属性搜索不区分大小写。 在结束方括号之前添加`i`:

[title*="DNA" i]

使这些属性选择器更加强大的原因是它们是可堆叠的 —— 允许您选择具有多个匹配因子的元素。

比如你需要找到 a 标签,它有一个title属性,并且有一个以“genes”结尾的class类,该如何写呢?

a[title][class$="genes"]

我们不仅可以选择HTML元素的属性,还可以使用伪“科学”(即伪元素和内容声明)来打印出文本:

<span class="joke" title="Gene Editing!">What&rsquo;s the first thing a biotech journalist does after finishing the first draft of an article?</span>.joke:hover:after {   content: "Answer:" attr(title);   display: block;}

上面的代码在鼠标悬停时将显示一串自定义的字符串。

现在我们已经看到了如何使用属性选择器进行选择,让我们看看一些用例。我把它们分为两类: 一般使用技巧 和 诊断 。

一般使用技巧

输入类型的设置

您可以不同地设置输入类型,例如电子邮件与电话:

input[type="email"] {   color: papayawhip;}input[type="tel"] {   color: thistle;}

显示手机号码链接

您可以隐藏特定尺寸的电话号码并显示电话链接,以便在电话上轻松拨打电话:

span.phone {   display: none;}a[href^="tel"] {   display: block;}

内部链接vs外部链接,安全链接vs非安全链接

您可以区别对待内部和外部链接,并将安全链接设置为与不安全链接不同:

a[href^="http"]{   color: bisque;}a:not([href^="http"]) {  color: darksalmon;} a[href^="http://"]:after {   content: url(unlock-icon.svg);}a[href^="https://"]:after {   content: url(lock-icon.svg);}

下载图标

HTML5给我们的一个属性是“下载”,它告诉浏览器,你猜对了,下载该文件而不是试图打开它。这对于您希望人们访问但不希望它们立即打开的PDF和DOC非常有用。它还使得连续下载大量文件的工作流程更加容易。下载属性的缺点是没有默认的视觉效果将其与更传统的链接区分开来。通常这是你想要的,但如果不是,你可以做类似下面的事情:

a[download]:after {    content: url(download-arrow.svg);}

您还可以使用不同的图标(如PDF与DOCX与ODF等)来传达文件类型:

a[href$="pdf"]:after {   content: url(pdf-icon.svg);}a[href$="docx"]:after {   content: url(docx-icon.svg);}a[href$="odf"]:after {   content: url(open-office-icon.svg);}

您还可以通过堆叠属性选择器确保这些图标仅在可下载链接上:

a[download][href$="pdf"]:after {   content: url(pdf-icon.svg);}

覆盖或重新使用已废弃/弃用的代码

我们都遇到了过时代码的旧网站,在HTML5之前,您可能需要覆盖甚至重新应用作为属性实现的样式:

<div bgcolor="#000000" color="#FFFFFF">Old, holey genes</div>div[bgcolor="#000000"] {    background-color: #222222 !important;}div[color="#FFFFFF"] {    color: #FFFFFF;}

显示文件类型

默认情况下,文件类型输入标签的可接受文件列表是不可见的。通常,我们使用伪元素来公开它们,虽然你不能在大多数输入标签上(或者在Firefox或Edge中)使用伪元素,但是你可以在文件输入上使用它们:

<input type="file" accept="pdf,doc,docx">[accept]:after {   content: "Acceptable file types: " attr(accept);}

html手风琴菜单

details 和 summary 标签是一种只用HTML做扩展/手风琴菜单的方法, details 包括了 summary 标签和手风琴打开时要展示的内容。点击 summary 会展开 details 标签并添加 open 属性,我们可以通过open属性轻松地为打开的 details 标签设置样式:

<details>  <summary>List of Genes</summary>    Roddenberry    Hackman    Wilder    Kelly    Luen Yang    Simmons</details>details[open] {   background-color: hotpink;}

打印链接

a[href]:after {   content: " (" attr(href) ") ";}

自定义工具

使用属性选择器创建自定义工具提示既有趣又简单:

[title] {  position: relative;  display: block;}[title]:hover:after {  content: attr(title);  color: hotpink;  background-color: slateblue;  display: block;  padding: .225em .35em;  position: absolute;  right: -5px;  bottom: -5px;}

诊断

这些选项用于帮助我们在构建过程中或在尝试修复问题时在本地识别问题。将这些内容放在我们的生产网站上会使用户产生错误。

没有controls属性的audio

我不经常使用音频标签,但是当我使用它时,我经常忘记包含controls属性。 结果:没有显示任何内容。如果您在Firefox中工作,如果您隐藏了音频元素,或者语法或其他一些问题阻止它出现(仅适用于Firefox),此代码可以帮助您解决问题:

audio:not([controls]) {  width: 100px;  height: 20px;  background-color: chartreuse;  display: block;}

没有alt替代文字

没有alt属性的图片是可访问性的噩梦,只需查看页面就很难找到它们,但如果添加它们,它们就会弹出来(当页面图片加载失败时,alt文字可以更好的解释图片的作用):

img:not([alt]) {    outline: 2em solid chartreuse; }img[alt=""] {    outline: 2em solid cadetblue; }

异步Javascript文件

web页面可以是内容管理系统和插件,框架和代码的集合,Ted 在度假时写道,确定哪些JavaScript异步加载以及哪些不加载可以帮助您专注于提高页面性能:

script[class="lazy" data-src]:not([async]) {  display: block;  width: 100%;  height: 1em;  background-color: red;}script:after {  content: attr(class="lazy" data-src);}

Javascript事件

您还可以突出显示具有JavaScript事件属性的元素,我在这里举例OnMouseOver属性,但它适用于任何JavaScript事件属性:
 

[OnMouseOver] {   color: burlywood;}[OnMouseOver]:after {   content: "JS: " attr(OnMouseOver);}

感谢你能够认真阅读完这篇文章,希望小编分享的“怎么使用CSS属性选择器来拼接HTML的DNA”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网行业资讯频道,更多相关知识等着你来学习!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

怎么使用CSS属性选择器来拼接HTML的DNA

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

怎么使用CSS属性选择器来拼接HTML的DNA

这篇文章主要介绍了怎么使用CSS属性选择器来拼接HTML的DNA,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。CSS属性选择器非常神奇,它们可以帮你避免添加数不胜数的类名,从
2023-06-08

css如何强制使用属性选择器显示空链接

小编给大家分享一下css如何强制使用属性选择器显示空链接,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!强制使用属性选择器显示空链接这对于通过CMS插入的链接特别有
2023-06-27

CSS的id选择器与class选择器怎么使用

本篇内容介绍了“CSS的id选择器与class选择器怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!id选择器和class选择器介绍C
2023-07-04

怎么使用jQuery来修改HTML元素的属性

这篇文章主要讲解了“怎么使用jQuery来修改HTML元素的属性”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么使用jQuery来修改HTML元素的属性”吧!第一步:引入jQuery库在使
2023-07-05

CSS的class选择器怎么使用

本篇内容主要讲解“CSS的class选择器怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“CSS的class选择器怎么使用”吧!css 中 class 选择器的基本用法:为同一个类型的标签
2023-06-27

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录