Jak usunąć obramowanie wokół skoncentrowanej treści, którą można edytować przed?


98

Kiedy ustawię element pre na contentededable i ustawiam na nim fokus do edycji, otrzymuje on kropkowaną ramkę wokół niego, która nie wygląda zbyt ładnie. Granicy nie ma, gdy fokus znajduje się gdzie indziej.
Jak usunąć tę granicę?

Dzięki

Odpowiedzi:


190

Ustaw outlinewłaściwość na 0px solid transparent;. Konieczne może być również ustawienie tego :focusstanu, na przykład:

[contenteditable]:focus {
    outline: 0px solid transparent;
}

6
@Christoffer: outlinenie będzie działać w IE7 lub starszym . W tych przeglądarkach musisz ustawić hideFocuswłaściwość elementu na true, np.$('#myEl').get().hideFocus = true;
Andy E

13
Dla porównania:[contenteditable]:focus { outline: 0px solid transparent; }
Alf Eaton,

Dziękuje wszystkim. Uratowałem dzień. FYI, widzę tylko zarys w Chrome. Firefox i IE11 tego nie pokazują.
nevf

4
Możesz też po prostu użyćoutline: none
Yves M.

Alf, Twój komentarz powinien być oznaczony jako odpowiedź:>
foreyez

14

Możesz również dodać :read-writepseudoklasę do stylizowanych elementów, które są edytowalne.

Na przykład ( jsFiddle ) :

.element:read-write:focus {
     outline: none;
}

Przeczytaj więcej o dorszach tutaj .

:read-writeSelektor pseudo-klasa jest obsługiwana w Chrome, Safari i Opera 14+, a na iOS. Jest obsługiwany z -moz-prefiksem w przeglądarce Firefox w formularzu :-moz-read-write. :read-writeSelektor nie jest obsługiwana w programie Internet Explorer i na Androida.


Jaka jest różnica między tym a .element:focus?
JJJ

1
Dotyczy to tylko selektorów, które można edytować.
morkro

4
Jakiekolwiek korzyści z tego wynikają [contenteditable]:focus ?
Joel

także: włączony pseudo selektor
Walle Cyril
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.