我正在开发一个具有特定于该平台的小部件的数据平台 我正在使用一个名为map的小部件来显示地图,并且 title 链接到数据库中的地图。 地图包含div标题:
<map>
<div class="title">Title</div>
other divs ..
</map>
当我编码时,我无法访问div标题,因为它包含在小部件中。 我想用css更改标题的文本。
我查看了这些例子: How can I replace text with CSS?
并做了:
第一个选项
.title伪{ visibility:hidden的 }
.title伪:后{
content:"NewTitle" ;
visibility:visible;
}
但是“标题”只是隐藏但仍占用空间所以我的“NewTitle”没有居中
答案 0 :(得分:1)
JavaScript解决方案是执行此操作的标准:
$('.title').html("new title here"); // jquery
document.getElementsByClassName("title")[0].innerHTML = "new title here" // pure JS
小提琴:
答案 1 :(得分:0)
虽然您的问题未使用css标记,但您获取文字的初始方法是在正确的轨道上。您只需要在伪元素上显式设置display:block;
。然后在absolute
和伪元素上放置伪元素div
并使用相同的填充来保持相似的外观。
这样的事情:
div.title {
visibility: hidden; position: relative;
padding: 4px;
}
div.title::after {
content: 'Replaced text';
visibility: visible;
display: block; position: absolute;
padding: 4px; top: 0px;
}
<map>
<div class="title">Title</div>
</map>
然而,请注意,这仍然是一个黑客。 Javascript是更好的方式,因为文本将在你的控制之下。
答案 2 :(得分:0)
这有点像hacky,但是在第一次尝试之后只需添加margin-left:-272px(取决于你的标题)。 https://jsfiddle.net/jmser6yd/2/
.title
{
visibility: hidden;
}
.title:after
{
content: "New Title";
visibility: visible;
margin-left: -272px;
}
我仍然更喜欢javascript / jQuery解决方案,正如@messerbill建议的那样