关闭Safari中绝对定位输入的位置

问题描述 投票:0回答:1

我在Safari和台式机和iOS中都有这个非常奇怪的问题。这是当前情况的屏幕截图(同样,iOS和桌面Safari):enter image description here

[这是应该发生的情况的图片(从Mac上的Chrome拍摄,但在Android Chrome和Firefox中也得到了确认):enter image description here

这里是HTML:

<label class="radio-selections" for="maleSelection">Male
    <input type="radio" value="male" id="maleSelection" name="gender">
</label>

这是CSS:

label.radio-selections {

    width: 95%;
    max-width: 400px;
    height: 55px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    color: var(--dark-gray);
    transition: box-shadow 100ms;
    border-radius: 6px;

    input[type=radio] {
        apperance: none;
        -webkit-appearance: none;
        height: inherit;
        width: inherit;
        max-width: inherit;
        position: absolute;
        border-radius: 6px;
        z-index: -1;
        background-color: transparent;
        cursor: pointer;
    }

    &[for=femaleSelection] {
        box-shadow: 0 1px 7px 3px rgba(147,64,169,.65);

        &:active {
            box-shadow: 0 1px 7px 1px rgba(147,64,169,.35);
        }

        input[type=radio]:checked {
            background-color: rgba(147,64,169,.15)
        }

    }

    &[for=maleSelection] {
        box-shadow: 0 1px 7px 3px rgba(64,93,169,.65);

        &:active {
            box-shadow: 0 1px 7px 1px rgba(64,93,169,.35);
        }

        input[type=radio]:checked {
            background-color: rgba(64,93,169,.15)
        }

    }

}

我认为应该很好理解我在这里缺少的东西,但是为什么iOS和Safari中的“选中”样式会偏移,而在所有其他浏览器中它会按需重叠呢?

这里也是一个非常简单的代码库,几乎概述了我要寻找的内容(显然适用于Chrome,但不适用于Safari):

https://codepen.io/adammcgurk/pen/wvvJWry

html css position css-position
1个回答
0
投票

当您制作任何元素position: relative;时,请在父项上使用absolute,以便其根据其父项进行调整。

label.radio-selections {
  position: relative;
}

然后在子项上制作left right topbottom0

input[type=radio] {
   left: 0;
   right: 0;
   bottom: 0;
   top: 0;
}
© www.soinside.com 2019 - 2024. All rights reserved.