CSS-选择器篇

一、什么是CSS选择器

 

要使某个样式应用于特定的HTML元素,首先要找到该元素,而选择器为获取目标元素之后施加样式提供了极大的灵活性

二、CSS选择器的优势

减少开发中对HTML类名和ID名的依赖,已经对HTML元素结构的依赖,使编写代码更加简单轻松

三、CSS选择器的分类

  1. 基本选择器
  2. 层次选择器
  3. 伪类选择器
    1. 动态伪类选择器
    2. 目标伪类选择器
    3. 语言伪类选择器
    4. UI元素状态伪类选择器
    5. 结构伪类选择器
    6. 否定伪类选择器
  4. 伪元素
  5. 属性选择器

3-1 基本选择器

基本选择器是CSS中使用最频繁的,也是CSS中最早定义最基础的选择器

选择器

类型

功能描述

*

通配选择器

选择文档中所有的HTML元素

E

元素选择器

选择指定的类型的HTML元素

#id

ID选择器

选择指定ID属性值为“id”的任意类型元素

.class

类选择器

选择指定class属性值为“class”的任意类型的任意多个元素

selector1,selectorN

群组选择器

将每一个选择器匹配的元素集合并(如:p, h1 {})

<!DOCTYPE html>
<html lang="en-US">
<head>
  <meta charset="UTF-8">
  <title>使用 CSS 基本选择器</title>
  <style type="text/css">
    * { margin: 0; right: 0 } /* 通配选择器的性能很差,不建议使用,建议使用群组选择器 */
    .clearfix:after, .clearfix:before { display: table; content: ''; } /* 群组选择器 */
    .clearfix:after { clear: both; overflow: hidden; } /* 清除浮动 */
    #demo { width: 100%; height: 100%; } /* ID选择器 不建议使用,建议使用类选择器 */
    .demo-ul { width: 300px; border: 1px solid #ccc; padding: 10px; margin: 20px auto; } /* 类选择器 */
    li { list-style: none outside none; float: left; height: 20px; line-height: 20px; width: 20px; border-radius: 10px; text-align: center; background: #f36; color: green; margin-right: 5px; } /* 元素选择器 */
  
    .item { background: green; color: lime }
    .item.important { background: red }
  </style>
</head>
<body>
  <div class="demo" id="demo">
    <ul class="clearfix demo-ul">
      <li class="first" id="first">1</li>
      <li class="active">2</li>
      <li class="important item">3</li>
      <li class="important">4</li>
      <li class="item">5</li>
      <li>6</li>
      <li>7</li>
      <li>8</li>
      <li>9</li>
      <li class="last" id="last">10</li>
    </ul>
  </div>
</body>
</html>

 效果图:

注意:IE6 选择器不支持多类名选择器,会已末尾类名为准

3-2 层次选择器

层次选择器通过HTML的DOM元素之前的层次关系获取元素,主要的层次关系:后代、父子、相邻兄弟和通用兄弟

选择器

类型

功能描述

E F

后代选择器(包含选择器)

选择匹配的 F 元素,且匹配的 F 元素被包含在匹配的 E 元素内

E>F

子选择器

选择匹配的 F 元素,且匹配的 F 元素是所匹配的 E 元素的子元素

E+F

相邻兄弟选择器

选择匹配的 F 元素,且匹配的 F 元素紧位于匹配的 E 元素后面

E~F

通用选择器

选择匹配的 F 元素,且位于匹配的 E 元素后的所有匹配的 F 元素

<!DOCTYPE html>
<html lang="en-US">
<head>
  <meta charset="UTF-8">
  <title>使用 CSS 层次选择器</title>
  <style type="text/css">
    .demo { width: 300px; margin: 0 auto; color: #fff }

    .demo div { margin: 5px; padding: 5px; border: 1px solid #000; } /* 后代选择器 */
    .demo div div { background: pink; } /* 后代选择器 */
    .demo>div { background: green; } /* 子代选择器 */
    .active+div { color: lime; } /* 兄弟选择器 */
    .active~div { text-align: center; } /* 通用选择器 */
    .active+div~div { color: blue; } /* 兄弟选择器 + 通用选择器 */
  </style>
</head>
<body>
  <div class="demo">
    <div class="active">1</div>
    <div>
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值