美文网首页
第7章 征服CSS3选择器(下)

第7章 征服CSS3选择器(下)

作者: _双眸 | 来源:发表于2018-12-07 19:51 被阅读0次

    :enabled选择器

    在Web的表单中,有些表单元素有可用(“:enabled”)和不可用(“:disabled”)状态,比如输入框,密码框,复选框等。在默认情况之下,这些表单元素都处在可用状态。那么我们可以通过伪选择器“:enabled”对这些表单元素设置样式。
    示例演示
    通过“:enabled”选择器,修改文本输入框的边框为2像素的红色边框,并设置它的背景为灰色。

    :disabled选择器

    “:disabled”选择器刚好与“:enabled”选择器相反,用来选择不可用表单元素。要正常使用“:disabled”选择器,需要在表单元素的HTML中设置“disabled”属性。

    HTML代码:

    <form action="#">
      <div>
        <label for="name">Text Input:</label>
        <input type="text" name="name" id="name" placeholder="可用输入框"  />
      </div>
       <div>
        <label for="name">Text Input:</label>
        <input type="text" name="name" id="name" placeholder="禁用输入框"  disabled="disabled" />
      </div>
    </form>  
    

    CSS代码:

    div{
      margin: 20px;
    }
    input[type="text"]:enabled {
      background: #ccc;
      border: 2px solid red;
    }
    

    结果演示


    在这里插入图片描述

    :checked选择器

    在表单元素中,单选按钮和复选按钮都具有选中和未选中状态。(大家都知道,要覆写这两个按钮默认样式比较困难)。在CSS3中,我们可以通过状态选择器“:checked”配合其他标签实现自定义样式。而“:checked”表示的是选中状态。

    ::selection选择器

    “::selection”伪元素是用来匹配突出显示的文本(用鼠标选择文本时的文本)。浏览器默认情况下,用鼠标选择网页文本是以“深蓝的背景,白色的字体”显示的,效果如下图所示:


    在这里插入图片描述

    从上图中可以看出,用鼠标选中“专注IT、互联网技术”、“纯干货、学以致用”、“没错、这是免费的”这三行文本中,默认显示样式为:蓝色背景、白色文本。
    有的时候设计要求,不使用上图那种浏览器默认的突出文本效果,需要一个与众不同的效果,此时“::selection”伪元素就非常的实用。不过在Firefox浏览器还需要添加前缀。
    示例演示:
    通过“::selection”选择器,将Web中选中的文本背景变成红色,文本变成绿色。
    HTML代码:

    <p>“::selection”伪元素是用来匹配突出显示的文本。浏览器默认情况下,选择网站文本是深蓝的背景,白色的字体,</p>
    

    CSS代码:

    ::-moz-selection {
      background: red;
      color: green;
    }
    ::selection {
      background: red;
      color: green;
    }
    

    结果演示:


    在这里插入图片描述

    注意: 1、IE9+、Opera、Google Chrome 以及 Safari 中支持 ::selection 选择器。
    2、Firefox 支持替代的 ::-moz-selection。 :read-only选择器
    “:read-only”伪类选择器用来指定处于只读状态元素的样式。简单点理解就是,元素中设置了“readonly=’readonly’”
    input[type="text"]:read-only{ border-color: #ccc; }

    :read-write选择器

    “:read-write”选择器刚好与“:read-only”选择器相反,主要用来指定当元素处于非只读状态时的样式。

    input[type="text"]:read-write{
      border-color: #f36;
    }
    

    ::before和::after

    ::before和::after这两个主要用来给元素的前面或后面插入内容,这两个常和"content"配合使用,使用的场景最多的就是清除浮动。

    .clearfix::before,
    .clearfix::after {
        content: ".";
        display: block;
        height: 0;
        visibility: hidden;
    }
    .clearfix:after {clear: both;}
    .clearfix {zoom: 1;}
    

    当然可以利用他们制作出其他更好的效果,比如右侧中的阴影效果,也是通过这个来实现的。
    关键代码分析:

    .effect::before, .effect::after{
        content:"";
        position:absolute;
        z-index:-1;
        -webkit-box-shadow:0 0 20px rgba(0,0,0,0.8);
        -moz-box-shadow:0 0 20px rgba(0,0,0,0.8);
        box-shadow:0 0 20px rgba(0,0,0,0.8);
        top:50%;
        bottom:0;
        left:10px;
        right:10px;
        -moz-border-radius:100px / 10px;
        border-radius:100px / 10px;
    }
    

    上面代码作用在class名叫.effect上的div的前(before)后(after)都添加一个空元素,然后为这两个空元素添加阴影特效。

    相关文章

      网友评论

          本文标题:第7章 征服CSS3选择器(下)

          本文链接:https://www.haomeiwen.com/subject/ltuxhqtx.html