Mostrar IE: ms-clear pseudo elemento em pequenos elementos de entrada?
Existe uma maneira de dizer ao IE para mostrar o " X " mesmo que os elementos de entrada tenham apenas 50-60px de largura? A solução deve funcionar para a IE9 e superior.
1 answers
A sua melhor opção aqui é desactivar o botão de limpeza personalizado e fornecer o seu próprio. Poderá desactivar o botão Limpar no Internet Explorer e no Microsoft Edge assim:
::-ms-clear { display: none }
Isto não irá, No entanto, desactivar o botão de limpeza personalizado noutros navegadores, como o Google Chrome. No Chrome, terá de procurar um pseudo-elemento diferente:
::-webkit-search-cancel-button {
-webkit-appearance: none;
}
O padrão acima é entendido tanto pelo Chrome como pela Microsoft Edge . Para Internet Explorer, você vai precisar continue usando o elemento anterior ::-ms-clear
também.
<form>
<input type="search">
<button class="clear">✕</button>
</form>
Podemos então usar delegação de eventos para interceptar eventos click em .clear
no Pai <form>
:
var form = document.querySelector( "form" );
form.addEventListener( "click", function ( event ) {
event.preventDefault();
if ( event.target.className === "clear" ) {
event.target.previousElementSibling.value = "";
}
});
Pode ver o resultado final online em https://jsfiddle.net/jonathansampson/ety8bx93/.