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つの方法として紹介しておきます。


npm install時に「cb() never called!」とエラーが表示されたときの解決法
Safari 12.1から外観モード(ライト/ダーク)の判定をCSSで行えるように!
「epel-release」インストール後にyum installで「Cannot retrieve metalink for repository」と表示される場合の対処法
CSS疑似要素の「:empty」でタグの中身が空のときのスタイルを設定する
JavaScriptのテンプレートリテラル内で条件分岐を行う方法
WordPressでショートコードを作成する方法
Dart Sassでファイルを分割して管理する方法|Dart Sass入門
HTMLタグの入力をラクにするスニペット集
WordPressのカスタム投稿タイプを追加後、ページは存在しているはずなのに404になる場合の解決方法
AirPodsで片耳を外しても再生が止まらないようにする方法
MacのKeynoteにハイライトされた状態でコードを貼り付ける方法
iTerm2でマウスやトラックパッドの操作を設定できる環境設定の「Pointer」タブ
DeepLで「インターネット接続に問題があります」と表示されて翻訳できないときに確認すること
Ulyssesの「第2のエディタ」表示を使って2つのシートを横並びに表示する
チャットサービス統合アプリのStationがChrome拡張機能になって登場!キーボードだけでよくアクセスするサイトへ移動できる
gulpでPostCSSを使う方法
Stationで複数のGoogleアカウントでGoogle Driveを使用する方法
Google Chromeの別アカウントとのブックマークを同期する「TeamSync Bookmarks」
Figmaでサクッとワイヤーフレームが作れる素材検索プラグイン「Wireframe」
テーブルタグ一式をすばやく・ラクに入力するためのスニペットサンプル
gulpのwatch機能を使って、監視ファイルに変更があった時にタスクを実行する
1Passwordでウェブサイトの入力フォームを一瞬で入力する方法
選択テキストをHTMLタグですぐ囲めるようになるVisual Studio Code拡張機能「htmltagwrap」