zoukankan      html  css  js  c++  java
  • CSS(13)CSS 伪类(Pseudo-classes)

    CSS伪类

    伪类是用来添加一些选择器的特殊效果。

    伪类选择元素基于的是当前元素处于的状态,或者说元素当前所具有的特性,而不是元素的id、class、属性等静态的标志。由于状态是动态变化的,所以一个元素达到一个特定状态时,它可能得到一个伪类的样式;当状态改变时,它又会失去这个样式。由此可以看出,它的功能和class有些类似,但它是基于文档之外的抽象,所以叫伪类。

    所有CSS伪类

    • :active 向被激活的元素添加样式。
    • :focus 向拥有键盘输入焦点的元素添加样式。
    • :hover: 当鼠标悬浮在元素上方时,向元素添加样式。
    • :link 向未被访问的链接添加样式。
    • :visited 向已被访问的链接添加样式。
    • :first-child 向元素的第一个子元素添加样式。
    • :lang 向带有指定 lang 属性的元素添加样式。

    一、语法

    伪类的语法:

    selector:pseudo-class {property:value;}

    CSS类也可以使用伪类:

    selector.class:pseudo-class {property:value;}

    二、锚伪类

    在支持 CSS 的浏览器中,链接的不同状态都可以以不同的方式显示

    a:link {color:#FF0000;} /* 未访问的链接 */
    a:visited {color:#00FF00;} /* 已访问的链接 */
    a:hover {color:#FF00FF;} /* 鼠标划过链接 */
    a:active {color:#0000FF;} /* 已选中的链接 */

    尝试一下 »

    注意: 在CSS定义中,a:hover 必须被置于 a:link 和 a:visited 之后,才是有效的。a:active 必须被置于 a:hover 之后,才是有效的。

    注意:伪类的名称不区分大小写。

    伪类和CSS类

    伪类可以与 CSS 类配合使用:

    a.red:visited {color:#FF0000;}
    <a class="red" href="css-syntax.html">CSS 语法</a>

    如果在上面的例子的链接已被访问,它会显示为红色。

    三、CSS :first-child 伪类

    您可以使用 :first-child 伪类来选择父元素的第一个子元素。

    注意:在IE8的之前版本必须声明<!DOCTYPE> ,这样 :first-child 才能生效。

    (1)匹配第一个 <p> 元素

    在下面的例子中,选择器匹配作为任何元素的第一个子元素的 <p> 元素:

    p:first-child
    {
        color:blue;
    }

    尝试一下 »

    (2)匹配所有<p> 元素中的第一个 <i> 元素

    在下面的例子中,选择相匹配的所有<p>元素的第一个 <i> 元素:

    p > i:first-child
    {
        color:blue;
    }

    尝试一下 »

    (3)匹配所有作为第一个子元素的 <p> 元素中的所有 <i> 元素

    在下面的例子中,选择器匹配所有作为元素的第一个子元素的 <p> 元素中的所有 <i> 元素:

    p:first-child i
    {
        color:blue;
    }

    尝试一下 »

    四、CSS - :lang 伪类

    :lang 伪类使你有能力为不同的语言定义特殊的规则

    注意:IE8必须声明<!DOCTYPE>才能支持;lang伪类。

    在下面的例子中,:lang 类为属性值为 no 的q元素定义引号的类型:

    q:lang(no) {quotes: "~" "~";}

    尝试一下 »

  • 相关阅读:
    vue项目中实现定时刷新页面(重新渲染数据实时更新)
    如何撤销 Git commit ?
    error: You have not concluded your merge (MERGE_HEAD exists)
    ajax的前世今生
    DevTools failed to load SourceMap: Could not load content for webpack:///node_modules/sockjs-client/
    Vue 项目如何配置代理解决跨域
    Nginx 到底是什么东西?
    JSON.parse()与JSON.stringify()的区别
    uni-app 中如何管理用户登录状态
    Oracle分析函数简析
  • 原文地址:https://www.cnblogs.com/springsnow/p/12197388.html
Copyright © 2011-2022 走看看