CartoDB:信息窗口中的样式块被忽略。无法覆盖自定义样式
CartoDB: Style block in infowindow get's ignored. Can't override custom styles
我正在尝试在 CartoDB Editor. From the docs 中制作自定义信息 window,应该可以使用 <style>
块来指定或覆盖默认样式。但似乎整个街区都被忽略了。当我查看 Chrome 开发工具时,我的样式根本不存在。它们不会被覆盖,它们只是不存在。不过,内联样式效果很好。
信息 window 弹出窗口的标记:
<style type="text/css">
div.cartodb-popup.v2.custom {
background: #666;
}
div.cartodb-popup.v2.custom:before {
border-top: 14px solid #666;
}
div.cartodb-popup.v2.custom h4 {
color: #fff;
}
div.cartodb-popup.v2.custom p {
color: #ff0;
}
</style>
<div class="cartodb-popup v2 custom">
<a href="#close" class="cartodb-popup-close-button close">x</a>
<div class="cartodb-popup-content-wrapper">
<h4>{{boroname}}</h4>
<p>Borough code: {{borocode}}</p>
</div>
<div class="cartodb-popup-tip-container"></div>
</div>
知道我可能做错了什么吗?我已经尝试过使用和不使用 custom
class,但我把它留在那里,因为我认为一些额外的特性不会造成任何伤害。我很确定这种 <style>
方法在一年前就奏效了。
我可以使用内联样式来完成大部分样式设置,但这非常麻烦并且不适用于伪元素,例如小弹出箭头。
有什么方法可以在 Web 界面上执行此操作,还是我们需要将其托管在我们自己的服务器上以编辑 .js 脚本等?
这是我的地图:https://stekhn.cartodb.com/viz/a2534c80-87b0-11e5-a2ef-0e787de82d45/embed_map
上面的例子已经过时了,信息窗口编辑器中的<style>
块不再被允许。您只能在 CartoDB 前端编辑器中使用 CSS 内联样式。要完全控制信息窗口和工具提示的外观,请使用 cartoDB.js。在此示例中,我将弹出窗口背景颜色更改为灰色:
<link rel="stylesheet" type="text/css" href="http://libs.cartocdn.com/cartodb.js/v3/3.15/themes/css/cartodb.css">
<script src="http://libs.cartocdn.com/cartodb.js/v3/3.15/cartodb.js"></script>
<style type="text/css">
div.cartodb-popup.v2.custom {
background: #666;
}
div.cartodb-popup.v2.custom:before {
border-top: 14px solid #666;
}
div.cartodb-popup.v2.custom h3,
div.cartodb-popup.v2.custom p {
color: #fff;
}
</style>
<section id="map"></section>
<script type="infowindow/html" id="template">
<div class="cartodb-popup v2 custom">
<a href="#close" class="cartodb-popup-close-button close">x</a>
<div class="cartodb-popup-content-wrapper">
<h3>{{name}}</h3>
<p>{{description}}</p>
</div>
<div class="cartodb-popup-tip-container"></div>
</div>
</script>
<script type="text/javascript">
cartodb.createVis('map', 'https://your-accout.cartodb.com/api/v2/viz/477bdfc0-8210-11e5-936b-0e787de82d45/viz.json', {
tiles_loader: true,
center_lat: 48.6,
center_lon: 11.4,
zoom: 7
})
.done(function(vis, layers) {
var subLayer = layers[1].getSubLayer(1);
// Select template from dom
subLayer.infowindow.set('template', $('#template').html());
});
</script>
奇怪的是,我能够让我的信息window 在不使用任何脚本标签的情况下动态变高。我使用 Web 界面设置 window 的宽度,然后通过单击顶部附近的按钮将其添加到信息 window 自定义 HTML。
{{mtrsrc}}
是我的 table.
中的一个专栏
这是我的代码:
<div class="cartodb-popup v2 custom_infowindow">
<a href="#close" class="cartodb-popup-close-button close">x</a>
<div class="cartodb-popup-content-wrapper">
<div class="row">
<div class="label"></div>
<div class="info">
<img height="300" src="http://pesticideresearch.com/fum/{{mtrsrc}}.png" />
</div>
</div>
</div>
<div class="cartodb-popup-tip-container"></div>
</div>
我正在尝试在 CartoDB Editor. From the docs 中制作自定义信息 window,应该可以使用 <style>
块来指定或覆盖默认样式。但似乎整个街区都被忽略了。当我查看 Chrome 开发工具时,我的样式根本不存在。它们不会被覆盖,它们只是不存在。不过,内联样式效果很好。
信息 window 弹出窗口的标记:
<style type="text/css">
div.cartodb-popup.v2.custom {
background: #666;
}
div.cartodb-popup.v2.custom:before {
border-top: 14px solid #666;
}
div.cartodb-popup.v2.custom h4 {
color: #fff;
}
div.cartodb-popup.v2.custom p {
color: #ff0;
}
</style>
<div class="cartodb-popup v2 custom">
<a href="#close" class="cartodb-popup-close-button close">x</a>
<div class="cartodb-popup-content-wrapper">
<h4>{{boroname}}</h4>
<p>Borough code: {{borocode}}</p>
</div>
<div class="cartodb-popup-tip-container"></div>
</div>
知道我可能做错了什么吗?我已经尝试过使用和不使用 custom
class,但我把它留在那里,因为我认为一些额外的特性不会造成任何伤害。我很确定这种 <style>
方法在一年前就奏效了。
我可以使用内联样式来完成大部分样式设置,但这非常麻烦并且不适用于伪元素,例如小弹出箭头。
有什么方法可以在 Web 界面上执行此操作,还是我们需要将其托管在我们自己的服务器上以编辑 .js 脚本等?
这是我的地图:https://stekhn.cartodb.com/viz/a2534c80-87b0-11e5-a2ef-0e787de82d45/embed_map
上面的例子已经过时了,信息窗口编辑器中的<style>
块不再被允许。您只能在 CartoDB 前端编辑器中使用 CSS 内联样式。要完全控制信息窗口和工具提示的外观,请使用 cartoDB.js。在此示例中,我将弹出窗口背景颜色更改为灰色:
<link rel="stylesheet" type="text/css" href="http://libs.cartocdn.com/cartodb.js/v3/3.15/themes/css/cartodb.css">
<script src="http://libs.cartocdn.com/cartodb.js/v3/3.15/cartodb.js"></script>
<style type="text/css">
div.cartodb-popup.v2.custom {
background: #666;
}
div.cartodb-popup.v2.custom:before {
border-top: 14px solid #666;
}
div.cartodb-popup.v2.custom h3,
div.cartodb-popup.v2.custom p {
color: #fff;
}
</style>
<section id="map"></section>
<script type="infowindow/html" id="template">
<div class="cartodb-popup v2 custom">
<a href="#close" class="cartodb-popup-close-button close">x</a>
<div class="cartodb-popup-content-wrapper">
<h3>{{name}}</h3>
<p>{{description}}</p>
</div>
<div class="cartodb-popup-tip-container"></div>
</div>
</script>
<script type="text/javascript">
cartodb.createVis('map', 'https://your-accout.cartodb.com/api/v2/viz/477bdfc0-8210-11e5-936b-0e787de82d45/viz.json', {
tiles_loader: true,
center_lat: 48.6,
center_lon: 11.4,
zoom: 7
})
.done(function(vis, layers) {
var subLayer = layers[1].getSubLayer(1);
// Select template from dom
subLayer.infowindow.set('template', $('#template').html());
});
</script>
奇怪的是,我能够让我的信息window 在不使用任何脚本标签的情况下动态变高。我使用 Web 界面设置 window 的宽度,然后通过单击顶部附近的按钮将其添加到信息 window 自定义 HTML。
{{mtrsrc}}
是我的 table.
这是我的代码:
<div class="cartodb-popup v2 custom_infowindow">
<a href="#close" class="cartodb-popup-close-button close">x</a>
<div class="cartodb-popup-content-wrapper">
<div class="row">
<div class="label"></div>
<div class="info">
<img height="300" src="http://pesticideresearch.com/fum/{{mtrsrc}}.png" />
</div>
</div>
</div>
<div class="cartodb-popup-tip-container"></div>
</div>