2015-08-07 2 views
1

У меня возникла проблема с тем, что я создал флажок, отображающий + и - для расширения и свернуть. HTML код -Значок не отображается на флажке в Mozilla Firefox

<input type=checkbox class="ins" ng-model=show ng-class='{open:show}'><b>Show</b> 

код CSS является -

.ins { 
     -moz-appearance:none; 
     -o-appearance:none; 
     -webkit-appearance: none; 
     width: 14px; 
     height: 14px; 
    } 
    .ins:after { 

     content: ' + '; 
     font-weight: 800; 

    } 
    .ins.open[type=checkbox]:after { 

     content:" - "; 
     font-weight: 800; 
    } 

https://jsfiddle.net/1jj1714e/

он отлично работает на хроме, но тот же код не работает на Mozilla

+0

он не работает в моем jsfiddle .... вы хотели бы еще один всеобъемлющий пример той же функциональностью? проверены со всеми браузерами? В последнее время я работал над одним и тем же ... –

+0

https://jsfiddle.net/1jj1714e/ Это рабочий код .. –

+0

': before' и': after' недоступен для элементов, которые не могут быть содержание. '' является одним из них. – connexo

ответ

0

:before и :after не доступен для элементов, которые не могут содержать контент. <input type="checkbox" /> - один из тех.

Другие:

  • <input type="radio" />
  • <input type="text/date/email/number/whathaveyou" />
  • <br />
  • <hr />

В той или иной браузер, тот или иной элемент может позволить псевдо элементов подлежащего визуализации. Я лично не хотел бы полагаться на это, хотя, как представляется, это нестандартное поведение, которое может быть удалено в будущем.

Чтобы решить проблему, скрыть свой флажок, завернуть все айну в label и пойти с классом :checked псевда и селектором смежных родственного + поставить свой «значок» на вашем b:before.

https://jsfiddle.net/1jj1714e/1/

+0

ОК, спасибо, так что я должен изменить в своем коде, чтобы выполнить ту же задачу. –

+0

Я отредактировал свой ответ. – connexo

+0

С некоторой хорошей круговой рамкой вокруг: https://jsfiddle.net/1jj1714e/2/ – connexo

1

Существует уже answer о том, почему вы не может использовать: после и: перед псевдоэлементом на поле ввода.

Вкратце, это «нестандартное соответствие», что он работает «отлично» на хроме.

+0

ОК, спасибо, так что я должен изменить в своем коде, чтобы выполнить ту же задачу. –

Смежные вопросы