CSS专注于最后一个孩子

时间:2015-12-01 11:32:54

标签: css twitter-bootstrap-3 css-selectors focus

我正在使用验证器,输入后添加标签,我想更改我的范围中的最后一个标签

  <span class="input-icon">                                            
      <input type="text" id="name" name="name" class="form-control" data-fv-field="name">
      <i class="form-control-feedback" data-fv-icon-for="name" style="display: none;"></i>                                                    
      <i class="fa fa-globe blue circular"></i>                                                
  </span>

  .input-icon :last-child  {
      box-shadow : 0 0 0 0.1em rgba(0, 0, 0, 0.1) inset;   
  }

我需要的是访问输入焦点上的最后<i> 我在下面添加了代码,但没有一个工作

    .input-icon > input:focus + .circular  {
        box-shadow : 0 0 0 0.1em rgba(0, 0, 0, 0.25) inset !important;   
    }

   .input-icon > input:focus .circular  {
        box-shadow : 0 0 0 0.1em rgba(0, 0, 0, 0.25) inset !important;   
    }

   .input-icon > input:focus :last-child  {
        box-shadow : 0 0 0 0.1em rgba(0, 0, 0, 0.25) inset !important;   
    }

   .input-icon > input:focus + [class*="fa-"], .input-icon > input:focus :last-child  {
       opacity: 1;
    }

2 个答案:

答案 0 :(得分:0)

我认为缺少一些CSS代码来改进答案。但是,尽管缺少CSS代码,这应该可行:

i:last-child

使用此功能,您可以选择<i>标记的最后一个子项。现在,如果您想在CSS中更改CSS属性:

i:last-child {
    background: #ff0000;
}

答案 1 :(得分:0)

+将定位下一个直接兄弟元素。如果您想查找所有兄弟元素,请使用~代替+

   .input-icon > input:focus ~ .circular  {
    box-shadow : 0 0 0 0.1em rgba(0, 0, 0, 0.25) inset !important;   
    }

    .input-icon > input:focus .circular  {
    box-shadow : 0 0 0 0.1em rgba(0, 0, 0, 0.25) inset !important;   
    }

   .input-icon > input:focus :last-child  {
    box-shadow : 0 0 0 0.1em rgba(0, 0, 0, 0.25) inset !important;   
   }

   .input-icon > input:focus ~ [class*="fa-"], .input-icon > input:focus :last-child  {
   opacity: 1;
   }

DEMO