2012-10-11 15 views
12

This StackOverflow answer gerektirmeden CSS3 kullanarak onay kutularını stilini nasıl açıklayan bir <label>:: Bir girdide sözdizimi öğesi kullanmadan önce: [type = checkbox]?

input[type=checkbox]:before { 
    content:""; display:inline-block; width:12px; height:12px; background:red; 
} 

Fiddle

Bu Chrome 22'de çalışır ancak Firefox 15 veya IE 9.

destek eksikliği göz önüne alındığında değil İkinci iki tarayıcıda , Chrome'un CSS3 spesifikasyonuna göre geçerli davranışı nedir?

cevap

15

Bu, bilinmeyen arazi; özellikler, işleri açıklığa kavuşturmaz. CSS 2.1 spec says: “Not. Bu belirtim, aşağıdakilerin etkileşimini tam olarak tanımlamaz: önce ve sonra: değiştirilen öğelerle (HTML'de IMG gibi). Bu, gelecekteki bir şartnamede daha ayrıntılı olarak tanımlanacaktır. ”Ve, tartışmasız INPUT, bir replaced element in CSS 2.1 sense olarak görülebilir.

Bu sözde öğelerin, IMG veya INPUT gibi herhangi bir içeriğe sahip olmayan (yani, EMPTY tarafından bildirilen içeriğe sahip olmayan) öğeler için kullanılamayacağını düşünebiliriz. Bununla birlikte, ifadeler IMG'den ve Appendix D seçicinin br:before seçicisiyle bir kuralı vardır.

Ve CSS3 Seçiciler, öneri statüsüne erişmiş CSS3 birkaç parçalarından biri, değil net şeyler yapar. It says: “Sözcüğün öğelerinden önce ve :: sonra oluşturulan öğeler, bir öğenin içeriğinden önce veya sonra oluşturulmuş içeriği tanımlamak için kullanılabilir. Bunlar, CSS 2.1 [CSS21] 'de açıklanmıştır.

+0

Sözde öğe tanımları diğer modüllere taşındı ve Seçiciler yalnızca sözdizimini tanımlamak ve CSS1 ve CSS2 sözde öğelerinin kısa bir özetini vermek üzere bırakıldı. Umarım, ilgili modülde '' before' ve ':: after' için (muhtemelen Üretilen/Değiştirilen Content Level 3 modülünün yeniden yazılmış yeniden yazımı) için bunu netleştirirler. – BoltClock

7

Chrome'un davranışının geçersiz olduğunu düşünüyorum. take a look here, ::before ve ::after sözde öğelerin, content hedef öğenin content önce veya sonra eklediğini söyler. Giriş elemanları content; Sadece bir value var. Örneğin, <input>Pasta</input> yapamazsınız.

Bunların tümü doğruysa, Chrome'un davranışının geçersiz olduğu, IE ve Firefox'un doğru olduğu görülecektir.

+1

Bir taslağa özellikle atıfta bulunmadıkça, halihazırda önerileri olan teknik özelliklerin çalışma taslaklarına bağlantı yapmaktan kaçının: http://www.w3.org/TR/CSS21/ generate.html – BoltClock

+0

@BoltClock İyi çağrı. Bunun için üzgünüm. – jmeas

İlgili konular