当前位置: 首页 > 面试题库 >

jQuery如何将CSS应用于所选文本

凌志学
2023-03-14
问题内容

我正在尝试将CS​​S应用于选定的文本。我尝试了以下操作,但不起作用。我正在使用Firefox。

$(document).keyup(function(){
savedRange = selection.getRangeAt(0);
$(savedRange).wrap('<span style="color:red"></span>');
});

我也试过

savedRange = selection.getRangeAt(0);
$(savedRange).css('color', 'red');

我可以使用execcommand使用contentEditable做到这一点,但是execcommand应用html标签而不是内联样式。例如:<font/>代替style="font.."。我需要应用内联样式,而不是不推荐使用的html标签。我想使用jQuery
css()属性来应用样式。


问题答案:

为此,我建议使用我的Rangy库的CSS类applier模块。它适用于所有主要浏览器以及任何选择。它还将打开和关闭CSS类。

这是另一个问题的示例:[如何包装带有html标签的window.getSelection()。getRangeAt(0)中的文本选择?

例:

<style type="text/css">
    span.red {
        color: red;
    }
</style>
<script type="text/javascript">
    var redApplier;

    window.onload = function() {
        rangy.init();
        redApplier = rangy.createCssClassApplier("red", true);
    };

    function makeSelectionRed() {
        redApplier.applyToSelection();
    }
</script>

更新

如果没有选择使用类,则仍然可以使用它的变体,尽管它有点round回绕:您可以使用Rangy应用一个类,然后使用jQuery查找此类的span并将CSS添加到每个类。这是一个例子:

function makeSelectionRed() {
    var randomCssClass = "rangyTemp_" + (+new Date());
    var classApplier = rangy.createCssClassApplier(randomCssClass, true);
    classApplier.applyToSelection();

    // Now use jQuery to add the CSS colour and remove the class
    $("." + randomCssClass).css({"color": "red"}).removeClass(randomCssClass);
}


 类似资料:
  • 问题内容: 我有一个简单的页面,其中包含一些iframe部分(以显示RSS链接)。如何将相同的CSS格式从首页应用到iframe中显示的页面? 问题答案: 编辑:除非设置了适当的CORS标头,否则这不能跨域工作。 这里有两件事:iframe块的样式和嵌入在iframe中的页面的样式。您可以按通常方式设置iframe块的样式: 必须通过将iframe中嵌入的页面样式包含在子页面中来进行设置: 或者可

  • 问题内容: 我无法获得CSS生成的内容可用于元素: 有没有人有一个解决方案 实际 工作?提前致谢。 问题答案: 您可以使用jQuery的函数来访问它。 例 这是一个示例,向我展示了如何将css应用于通常在屏幕左上方找到的jQuery徽标。请注意,它必须是相同的域/端口等,因此这就是我的示例在iframe中使用jsfiddle的原因。

  • 问题内容: 所以我目前有一个带有两个按钮的jQuery对话框:保存和关闭。我使用以下代码创建对话框: 但是,使用此代码时,两个按钮的颜色相同。我希望我的“取消”按钮与“保存”使用不同的颜色。有没有办法使用一些内置的jQuery选项来做到这一点?我从文档中没有得到太多帮助。 请注意,我正在创建的“取消”按钮是预定义的类型,但是“保存”是我在定义自己。不知道这是否对这个问题有影响。 任何帮助,将不胜感

  • 问题内容: 我在网页上使用。我为按钮和其他控件使用了不同的CSS类。但是由于上述标记,我无法添加任何类,样式来浏览按钮。 有什么方法可以更改其默认外观? 谢谢是提前。 问题答案: 你不能那样做。您只能将样式应用于整个样式。 您可以使用CSS hacks将其替换为您喜欢的image和image:hover。 请记住,该属性在Firefox 3.6上不起作用;您可以改用增加高度。

  • 问题内容: 我创建了一个非常大的地图,其中包含地图区域内的多个多边形区域(每个区域都超过20个坐标)。但是,您不能将css添加到AREA标签,因为有人告诉我它不是可见元素。我想做的是,当用户将鼠标悬停在地图上的某个区域上时,我希望通过对特定的AREA元素应用1px边框来“突出显示”该区域。有办法吗?不,我不会使用矩形。 问题答案: 如果您希望能够使用任意形状并仍然使用样式,是否考虑过尝试SVG?

  • 谢谢你的帮助。。。 在将html表格标签/片段(我已转换为字符串)转换为PDF文档时... 我能够使用此技术成功地将css样式应用于PDF文档。。。 但是,我没有成功地使用现有的css文件(即,使用CssFile对象)将css应用于PDF文档,如下所示。。。 。。。我一直无法让这个工作,不知道是什么问题。。。我正在。。。 如何正确使用CssFile和CssResolver将css样式——即从现有的