2013-08-28 13 views
7

Proszę mi powiedzieć, dlaczego :before pseudo-element nie zachowuje się jak zwykły img w tym przypadku:CSS wielkość pseudo-element problem

enter image description here

, lewy div z img wewnątrz i img „s szerokość i wysokość są równe 100%. Prawy to div o szerokości i wysokości :before i :before również 100%, ale efekt jest inny!

(wiem, mogę użyć background-image obejście, ale to, co jest nie tak z :pseudo gdy jego content nieruchomość jest url()?)

Fiddle: http://jsfiddle.net/Tp9JG/4/

+0

ja befuddled przez to, ale wygląda na to '' height' width' i po prostu nie stosuje się do obrazów wstawionych przez 'url()', zobacz http://stackoverflow.com/questions/14978807 – xec

+0

@xec dzięki do Tomzana, znaleziono to: http://lists.w3.org/Archives/Public/www-style/2011Nov/thread.html#msg451 – Cherniv

+0

Zwróć też uwagę, że nie możesz kontrolować 'width' jeśli zdecydujesz się na' display: inline ; '. – connexo

Odpowiedz

4

Niestety nie można kontrolować wielkość obrazu przy określaniu to dzięki zawartości, Ale może jeśli używasz go jako tło:

.with_before:before{ 
    content:''; 
    background-image: url('http://i.stack.imgur.com/CAAFj.jpg'); 
    background-size: 100% 100%; 
    width: inherit; 
    height: inherit; 
    display: inline-block; 
} 

czeku to jsFiddle

I za to pytanie, dlaczego nie możemy styl generowanej treści: Nie możemy, ponieważ wygenerowane treść wydanego w generowanym polu, a ty może styl że pudełko, ale nie treści.

referencje:

  1. check this post
  2. another lengthy discussion on this subject

Proszę zauważyć, że różnych przeglądarek pokazują bardzo różne zachowania.