Google Chromeでinput要素の補完機能を使うと背景に色がついてしまう問題

Google Chromeでinput要素をクリックすると、補完候補が表示されます。
そしてこれをクリックすると、背景色がついた状態で候補が入力されます(Google Chromeのバージョンによるのか分かりませんが、「白色」だったり「青色」「黄色」のときなど背景色は様々です)。

白色の場合はまだ気になりませんが、「青色」や「黄色」だと気になります。
発生条件
これはGoogle Chromeに限らずですが、ブラウザでは<input>のname属性と入力した情報(value属性)を保存しているようです。
そして、他サイトも含めて、同じname属性の<input>をクリックしてフォーカスしたときに候補が表示されます。
この候補をクリックして入力した情報にはCSSの疑似クラスの:autofillがつきます。
そしてGoogle Chromeでは、この:autofill(:-webkit-autofill)にデフォルトで背景色が設定されているため、背景色がついてしまいます。
解決策
普通にbackground-colorで上書きすることもできなかったため、少しトリッキーなやり方で対応します。
box-shadowでインナーシャドウを付けて上書きする
box-shadowで白色のインナーシャドウをつけて無理矢理背景色を上書きして対応します。
input:-webkit-autofill {
box-shadow: 0 0 0px 999px #fff inset;
}transitionで変化しないようにする
transitionを使って、補完後も色が変わらないようにしています。
input:-webkit-autofill {
transition: background-color 10000s ease-in-out 0s;
}そもそも補完されないようにする
autocompleteでoffを指定すると、そもそも候補一覧が表示されなくなって、補完されなくなります。
<input type="text" name="name" autocomplete="off">見た目の問題を解決するために、補完が使えなくなって利便性が損なわれるので対応としてはイマイチですが、1つの方法として紹介しておきます。


SourceTreeのカスタムアクションを使って差分ファイルだけをまとめる方法
.htaccessを使って、httpからhttpsへリダイレクトする設定方法
JavaScriptのforEach内で「continue」や「break」のような動作をさせる方法
WordPressで作成した記事をSlackでシェアしたときに、抜粋文が長く表示される場合の対処法
コーディング時に「アノテーションコメント」を使ってコードを見やすく管理する
WordPressのデータを取得できるWP REST APIの使い方
MacのRubyをrbenvで管理する方法
ファビコンや各種アイコンの作成と設定方法
Visual Studio Codeとスニペット・ドキュメント検索アプリの「Dash」連携を行うプラグイン
Vue CLIをインストールしたのに「command not found: vue」と表示されてしまう場合の対処法
AirPodsで片耳を外しても再生が止まらないようにする方法
MacのKeynoteにハイライトされた状態でコードを貼り付ける方法
iTerm2でマウスやトラックパッドの操作を設定できる環境設定の「Pointer」タブ
DeepLで「インターネット接続に問題があります」と表示されて翻訳できないときに確認すること
Ulyssesの「第2のエディタ」表示を使って2つのシートを横並びに表示する
JavaScriptで特定のOSやブラウザの判定を行う方法
CSS Nite in Kobe, vol.51「すべての人がカメラを持つ時代の SNS映え・ウェブ映えする写真撮影テクニック と 写真撮影の基礎」に参加してきました
Visual Studio Codeのファイル横に表示されるファイルアイコンのテーマまとめ
ソースコードをハイライトする軽量ライブラリ「Highlight.js」の導入方法と使い方
iPhoneでタッチが一切効かなくなった場合に強制再起動する方法
macOSのシステム環境設定「Spotlight」の設定見直し
「EvernoteSpotlightは、キーチェーン内の”Evernote”に保存されている機密情報を使用しようとしています」というダイアログボックスを非表示にする方法
Google日本語入力の辞書をATOKにインポートする方法
iTerm2でキーボードを使った操作を設定できる環境設定の「Keys」タブ
AlfredのWorkflowをコードを書いて作成する方法