首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从带给定类的跨尾移除?

问如何从带给定类的跨尾移除?
EN

Stack Overflow用户
提问于 2014-08-05 06:20:25
回答 5查看 23.9K关注 0票数 7

我需要在给定跨度的值之后删除 。

HTML如下所示:

代码语言:javascript
复制
<span class="number">0.15&nbsp;</span>

辅助设备来自服务器(CMS)。

是否有任何方法可以通过使用CSS规则来删除?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2014-08-05 06:30:16

如果这个值是由CMS提供的,那么您可以通过str_replace('&nbsp;', '', $yourVar)修改这个值,然后再在span中回显它。

如果你不能访问这个,你也可以使用jQuery来做这个.正如穆罕默德·阿里所说:

代码语言:javascript
复制
var str = $('.number').html();
str = str.replace('&nbsp;', '');
$('.number').html(str);

像这样的东西会管用的。但有了CSS,我想是不可能的。

票数 3
EN

Stack Overflow用户

发布于 2014-08-05 06:41:26

你不能只用css来做这件事。不知何故,您必须为此使用jquery。使用正则表达式,您可以简单地做到这一点。

代码语言:javascript
复制
var span = $('span').html();
span = span.replace(/&nbsp;/g, '');
$('span').html(span);

演示

注意: &nbsp;来自CMS,当文档完全加载时,您必须使用jquery代码来替换它。

代码语言:javascript
复制
$(document).ready(function(){
    var span = $('span').html();
    span = span.replace(/&nbsp;/g, '');
    $('span').html(span);
});
票数 4
EN

Stack Overflow用户

发布于 2014-08-05 08:02:45

您不能使用CSS从文档内容中删除字符。这不是CSS的作用。可以添加要呈现的字符,包含生成的内容,但不能删除。

但是,您可能可以撤消字符对呈现的影响。请考虑以下示例:

代码语言:javascript
复制
<span class="number">0.15&nbsp;</span>foo

无中断空间(&nbsp;)有两种效果:它会导致可见的间距,与正常的空格字符相同,并且在浏览器格式化文本时防止“0.15”和“foo”之间的行间隔。为了防止后一种效果,您可以使用生成的内容添加一个正常的空间,但是当行间隔不出现时,会有太多的间隔。要解决这个问题,请将伪元素的宽度设置为零:

代码语言:javascript
复制
.number:after { content: " "; display: inline-block; width: 0; }

若要删除不间断空间的间隔效果,可以设置一个负的右边距。这方面的主要问题是,不间断空间(和空格)的宽度取决于字体。它平均约为一个em的四分之一,但它可能有很大的差异。如果您可以将字体视为固定字体(例如,您使用的是@font-face),则可以使用以下代码,只需根据需要调优数字值:

代码语言:javascript
复制
 .number {  display: inline-block; margin-right: -0.25em; }

作为一个副作用,这也可能允许在“0.15”和“foo”之间出现行间隔,因为浏览器可以以格式处理内联块,因此它们总是允许前后中断行。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25132329

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档