重温CSS系列(三)

常用的选择器

最常用的选择器类型是类型选择器和后代选择器。类型选择器用来寻找特定类型的元素,比如段落或标题元素,只需指定希望应用样式的元素的名称。类型选择器有时候也称为元素选择器或简单选择器。

  1. p {color: black;}  
  2. h1 {font-weight: bold;} 

后代选择器可用来寻找特定元素或元素组的后代。后代选择器由其他两个选择器之间的空格表示。在这个示例中,只缩进是块引用的后代的段落元素,其他所有段落不受影响。

  1. blockquote p {padding-left: 2em;} 

这两种选择器适合于应用那些应用范围广的一般性样式。要想寻找更特定的元素,可以使用ID选择器和类选择器。顾名思义,这两种选择器用于寻找那些具有指定ID或类名的元素。ID选择器由一个#字符表示,类选择器由一个点号表示。下面示例中的第一条规则使简介段落中的文本以粗体显示,第二条规则让日期显示为绿色:

  1. #intro {font-weight: bold;}  
  2. .date-posted {color: #ccc;}  
  3.  
  4. <p id="intro">Happy Birthday Andy</p> 
  5. <p class="date-posted">24/3/2009</p> 

前面提到过,许多CSS开发人员过度依赖类选择器和ID选择器。如果他们希望以一种方式对主内容区域中的标题应用样式,而在第二个内容区域中采用另一种方式,那么他们很可能创建两个类并且在每个标题上应用一个类。一种简单得多的方法是结合使用类型、后代、ID和类这几种选择器:

  1. #main-content h2 {font-size: 1.8em;}  
  2. #secondaryContent h2 {font-size: 1.2em;}  
  3.  
  4. <div id="main-content"> 
  5.   <h2>Articles</h2>   
  6.      ...  
  7. </div> 
  8. <div id="secondary-content"> 
  9.   <h2>Latest news</h2> 
  10.   ...  
  11. </div> 

这是一个非常简单明朗的示例。但是,让你吃惊的是,只使用前面讨论的4种选择器就可以成功地找到许多元素。如果你发现自己在文档中添加了许多不必要的类,那么这可能是文档结构不合理的一个警告信号。这时应该分析这些元素之间的差异。你常常会发现唯一的差异是它们在页面上出现的位置。不要给这些元素指定不同的类,而应将一个类或ID应用于它们的祖先,然后使用后代选择器定位它们。

伪类

有时候,我们需要根据文档结构之外的其他条件对元素应用样式,例如表单元素或链接的状态。这要使用伪类选择器来完成。

  1. /* makes all unvisited links blue */  
  2. a:link {color:blue;}  
  3.  
  4. /* makes all visited links green */  
  5. a:visited {color:green;}  
  6.  
  7. /* makes links red when hovered or activated.  
  8. focus is added for keyboard support */  
  9. a:hover, a:focus, a:active {color:red;}  
  10.  
  11. /* makes table rows red when hovered over */  
  12. tr:hover {background-color: red;}  
  13.  
  14. /* makes input elements yellow when focus is applied */  
  15. input:focus {background-color:yellow;} 

:link和:visited称为链接伪类,只能应用于锚元素。:hover、:active和:focus称为动态伪类,理论上可以应用于任何元素。大多数浏览器都支持这个功能。但是,IE 6只注意应用于锚链接的:active和:hover选择器,完全忽略:focus。IE 7在任何元素上都支持:hover,但是忽略:active和:focus。

最后,值得指出的是:通过把伪类连接在一起,可以创建更复杂的行为,比如在已访问链接和未访问链接上实现不同的鼠标悬停效果。

  1. /* makes all visited linkes olive on hover */  
  2. a:visited:hover {color:olive;} 


标题 "lora-mesh-master" 暗示我们正在探讨LoRa Mesh网络的源代码库。LoRa(Long Range)是一种远距离、低功耗的无线通信技术,常用于物联网(IoT)应用。"Mesh"指的是网络拓扑结构,其中每个设备不仅与中央网关通信,还能够与其他设备通信,形成自组织网络,增强了网络的可靠性和覆盖范围。描述 "LORA MESH开发" 涉及如何开发基于LoRa的Mesh网络,开发者需要了解LoRa的基本原理,包括调制方式、频率计划以及数据速率选择,这些都是确保LoRa设备之间有效通信的关键因素。标签 "Mesh lora-mesh meshlora LORA节点源码 lora" 进一步细化了主题。"lora-mesh" 和 "meshlora" 可能是特定的LoRa Mesh实现或库,"LORA节点源码" 提示有实际的代码可以研究,这将帮助理解如何在硬件上构建LoRa节点并实现Mesh网络功能。"lora" 是对整个技术的提及,确保讨论的核心是LoRa通信。压缩包中的 "lora-mesh-master" 文件很可能是项目的主要源代码仓库,包含了构建和运行LoRa Mesh网络所需的全部代码。通常,这样的代码库会包含以下部分:README文件、源代码文件、配置文件、示例脚本、库依赖、编译和构建工具、测试用例。在深入研究LoRa Mesh开发时,需要理解以下关键概念:LoRa扩频技术、LoRaWAN、Ad-hoc网络、路由算法、功耗管理。通过研究这个项目,可以学习如何创建一个自组网、自修复的LoRa网络,以及如何在不同节点之间有效地传输数据,包括设置网络拓扑、处理冲突、优化传输效率。需要确保有适当的硬件环境,如LoRa模块、微控制器以及必要的开发工具。资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值