【发布时间】:2014-05-30 03:00:27
【问题描述】:
我正在尝试显示 mailto 链接。用 CSS 可以吗?
html
<li class="fe footer_no_link"></li>
css
.footer_column .fe:after {content:"<a href="mailto:info@site.com">info@site.com</a>"; }
【问题讨论】:
我正在尝试显示 mailto 链接。用 CSS 可以吗?
html
<li class="fe footer_no_link"></li>
css
.footer_column .fe:after {content:"<a href="mailto:info@site.com">info@site.com</a>"; }
【问题讨论】:
您不能使用 CSS3 ::after 或 ::before 选择器添加 html 元素。 content:"" 属性只接受纯文本。
您必须记住,CSS 仅用于样式设置。这包括 ::before 和 ::after 选择器。
您最好的选择是使用 JavaScript 替代方案。
【讨论】:
您的值没有出现,因为语音标记需要转义或更改:
.fe:after {content:"<a href='mailto:info@site.com'>info@site.com</a>"; }
即便如此,您的内容也只会显示为静态文本,而不是呈现。
【讨论】:
使用伪元素添加的内容不会出现在 DOM 中,所以你不能。 但是你为什么要用 CSS 来做呢?它不是样式,正确的位置似乎直接在 HTML 文件上。
如果目标是阻止垃圾邮件,我通常使用这段 javascript:
var m;
m='in';
m+='f';
m+='o@exa';
m+='mpl';
m+='e.co';
m+='m';
$ele = document.getElementById('contact-mail');
$ele.href = 'mailto:'+m;
$ele.innerHTML = m;
邮件被拆分以确保它不会在任何文件中显示为电子邮件。
你可以在这里看到结果:http://jsfiddle.net/tzkDt/
【讨论】:
这可能对某人有用...
我没有使用 css 插入链接,而是使用 href & 类将其编码到 html 中,但将其留空。像这样:
<p>This text is always here.</p>
<a class="mobile" href="mailto:info@site.com"></a>
.mobile:after {
content:'Click here to email us.'
}
这样链接在有内容之前不会出现(高度:0,宽度:0)。
我将它用于响应式商店定位器,其中地图以小屏幕尺寸堆叠在位置列表的顶部,因此需要指向列表锚点的链接。我认为这是一个“设计”决定,这是这样做的唯一正当理由。
【讨论】:
您不能在 css 中将 html 添加到 content。除非你逃避一切。
或者,您可以使用 jQuery 并使用 .html(),例如:
【讨论】: