Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/471.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 伪元素与输入重叠_Javascript_Html_Css - Fatal编程技术网

Javascript 伪元素与输入重叠

Javascript 伪元素与输入重叠,javascript,html,css,Javascript,Html,Css,我有一个带有自定义样式和伪:before和:after元素的输入[type=file]。但是伪元素似乎位于输入的顶部,当我单击输入时,什么也没有发生 下面是我正在使用的代码和一个示例。我怎样才能解决这个问题 <div class="form-group image"> <label for="image" class="control-label">Картинка</label> <div class="file">

我有一个带有自定义样式和伪
:before
:after
元素的
输入[type=file]
。但是伪元素似乎位于输入的顶部,当我单击输入时,什么也没有发生

下面是我正在使用的代码和一个示例。我怎样才能解决这个问题

<div class="form-group image">
        <label for="image" class="control-label">Картинка</label>
        <div class="file">
              <input type="file" accept="image/png, image/jpeg, image/gif" name="image" id="image">
        </div>
       <p>Используйте<br>JPG, PNG, GIF</p>
 </div>

.file
        overflow hidden
        position relative
        width 112px
        height 112px
        cursor pointer
        border 2px solid #fff
        box-shadow 0 0 0 1px #e8e8e8
        border-radius 5px
        background url("images/PIC-copy.png")
        &:before
            content ""
            position absolute
            top calc(50% - 30px/2)
            left calc(50% - 30px/2)
            width 30px
            height 30px
            background #39ce00
            border 1px solid #fff
            border-radius 50%
        &:after
            content "+"
            position absolute
            top 33%
            left 43.5%
            font-size 24px
            text-align center
            color #fff
        &:hover:before
            background #ff3c40
        &:hover:after
            transform rotate(45deg)
            left 44.5%

        input[type="file"]
            opacity 0
            height 100%
            cursor pointer

Картинка
JPG,PNG,GIF

文件 溢出隐藏 相对位置 宽度112px 高度112px 游标指针 边框2倍实心#fff 框阴影0 0 1px#e8e8e8 边界半径5px 背景url(“images/PIC copy.png”) &:之前 内容“” 绝对位置 顶部计算(50%-30px/2) 左计算(50%-30px/2) 宽度30px 高度30px 背景#39ce00 边框1px实心#fff 边界半径50% &:之后 内容“+” 绝对位置 前33% 左43.5% 字体大小24px 文本居中对齐 颜色#fff &:悬停:在 背景#ff3c40 &:悬停:之后 变换旋转(45度) 左44.5% 输入[type=“file”] 不透明度0 高度100% 游标指针
如果没有一个有效的示例,很难进行调试。您可以尝试设置元素的顺序以获得正确的堆叠顺序。

您可以创建一个堆栈片段或JSFIDLE来显示问题吗?用一个例子来回答会更容易。另外,这是否发生在特定的浏览器中?删除了gif,并在问题中添加了JSFIDLE演示。