CSSチェックボックスをFirefoxに表示する際に問題が発生します。私は:after:
要素を使用して新しいチェックボックスのスタイルを設定していますが、Webkitブラウザ(ChromeとSafari)では正常に動作しますが、Firefoxでは表示されません。私はそれを持っているので、ネイティブのチェックボックスが表示されますので、それはひどいではないが、私は一貫した経験をしたいと思います。クロスブラウザのCSSチェックボックスの問題
コードを検査すると、:after
要素がFFでレンダリングされていないようです。私はそれがCodepenに設定している
.checkbox {
label {
position: relative;
cursor: pointer;
padding-left: 1em;
}
&:hover {
input[type=checkbox] {
&:after {
cursor: pointer;
border-color: blue;
}
}
}
input[type=checkbox] {
position: absolute;
&:after {
background: white;
content: "";
display: inline-block;
width: 1.5em;
height: 1.5em;
position: relative;
top: -4px;
border-radius: 3px;
border: 2px solid gray;
transition: border 0.3s ease;
}
&:checked {
&:after {
background-image: url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgNDkgNDEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgaWQ9IlBhZ2UtMSIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+PHBvbHlsaW5lIGlkPSJQYXRoIiBzdHJva2U9IiM0MjkxREIiIHN0cm9rZS13aWR0aD0iMTEiIHBvaW50cz0iMy43NTY1MzE0OCAxOC45ODA0MDUyIDIyLjc1Mzc0MjQgMzMuMDg5OTk4NiA0NC41ODgzMTcxIDMuNDk1NDY5MjIiPjwvcG9seWxpbmU+PC9nPjwvc3ZnPg==);
background-repeat: no-repeat;
background-position: center left 2px;
background-size: 75%;
border-color: blue;
}
}
}
}
:
<div class="text-center checkbox">
<label>
<input type="checkbox" value="on">
</label>
</div>
CSS:
は、ここに私のHTMLです。私のCSSファイルでは、どこからこのコードをフォークして修正したかを書き留めました。私たちが使用しているマークアップを想定して、スタイル設定されている要素をいくつか微調整する必要がありました。インスピレーションコードは、さらに私を謎めいているクロスブラウザーで動作します!
おかげ@Christienとアンドリュー・チェックボックスのためのコードの下にこれをしようとし、このことができます。私はこの時点でマークアップを変更することができないので、フォールバックとしてネイティブのチェックボックスを使用することに固執していると思います。 –
ああ、お詫び申し上げます。私はマークアップが変更できないことを知らなかった。 –
この質問に多少似ているようですが、こちらをご覧ください: https://stackoverflow.com/questions/21220360/firefox-not-displaying-properly-before-and-after-pseudo-elements –