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

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;
}

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.


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.