当前位置: 首页 > news >正文

CSS高级篇——更多选择器 (selectors)

前面我们学习过HTML 选择器,类选择器和 ID 选择器,这几种选择器配合起来使用可以让我们精确定位 HTML 元素。

本篇要介绍的几个功能更加强大。

全局选择器

全局选择器用一个星号(*)来表示,它会作用于所有元素。全局选择器除了可以为页面设置全局样式之外,还可以配合其他选择器一起使用。

* {
    margin: 0;
    padding: 0;
}

#contact * {
    display: block;
}
  • 单独使用全局选择性相当于重置了浏览器的默认样式
  • 跟在其他选择器后面使用,只会作用于该选择器的子元素

子选择器

大于号(>)用于指定一级子元素。

<ul id="genus_examples">
    <li>Cats
        <ul>
            <li>Panthera</li>
            <li>Felis</li>
            <li>Neofelis</li>
        </ul>
    </li>
    <li>Apes
        <ul>
            <li>Pongo</li>
            <li>Pan</li>
            <li>Homo</li>
        </ul>
    </li>
</ul>

如果要给<ul id="geneus_examples"> 的一级子元素(<li> 标签) “Cats” 和 “Apes” 设置样式,CSS 可以这样写:

#genus_examples > li { 
    border: 1px solid red; 
}

其他的 <li> 元素不会受到影响,因为子选择器只作用于一级子元素。

如果要作用于所有子元素,可以这么写:

#genus_examples  li { 
    border: 1px solid red;
}

邻接选择器

加号(+)表示邻接选择器,只作用于第一个邻近的节点。

<h1>Clouded leopards</h1>
<p>Clouded leopards are cats that belong to the genus Neofelis.</p>
<p>There are two extant species: Neofelis nebulosa and Neofelis diardi.</p>

下面的 CSS 只会让第一个 <p> 的字体变为粗体:

h1 + p { 
    font-weight: bold; 
}

如果要作用于所有的兄弟节点,可以使用 CSS3 新提供的兄弟选择器(~):

h1 ~ p { 
    font-weight: bold; 
}

相关文章:

  • R语言(5) 折线图、散点图
  • 云原生之容器编排实践-SpringBoot应用以YAML描述文件部署pod到minikube
  • 【K8S】kubectl常用命令总结
  • 一文搞懂大数据入门之 Hadoop,HDFS,Hbase,Hive
  • FreeRTOS-实现任务调度器
  • 基于51单片机公交车到站指示灯设计
  • MySQL表的增删查改
  • 开关电源学习(一) MP2315S简介
  • String类详解(上)
  • 【数据结构与算法】栈的深入学习(上)
  • C++向量复习题以及知识讲解
  • 深入理解python装饰器
  • 大数据趣味学习探讨(三):怎么确定学习目标
  • SSM整合(超详细)
  • 【程序语言】-- 编程语言分类和应用
  • [译] React v16.8: 含有Hooks的版本
  • 【Under-the-hood-ReactJS-Part0】React源码解读
  • 78. Subsets
  • C语言笔记(第一章:C语言编程)
  • ES学习笔记(10)--ES6中的函数和数组补漏
  • input实现文字超出省略号功能
  • java正则表式的使用
  • JS创建对象模式及其对象原型链探究(一):Object模式
  • Koa2 之文件上传下载
  • leetcode386. Lexicographical Numbers
  • miniui datagrid 的客户端分页解决方案 - CS结合
  • 安卓应用性能调试和优化经验分享
  • 反思总结然后整装待发
  • 检测对象或数组
  • 码农张的Bug人生 - 见面之礼
  • 配置 PM2 实现代码自动发布
  • 悄悄地说一个bug
  • 如何正确配置 Ubuntu 14.04 服务器?
  • 使用 Node.js 的 nodemailer 模块发送邮件(支持 QQ、163 等、支持附件)
  • 使用agvtool更改app version/build
  • 微信公众号开发小记——5.python微信红包
  • 这几个编码小技巧将令你 PHP 代码更加简洁
  • !$boo在php中什么意思,php前戏
  • #我与Java虚拟机的故事#连载10: 如何在阿里、腾讯、百度、及字节跳动等公司面试中脱颖而出...
  • $emit传递多个参数_PPC和MIPS指令集下二进制代码中函数参数个数的识别方法
  • $forceUpdate()函数
  • (3)(3.2) MAVLink2数据包签名(安全)
  • (HAL)STM32F103C6T8——软件模拟I2C驱动0.96寸OLED屏幕
  • (Note)C++中的继承方式
  • (附源码)spring boot校园健康监测管理系统 毕业设计 151047
  • (正则)提取页面里的img标签
  • (终章)[图像识别]13.OpenCV案例 自定义训练集分类器物体检测
  • (转)Android学习系列(31)--App自动化之使用Ant编译项目多渠道打包
  • (转)Sublime Text3配置Lua运行环境
  • .NET Framework 3.5中序列化成JSON数据及JSON数据的反序列化,以及jQuery的调用JSON
  • .net 流——流的类型体系简单介绍
  • .net 前台table如何加一列下拉框_如何用Word编辑参考文献
  • .NET命名规范和开发约定
  • .net图片验证码生成、点击刷新及验证输入是否正确
  • ??eclipse的安装配置问题!??