zoukankan      html  css  js  c++  java
  • CSS中模拟父元素选择器

    很多情况下,我们需要找到父元素,但可惜的是css中并没有这样的一个选择器。

    至于原因可以看张鑫旭的如何在CSS中实现父选择器效果这篇文章。

    简单来说这个实现并不是真正的父元素选择器,只是利用其它思路来实现相同效果罢了。

    HTML:

    <div id="box">
      <p>pppppppp</p>
      <span></span>
    </div>

    CSS:

    div,p{
      margin:0;
      padding:0;
    }
    #box{
      300px;
      height:300px;
      position:relative;
    }
    #box>span{
      position:absolute;
      top:0;
      left:0;
      100%;
      height:100%;
      box-shadow:0px 0px 0px 1px #ccc;
    }
    #box>p:hover + span{
      box-shadow:0px 0px 0px 1px red;
    }
    p{
      position:absolute;
      left:50%;
      top:50%;
      transform:translate(-50%,-50%);
      z-index:1;
    }

    效果:

    hover的时候

    下面说一下注意点

    这个span必须放在p标签后一个位置,因为我们用的是+下一个同级选择器。还有就是p标签必须加z-index,不然span会把p标签盖住,效果就没了。

    position:absolute;
    left:50%;
    top:50%;
    transform:translate(-50%,-50%);

    这段代码会把p标签垂直居中。

    其实这个原理很简单,就是原本给父元素添加的样式给一个子元素添加,让子元素冒充父元素,定位就好了。

    结合模拟单击事件使用。

    HTML:

    <div id="box">
      <a href="#a" id="a">点击我!</a>
      <span></span>
    </div>

    CSS:

    body,div{
      margin:0;
      padding:0;
    }
    #box{
      300px;
      height:300px;
      position:relative;
    }
    #box>span{
      position:absolute;
      top:0;
      left:0;
      100%;
      height:100%;
      box-shadow:0px 0px 0px 1px #ccc;
    }
    #box>a:target + span{
      box-shadow:0px 0px 0px 1px red;
    }
    #box>a{
      position:absolute;
      left:50%;
      top:50%;
      transform:translate(-50%);
      z-index:1;

      text-decoration:none;
    }

    效果

    css模拟单击事件的实现就是通过这个实现的。

    <a href="#a" id="a">点击我!</a>

    然后通过css的:target可以获取当前正在点击的元素。

    a:target

    完。

  • 相关阅读:
    C#音频截取与原文匹配2:使用ffmpeg处理音频文件
    C#音频截取与原文匹配
    Redis报错: StackExchange.Redis.RedisServerException: Endpoint 39.105.22.111:7200 serving hashslot 12448 is not reachable at this point of time.
    kafka单机安装部署
    zookeeper部署
    mysql-5.7.15编译安装
    centos7安装sqlserver
    redisearch模块安装
    yum安装软件后保留rpm包
    shell读取配置文件
  • 原文地址:https://www.cnblogs.com/pssp/p/5878904.html
Copyright © 2011-2022 走看看