Keď doplníš display: block (alebo inline-block), tak to funguje:
<!DOCTYPE html>
<html><head>
<meta charset="utf-8" />
<title>Test</title>
<style>
#lang_en { background-image: url(pic/vlajka_en.JPG); width:42px; height:22px; display: block; }
</style>
</head><body>
<a href="http: //www. neco. cz/index_en.html" id="lang_en"></a>
</body></html>
Bez toho display: block sa to zobrazuje inline a inline elementom nevieš nastaviť šírku a výšku. A keďže v tom elemente nemáš žiaden text, tak má nulovú šírku a nič sa ti nezobrazí.Ďalšia možnosť ak nechceš použiť inline-block, je nastaviť padding na polovičné rozmery obrázka a dať nulový line-height a font-size. Ale to je už taký hack pre zastaralé prehliadače.