当我尝试在WordPress页面中插入地图时,我只得到一个灰色字段,带有一些控件,如图所示:
不管我是如何输入页面的:使用一个特殊的插件或使用我自己的java代码。我使用WordPress 3.2.1,并尝试了WordPress 1.0.3版的Google地图和WordPress 1.3.1版的Yandex地图插件,以及我自己的代码(我正在以html模式将其插入页面正文):
<script src="http://api-maps.yandex.ru/1.1/index.xml?key=AMJ1a04BAAAAOmnzVwIABchZJOPWw6JctS7eImmgemUoTmoAAAAAAAAAAABWck3wMFJCrzXTLH0AiuIpVEzpZA=="
type="text/javascript"></script>
<script type="text/javascript">
window.onload = function () {
var mapHybrid = new YMaps.Map(document.getElementById("YMapsHybridTypeId"));
var mlHybrid = new YMaps.YMapsML("http://maps.yandex.ru/export/usermaps/jR_c2iaexA-htEui33mTTEmko4oPpRS-/");
mapHybrid.addOverlay(mlHybrid);
mapHybrid.setCenter(new YMaps.GeoPoint(-1,-1));
}
</script>
<div id="YMapsHybridTypeId" style="width:640px; height:480px; float: left; margin: 10px 0 0 0"></div>
我在不同的浏览器下测试过这个问题:Opera10.51、Google Chrome、IE8
最合适的回答,由SO网友:Jan Fabry 整理而成
这些错误来自WordPress主题中的CSS规则,这些规则也应用于地图上的元素。例如,在您的页面上,我可以通过禁用#content table
和#content tr th
添加额外边距的规则。在测试设置中,我甚至在瓷砖之间得到了灰色间隙,因为.entry-content img { max-width: 97.5% }
2011年。
可能最简单的修复方法是将地图嵌入到iframe中,以便不在那里应用主要的CSS规则(我不知道您是否可以使用API来实现这一点?)。如果这对您的情况不可接受,您可以附加额外的规则undo the WordPress rules 对于地图(例如。.entry-content .map-canvas img {max-width: none}
), 或者要求地图提供者添加更明确的规则(使用!important
) 它们提供的样式表。