Как инициировать действие, когда ввод проверяется в SCSS?

#html #checkbox #sass

#HTML #флажок #sass

Вопрос:

Это очень просто, и я просмотрел все эти примеры, но до сих пор не могу понять, что я делаю не так!

Я создал пользовательский флажок, увеличил размер и стиль, и при нажатии на него я хочу, чтобы в поле появлялась буква «A», но она просто не реагирует, возможно, вторая пара глаз поможет мне определить проблему.

ниже приведены мои html и css:

 .container {
    position: relative;
    cursor: pointer;
    display: block;

    input,
    label {
        display: inline-block;
    }

    input {
        // opacity: 0;
        position: absolute;
        height: unset;
        width: unset;
        cursor: pointer;
    }

    label::before {
        border: 1px solid #333;
        content: "";
        display: inline-block;
        font: 16px/1em sans-serif;
        height: 50px;
        margin: 0 .25em 0 0;
        padding: 0;
        vertical-align: top;
        width: 50px;
        border-radius: 5px;
        color: red;
        font-size: 50px;
        padding: 10px;
    }

    input[type="checkbox"]:checked   label::before {
        content: "A"; //code for checked
    }
}
 
 <div class="container">
    <div>
        <label for="form_agreeTerms" class="required">Agree terms</label>
        <input type="checkbox" id="form_agreeTerms" name="form[agreeTerms]" required="required" value="1">          
    </div>
</div>
 

Вот это в codepen

Ответ №1:

Вы используете оператор, который означает «Следующий родственный элемент».

Вы должны переместить метку так, чтобы она находилась после флажка.

 <div class="container">
    <div>
        <input type="checkbox" id="form_agreeTerms" name="form[agreeTerms]" required="required" value="1">   
        <label for="form_agreeTerms" class="required">Agree terms</label>       
    </div>
</div>
 

Комментарии:

1. ладно, ладно, в этом есть смысл! Есть ли способ сказать «предыдущий брат»? Я не могу изменить html, SCSS — мой единственный вариант!

2. Вы должны переместить метку так, чтобы она находилась после флажка, и установить значение left на 170px в блоке ввода css.

3. @kontenurban CSS применяется к DOM за один проход. Из-за этого нет способа вернуться к CSS — поэтому нет предыдущего родственного и родительского элемента. выбор родительского элемента.