2014-05-07 12 views
5

Gdy jest pusty div z contenteditable="true":`contenteditable problem = wysokość TRUE w FireFox

CSS:

[contenteditable="true"] { 
    border: 1px dashed #dedede; 
    padding: 3px; 
} 

HTML:

<div contenteditable="true"> 
    <!-- blank by default --> 
</div> 

W IE i Chrome, to pokazuje wysokość jak normalne pole wejściowe z niewielką wyściółką. W przeglądarce Firefox pokazuje tylko, że dopełnienie 3px dodałem w stylach. W/o to, zapada się i jest tylko tak wysoka jak granica.

Czy wiesz, że jest to błąd przeglądarki Firefox? Czy możesz zaproponować sposób, aby sobie z tym poradzić?

+1

Prawdopodobnie polegasz na domyślnych stylach przeglądarek, dlatego widzisz różnice. Spróbuj użyć resetowania CSS i zastosowania swoich stylów. http://www.cssreset.com/ – Arbel

+0

Widziałem tylko ten problem w Firefoksie. – Skitterm

+0

Zobacz również https://github.com/w3c/editing/issues/70 – Nickolay

Odpowiedz

13

obejście:

[contenteditable='true']:before { 
    content: "\feff "; 
} 

CSS2 section 10.6.3:

wysokość elementu jest odległość od jego górnej krawędzi treści do pierwszego stosowane z następujących:

  1. dolna krawędź w ostatnim polu liniowym, jeśli ramka ustanawia kontekst formatowania liniowego z jedną lub większą liczbą linii
  2. dolną krawędź dolnego (ewentualnie zwiniętego) marginesu ostatniego potomka, jeśli dolny margines dziecka nie zapada się z dolnym marginesem elementu
  3. dolny brzeg ostatniego dziecka w trakcie przepływu, którego wierzchołek margines nie zwinąć z dolnego marginesu tego elementu
  4. zera, inaczej

Dla tej pustej div,

1 do 3 nie mają zastosowania, ponieważ div jest pusty. Nie ma pól liniowych ani dzieci. Zastosowanie ma punkt 4.

Obejście wymusza co najmniej jedno pole liniowe wewnątrz elementu div, aby uzyskać niezerową wysokość.

+0

pracował idealnie, dzięki. – KickingLettuce

+0

Dla tych, jak ja, którzy szukają specjalnej jednostki do użycia z "min-height" CSS, która wskazuje wysokość linii, [nie ma takiej jednostki ATM] (https://bugzilla.mozilla.org /show_bug.cgi?id=1098151#c18). – Nickolay

0

Działa to dobrze dla mnie w firefox

http://jsfiddle.net/D6D6A/

html:

<div contenteditable='true'></div> 

css: zmieniona na czarną obwódką więc łatwiej zobaczyć

[contenteditable='true'] { 
    border: 1px dashed #000; 
    padding: 3px; 
} 

zawiadomienie jeśli zmienisz paddin g do 0px, nie ma wysokości. Jednak przy dopełnieniu 3px działa tak, jak powinien.

+0

Dzięki za odpowiedź. Niestety, w Firefoksie v28.0 dla Windows (testowałem), skrzypce, które opublikowałeś, dają te same wyniki, o których wspominałem w moim pytaniu. – KickingLettuce

+0

To samo dotyczy Firefoksa - wysokość się zawala. – Skitterm

Powiązane problemy