html标签电台适用于桌面和模拟器,但不适用于iOS Safari

时间:2017-03-08 19:49:16

标签: html css mobile vue.js

我很难调试这个,但基本上我有一堆复选框,看起来像下面的例子:

<div class="column">
  <input id="radio-10" type="radio" class="radio-custom" value="3">
  <label for="radio-10" class="radio-custom-label"><br>
  <p>Long time employed by the same employer</p></label>
</div>

如果点击它,在Chrome中的模拟器中,它可以正常工作。在桌面上,如果我点击它,它工作正常(框检查)。在实际的iPhone上,您的复选框永远不会被检查。

这里有什么突出的?或者类似的问题。

也不确定它是否重要(因为它适用于桌面和模拟器但不适用于移动设备)这些都是使用vue.js动态创建的,如下所示:

<li v-for="(question, questionIndex) in questions">
                        <h2>{{ question.question }}</h2>

                        <div class="columns">

                          <div class="column" v-for="(answer, index) in question.answers">
                            <input 
                                :id=" 'radio-' + answer.id" 
                                :value='answer.points' 
                                class="radio-custom"  
                                v-model.number="chosen[ questionIndex ]" 
                                type="radio"
                            >
                            <label :for=" 'radio-'+ answer.id" class="radio-custom-label"><br><p>{{ answer.answer }}</p></label>
                          </div>

                        </div>

                        <div class="control is-grouped">
                            <p class="control">
                                <button class="button is-primary" 
                                        v-if="questionIndex != 0" 
                                        @click.prevent="back">
                                        Back
                                </button>
                            </p>

                            <p class="control">
                                <button class="button is-primary" 
                                        @click.prevent="next">
                                        Next
                                </button>
                            </p>

                        </div>

                    </li>

更新

我删除了acutal单选按钮上的不透明度,可以看到它正在工作,但是css虽然没有添加复选标记。特别是这些行看起来像:

 `.radio-custom:checked + .radio-custom-label:before {
    content: "\f00c";
    font-family: 'FontAwesome';
    color: $green;
    font-size: 25px;
}
`

完整的CSS

.checkbox-custom, .radio-custom {
    opacity: 0;
    position: absolute;   
}

.checkbox-custom, .checkbox-custom-label, .radio-custom, .radio-custom-label {
    display: inline-block;
    vertical-align: middle;
    margin: 5px;
    cursor: pointer;
}

.checkbox-custom-label, .radio-custom-label {
    position: relative;
}

.checkbox-custom + .checkbox-custom-label:before, .radio-custom + .radio-custom-label:before {
    content: '';
    background: #fff;
    border: 2px solid #ddd;
    display: inline-block;
    vertical-align: middle;
    width: 40px;
    height: 40px;
    padding: 2px;
    margin-right: 10px;
    text-align: center;
}

.checkbox-custom:checked + .checkbox-custom-label:before {
    content: "\f00c";
    font-family: 'FontAwesome';
    background: rebeccapurple;
    color: #fff;
    font-size: 25px;
}

.radio-custom + .radio-custom-label:before {
    border-radius: 50%;
}

.radio-custom:checked + .radio-custom-label:before {
    content: "\f00c";
    font-family: 'FontAwesome';
    color: $green;
    font-size: 25px;
}

.checkbox-custom:focus + .checkbox-custom-label, .radio-custom:focus + .radio-custom-label {
  outline: 1px solid #ddd; /* focus style */
}

1 个答案:

答案 0 :(得分:0)

经过几个小时的不发现后,我发现它缺少FontAwsome字体。我把它们放在本地,这就是为什么它只在移动设备上。