2013-05-09 8 views
6

Wpadłem na naprawdę dziwny problem. (http://jsfiddle.net/Fq68D/)Dziwny problem z paddingiem i białymi spacjami: nowrap w Chrome i IE

HTML

<div> 
    <p>Hello World!</p> 
</div> 

CSS

div { 
    display:inline-block; 
} 
p { 
    background-color:#ccc; 
    padding:10%; 
    white-space:nowrap; 
} 

W Firefoksie działa jak oczekiwano, tekst wpisuje się w p, i ma wyściółkę,

Choć w Chrome i IE tekst staje z pudełka.

enter image description here

Co jest tego przyczyną? Jakiekolwiek obejścia?

+0

Ma to związek z odsetkiem dopełnienia. Zobacz http://stackoverflow.com/questions/9320934/quirky-percentage-interpretation-in-webkit – Sablefoste

+0

Jeśli załaduję twoje skrzypce, widzę problem, ale po kliknięciu uruchom poprawi się. – j08691

+0

@ j08691, dziwne, to samo dzieje się, gdy sprawdzasz element p w chrome i wyłącza, a następnie włącz ponownie wypełnienie. – Tonik

Odpowiedz

9

Dodaj display: inline-block; do p element:

http://jsfiddle.net/Fq68D/1/

+0

Dzięki! to rozwiązuje p rozmiar, ale div jest nadal mniejszy niż p, a kiedy dodaję przepełnienie: ukryty do div, p odcina ... czy jest jakiś sposób, aby to naprawić? Cały punkt tego kodu polega na tym, aby sprawić, by obraz działał poprawnie. – Tonik

+0

Po zmianie '%' na na przykład jednostkę 'px', wszystko jest w porządku. Myślę, że to jest ok. Spójrzmy na to. 'p' ma 10% wypełnienia. Musi być obliczony na podstawie elementu nadrzędnego "div". W tym przypadku div nie ma szerokości. Ta szerokość jest oparta na szerokości p, ale bez dopełnienia. Mam nadzieję, że rozumiesz co mam na myśli :) – WooCaSh

+0

Czy moja odpowiedź była pomocna? – WooCaSh

Powiązane problemy