It took me longer to find the cause of this problem than it should have, because the cause is simple. HTML <br>
tags are legal only within <p>
or <div>
containers. Even so, they generally can be used almost anywhere, because most HTML code is within some higher-level <p>
or <div>
container. However, <form>
containers are treated as “island areas” within other code where higher-level <p>
or <div>
containers are irrelevant.
The map location balloon styling difference between IE 6 or 7 and other web browsers is due to the fact that IE 6 and 7 enforce the <br>
/container rule whereas IE 8 and Firefox 3.6.13 do not. The fix is simply to change lines 706 through 709 in “eme_locations.php” from:
$res .= '<label for="saddr">'.__('Your Street Address','eme').'</label><br />';
$res .= '<input type="text" name="saddr" id="saddr" value="" />';
$res .= '<input type="hidden" name="daddr" value="'.$location['location_address'].', '.$location['location_town'].'" />';
$res .= '<input type="hidden" name="hl" value="'.$locale_code.'" />';
To:
$res .= '<div><label for="saddr">'.__('Your Street Address','eme').'</label><br />';
$res .= '<input type="text" name="saddr" id="saddr" value="" />';
$res .= '<input type="hidden" name="daddr" value="'.$location['location_address'].', '.$location['location_town'].'" />';
$res .= '<input type="hidden" name="hl" value="'.$locale_code.'" /></div>';
That causes map balloon content formatting to be the same in IE6/7/8 and Firefox 3.6.13. I don’t have IE9 installed, but I am reasonably sure the change will work correctly with it too, because it is rule-compliant.