Como faço para remover a borda em torno de um conteúdo pré-editável em foco?

96

Quando eu defino um pré-elemento como contenteditable e coloco o foco nele para edição, ele recebe uma borda pontilhada ao redor que não parece muito boa. A fronteira não está lá quando o foco está em outro lugar.
Como faço para remover essa borda?

obrigado

Christoffer
fonte

Respostas:

188

Defina a outlinepropriedade como 0px solid transparent;. Você pode ter que defini-lo no :focusestado também, por exemplo:

[contenteditable]:focus {
    outline: 0px solid transparent;
}
Marius
fonte
6
@Christoffer: outlinenão funcionará no IE7 ou inferior. Nestes navegadores, você precisa definir a hideFocuspropriedade do elemento a true, ou seja,$('#myEl').get().hideFocus = true;
Andy E
13
Para referência:[contenteditable]:focus { outline: 0px solid transparent; }
Alf Eaton
Obrigado a todos. Salvei o dia. Para sua informação, estou apenas vendo o esboço no Chrome. Firefox e IE11 não mostram isso.
nevf
3
Você também pode simplesmente usaroutline: none
Yves M.
Alf, seu comentário deve ser marcado como a resposta:>
foreyez
14

Você também pode adicionar a :read-writepseudoclasse aos elementos de estilo que são editáveis.

Por exemplo ( jsFiddle ) :

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

Leia mais aqui em codrops .

O :read-writeseletor de pseudo classe é compatível com Chrome, Safari e Opera 14+ e iOS. É compatível com o -moz-prefixo no Firefox no formulário :-moz-read-write. O :read-writeseletor não é compatível com Internet Explorer e Android.

Morkro
fonte
Qual é a diferença entre isso e .element:focus?
JJJ
1
Só se aplica a seletores que são editáveis ​​por conteúdo.
morkro
4
Algum benefício em usar isso [contenteditable]:focus?
Joel
também: pseudo seletor ativado
Walle Cyril