結論
コロンの前に \\
を付与してエスケープします。
例えば <div id="foo:bar">
を指定する場合には #foo\\:bar
と指定します*1。
最大のハマりどころ
DevTools で Copy selector
をした際に、上記の例の場合だと #foo\:bar
という値でコピーされます。そう、エスケープの \
が一つしかありません。
パーセントエンコードをしたりダブルクォーテーションでくくったりしてしばらくハマりました……。
*1:ただし、指定する状況や言語によるとは思います