Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/463.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我们如何在css中为具有特殊字符的单词设置样式?_Javascript_Html_Css_Angular_Sass - Fatal编程技术网

Javascript 我们如何在css中为具有特殊字符的单词设置样式?

Javascript 我们如何在css中为具有特殊字符的单词设置样式?,javascript,html,css,angular,sass,Javascript,Html,Css,Angular,Sass,我在angular 2(5.0)中提出了一个应用程序。该应用程序的全部内容是获取流行推文 我在造型时遇到了一个问题。我得到一段虽然API 在印度,自焚仍然是一种社会抗议形式。还记得那个叫w的家伙吗? 我需要的是,我想给那些有#和@ 例如: @InTheWordsOfK @maidros78 #ereaad 那么,有没有可能在不使用JavaScript的情况下为此类单词添加一些基本样式呢?? 我们能用CSS解决它吗?怎么做 注意:我使用的是SCSS。这不是仅使用CSS就可以完成的。您将需要J

我在angular 2(5.0)中提出了一个应用程序。该应用程序的全部内容是获取流行推文

我在造型时遇到了一个问题。我得到一段虽然API

在印度,自焚仍然是一种社会抗议形式。还记得那个叫w的家伙吗?

我需要的是,我想给那些有
#
@

例如:

  • @InTheWordsOfK

  • @maidros78

  • #ereaad

那么,有没有可能在不使用JavaScript的情况下为此类单词添加一些基本样式呢?? 我们能用CSS解决它吗?怎么做


注意:我使用的是SCSS。

这不是仅使用CSS就可以完成的。您将需要JavaScript和下面的示例在原始JS中,而不需要任何框架,但它可以在任何框架中使用

试试这个:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Twitter CSS 1</title>
    <style>
     #input {
       font: 14px/1.2em Tahoma;
       height: 12em;
       width: 500px;
     }

     .class-at {
       color: blue;
     }

     .class-hash {
       color: green;
     }
    </style>
  </head>
  <body>
    <h3>Enter Text Here</h3>
    <textarea id="input">@_NAN_DINI @InTheWordsOfK @maidros78 Self immolation is still a form of social protest in India. Remember the guy w…</textarea>
    <hr/>
    <div id="output"></div>
    <script>
    var inEl = document.getElementById('input');
    var outEl = document.getElementById('output');

    function encodeStr(str) {
      return str.replace(/(\@\S+)/g, (key) => `<span class="class-at">${key}</span>`).replace(/(\#\S+)/g, (key) => `<span class="class-hash">${key}</span>`);
    }

    function inputHandler() {
      outEl.innerHTML = encodeStr(inEl.value);
    }

    inEl.addEventListener('input', inputHandler);
    inputHandler();
    </script>
  </body>
</html>

这不是只有CSS才能做到的。您将需要JavaScript和下面的示例在原始JS中,而不需要任何框架,但它可以在任何框架中使用

试试这个:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Twitter CSS 1</title>
    <style>
     #input {
       font: 14px/1.2em Tahoma;
       height: 12em;
       width: 500px;
     }

     .class-at {
       color: blue;
     }

     .class-hash {
       color: green;
     }
    </style>
  </head>
  <body>
    <h3>Enter Text Here</h3>
    <textarea id="input">@_NAN_DINI @InTheWordsOfK @maidros78 Self immolation is still a form of social protest in India. Remember the guy w…</textarea>
    <hr/>
    <div id="output"></div>
    <script>
    var inEl = document.getElementById('input');
    var outEl = document.getElementById('output');

    function encodeStr(str) {
      return str.replace(/(\@\S+)/g, (key) => `<span class="class-at">${key}</span>`).replace(/(\#\S+)/g, (key) => `<span class="class-hash">${key}</span>`);
    }

    function inputHandler() {
      outEl.innerHTML = encodeStr(inEl.value);
    }

    inEl.addEventListener('input', inputHandler);
    inputHandler();
    </script>
  </body>
</html>


定义可能导致性能瓶颈的繁重JavaScriptScript,例如:我们可以使用两个for循环并用@或#标识单词,然后应用样式或样式类。但它可能会对应用程序的性能造成威胁。如果只是一个字符串,则不会。样式化元素需要位于额外的DOM元素(通常是一个跨度)中。如果还没有,你需要Javascript来包装你想要风格化的单词。那么你所需要的就是一个CSS类。这在纯CSS中是不可能的。一种解决方案是设置一个特殊字符数组,如果一个单词包含一个特殊字符,将其包装在
span
中,然后设置
span
的样式。您不需要两个循环。你可以用正则表达式来实现这一点。但是,正如其他人所提到的,仅仅使用CSS是不行的。但是js可能是一个单行程序,绝对不是“重”定义的重JavaScriptScript,这可能会导致一些性能瓶颈,例如:我们可以使用两个for循环并用@或#标识单词,然后应用样式或样式类。但它可能会对应用程序的性能造成威胁。如果只是一个字符串,则不会。样式化元素需要位于额外的DOM元素(通常是一个跨度)中。如果还没有,你需要Javascript来包装你想要风格化的单词。那么你所需要的就是一个CSS类。这在纯CSS中是不可能的。一种解决方案是设置一个特殊字符数组,如果一个单词包含一个特殊字符,将其包装在
span
中,然后设置
span
的样式。您不需要两个循环。你可以用正则表达式来实现这一点。但是,正如其他人所提到的,仅仅使用CSS是不行的。但是js可能是一行,绝对不是“重”的。我不理解你的评论,我的代码是纯js的。不需要框架。嘿,伙计,我的问题是关于angular 2中的解决方案,当我在angular 2中尝试你的解决方案时,它工作不好,你能发布你的代码吗?我提供的功能可以在任何框架中使用。您的代码只需要获取字符串并将其传递给我的函数,然后获取结果并使用它,但是您的框架需要使用它。但是发布你的代码,我应该能够向你展示如何使用它。这个函数可以正常工作,但是这个ids无法从角度组件获取数据,它将变为null。请发布你的代码,并说明它失败的地方,然后我可以帮助解决它。我不理解你的评论,我的代码是纯JS。不需要框架。嘿,伙计,我的问题是关于angular 2中的解决方案,当我在angular 2中尝试你的解决方案时,它工作不好,你能发布你的代码吗?我提供的功能可以在任何框架中使用。您的代码只需要获取字符串并将其传递给我的函数,然后获取结果并使用它,但是您的框架需要使用它。但是发布你的代码,我应该能够向你展示如何使用它。该函数可以正常工作,但此ID无法从角度组件获取数据,它将变为null。请发布你的代码,并显示失败的地方,然后我可以帮助解决它。