花潮论坛

搜索
热搜: 活动 交友 discuz
查看: 188|回复: 78

CSS代码实时着色测试

[复制链接]
  • TA的每日心情
    慵懒
    2025-12-15 08:01
  • 签到天数: 1670 天

    [LV.Master]伴坛终老

    3049

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

    发表于 2024-7-3 20:30 | 显示全部楼层 |阅读模式

    请马上登录,朋友们都在花潮里等着你哦:)

    您需要 登录 才可以下载或查看,没有账号?立即注册

    x
    本帖最后由 马黑黑 于 2024-7-3 22:40 编辑

    评分

    参与人数 3威望 +100 金钱 +200 经验 +100 收起 理由
    南无月 + 30 + 60 + 30 很给力!
    红影 + 50 + 100 + 50 赞一个!
    山人 + 20 + 40 + 20 测试

    查看全部评分

  • TA的每日心情
    慵懒
    2025-12-15 08:01
  • 签到天数: 1670 天

    [LV.Master]伴坛终老

    3049

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2024-7-3 20:34 | 显示全部楼层
    一楼输入框可输入(包括粘贴)CSS代码,输入当时,待关键字完整会立马着色。

    脚本属测试范畴,目前仅通过正则进行着色,共五种关键字颜色。HTML代码、JS代码尚未支持但凡与CSS相同的关键字也一样着色。

    打开页面时,如果你看到 浏览器不支持CSS高亮伪元素 字样,对不起,你无法看到CSS代码着色的效果。

    评分

    参与人数 1威望 +30 金钱 +60 经验 +30 收起 理由
    南无月 + 30 + 60 + 30 很给力!

    查看全部评分

    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-12-15 08:01
  • 签到天数: 1670 天

    [LV.Master]伴坛终老

    3049

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2024-7-3 20:36 | 显示全部楼层
    本帖最后由 马黑黑 于 2024-7-3 22:40 编辑

    为便于学习、研究,公布一楼源码如下:
    1. <style>
    2. #hE { width: 800px; min-height: 400px; font: normal 16px/20px Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; -webkit-user-modify: read-write-plaintext-only; border: 1px solid gray; pre-wrap; word-break: break-word; overflow-x: hidden; overflow-y: auto; tab-size: 4; padding: 10px; margin: 10px auto; position: relative; }
    3. #hE:empty::before { position: absolute; content: attr(data-placeholder); color: gray; }
    4. .tMid { text-align: center; padding: 10px; }
    5. ::highlight(he-red) { color: red; }
    6. ::highlight(he-green) { color: green; }
    7. ::highlight(he-blue) { color: blue; }
    8. ::highlight(he-magenta) { color: magenta; }
    9. ::highlight(he-darkred) { color: darkred; }
    10. </style>

    11. <div id="hE" data-placeholder="请输入CSS代码"></div>
    12. <p class="tMid"><button id="btnTest" type="button" value="test">着色效果重置</button></p>

    13. <script>
    14. (function() {
    15.         if(!CSS.highlights) {
    16.                 hE.dataset.placeholder = '您的浏览器不支持CSS高亮伪元素';
    17.                 return;
    18.         }
    19.         //着色匹配正则
    20.         const regRed = /[@.#:]{1,}\w+-?\w+\b|[0-9]+|\w+=/g;
    21.         const regGreen = /\/\*[\s\S]*?\*\/|([^\\:]|^)\/\/.*|<!--[\s\S]*?-->$/g;
    22.         const regBlue = /[\w-]+\s?:/g;
    23.         const regMagenta = /(["'])((?:\\\1|(?:(?!\1)).)*)(\1)/g;
    24.         const regDarkRed = /<.+?>/g;

    25.         var hls = [], regs = []; //高亮颜色数组&正则匹配数组

    26.         //高亮颜色与匹配对象
    27.         let heColors = {
    28.                 blue: regBlue,
    29.                 red: regRed,
    30.                 magenta: regMagenta,
    31.                 green: regGreen,
    32.                 darkred: regDarkRed,
    33.         };

    34.         //注册高亮
    35.         const setHighlight = () => {
    36.                 hls.length = regs.length = 0;
    37.                 Object.keys(heColors).forEach(key => {
    38.                         const hlColor = new Highlight();
    39.                         hls.push(hlColor); //color
    40.                         regs.push(heColors[key]); //regix
    41.                         CSS.highlights.set(`he-${key}`, hlColor);
    42.                 });
    43.         };

    44.         //着色
    45.         const hlight = (ele) => {
    46.                 if(CSS.highlights.size === 0) setHighlight();
    47.                 //console.log(CSS.highlights.size);//测试
    48.                 const walker = document.createTreeWalker(hE, NodeFilter.SHOW_TEXT);
    49.                 while(walker.nextNode()) {
    50.                         let textNode = walker.currentNode;
    51.                         let text = textNode.textContent;
    52.                         regs.forEach((reg,rkey) => {
    53.                                 let res = text.matchAll(reg);
    54.                                 res.forEach(r => {
    55.                                         const range = new Range();
    56.                                         range.setStart(textNode, r['index']);
    57.                                         range.setEnd(textNode, r['index'] + r[0].length);
    58.                                         hls[rkey].add(range);
    59.                                 });
    60.                         });
    61.                 }
    62.         };

    63.         hE.oninput = () => hlight(hE);

    64.         //Tab键输入
    65.         hE.onkeydown = (e) => {
    66.                 if(e.keyCode !== 9) return;
    67.                 e.preventDefault();
    68.                 var sel = document.getSelection(),
    69.                         range = sel.getRangeAt(0),
    70.                         tabNode = document.createTextNode('\t');
    71.                         range.insertNode(tabNode);
    72.                 range.setStartAfter(tabNode);
    73.                 range.setEndAfter(tabNode);
    74.         };

    75.         //着色效果重置
    76.         btnTest.onclick = () => {
    77.                 CSS.highlights.clear();
    78.                 hlight(hE);
    79.                 hE.focus();
    80.         };
    81. })();
    82. </script>
    复制代码


    评分

    参与人数 1威望 +50 金钱 +100 经验 +50 收起 理由
    红影 + 50 + 100 + 50 赞一个!

    查看全部评分

    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2025-9-29 08:51
  • 签到天数: 90 天

    [LV.6]常住居民II

    11

    主题

    209

    回帖

    2097

    积分

    金牌会员

    Rank: 60Rank: 60Rank: 60Rank: 60Rank: 60Rank: 60

    发表于 2024-7-3 20:48 | 显示全部楼层
    评分后输入代码不能自动着色。

    原因:需要重新注册高亮颜色——因为受到论坛的限制,高亮颜色未能在页面系统中进行永久注册。

    评分后,点击文本框底部按钮着色功能恢复正常。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2025-9-29 08:51
  • 签到天数: 90 天

    [LV.6]常住居民II

    11

    主题

    209

    回帖

    2097

    积分

    金牌会员

    Rank: 60Rank: 60Rank: 60Rank: 60Rank: 60Rank: 60

    发表于 2024-7-3 20:52 | 显示全部楼层
    支持的浏览器及其版本:

    Chrome(含安卓版本) - Chromium 内核:105
    Opera - 91
    Safari - 17.2
    三星浏览器 - 20

    火狐浏览器(Firefox)目前尚未支持CSS高亮伪元素,但其官网基于CSS高亮伪元素的资料是最完备的。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2025-12-1 20:32
  • 签到天数: 1052 天

    [LV.10]以坛为家III

    1881

    主题

    32万

    回帖

    37万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮美女虎龙狗猪多彩人生星月交辉海样胸怀火热情怀优雅迷人神秘浪漫缤纷心情草莓情怀蝴蝶情怀心曲飞扬星星情怀七彩绚丽活泼开朗女儿情怀相遇之美一往情深花好月圆心香一瓣紫色情节飞龙在天金剪刀天籁妙音妙笔生花风雨同行我心永远天长地久幸福快乐绚丽缤纷喜乐安康中秋征文周年庆指尖上的流年舞会之星分析(喊冤)章总结章杀人王小强章最佳杀刺临屏写诗七夕诗钟活动第五届风云第六届风云情人节花潮管理

    发表于 2024-7-3 23:18 | 显示全部楼层
    输入了一个帖子的代码,没看到着色啊。要么是我电脑不支持,要么是我弄错了
    是直接把代码全部黏贴进去么?
     
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-12-15 08:01
  • 签到天数: 1670 天

    [LV.Master]伴坛终老

    3049

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2024-7-4 07:30 | 显示全部楼层
    红影 发表于 2024-7-3 23:18
    输入了一个帖子的代码,没看到着色啊。要么是我电脑不支持,要么是我弄错了
    是直接把代码全部黏 ...

    二楼、五楼都有解释
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2024-3-4 09:02
  • 签到天数: 33 天

    [LV.5]常住居民I

    94

    主题

    9699

    回帖

    2万

    积分

    论坛元老

    Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80

    花潮美女鼠牛虎兔龙蛇马羊猴鸡狗猪蝴蝶情怀音画大师天籁妙音风雨同行我心永远绚丽缤纷

    发表于 2024-7-4 09:15 | 显示全部楼层
    马黑黑 发表于 2024-7-3 20:34
    一楼输入框可输入(包括粘贴)CSS代码,输入当时,待关键字完整会立马着色。

    脚本属测试范畴,目前仅通 ...

    这个实时着色效果很惊艳。。粘进去的同时就看到颜色了。。
    我粘的是贴子代码,三大块结构的颜色标得清清楚楚。。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2024-3-4 09:02
  • 签到天数: 33 天

    [LV.5]常住居民I

    94

    主题

    9699

    回帖

    2万

    积分

    论坛元老

    Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80

    花潮美女鼠牛虎兔龙蛇马羊猴鸡狗猪蝴蝶情怀音画大师天籁妙音风雨同行我心永远绚丽缤纷

    发表于 2024-7-4 09:18 | 显示全部楼层
    跟之前的对比一下,着色类型有 细微差别。
    比如这个所有数字都是同一种色。。之前连百分号一起同色。。
    知道之前你的那个数字着色是什么意思了。。输入数字或文本,数字自动变色。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2024-3-4 09:02
  • 签到天数: 33 天

    [LV.5]常住居民I

    94

    主题

    9699

    回帖

    2万

    积分

    论坛元老

    Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80

    花潮美女鼠牛虎兔龙蛇马羊猴鸡狗猪蝴蝶情怀音画大师天籁妙音风雨同行我心永远绚丽缤纷

    发表于 2024-7-4 09:19 | 显示全部楼层
    着色效果重置,点了,好象没啥变化。什么情况下用到它?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-12-15 08:01
  • 签到天数: 1670 天

    [LV.Master]伴坛终老

    3049

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2024-7-4 12:13 | 显示全部楼层
    南无月 发表于 2024-7-4 09:19
    着色效果重置,点了,好象没啥变化。什么情况下用到它?

    乱套的时候
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-12-15 08:01
  • 签到天数: 1670 天

    [LV.Master]伴坛终老

    3049

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2024-7-4 12:14 | 显示全部楼层
    南无月 发表于 2024-7-4 09:15
    这个实时着色效果很惊艳。。粘进去的同时就看到颜色了。。
    我粘的是贴子代码,三大块结构的颜色标得清清 ...

    这里的着色设计还没有考虑到 HTML代码和JS代码
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-12-15 08:01
  • 签到天数: 1670 天

    [LV.Master]伴坛终老

    3049

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2024-7-4 12:15 | 显示全部楼层
    南无月 发表于 2024-7-4 09:18
    跟之前的对比一下,着色类型有 细微差别。
    比如这个所有数字都是同一种色。。之前连百分号一起同色。。
    ...

    这个差别应该比较大的。之前的着色理念,参考的是 Emeditor,现在的设计,参考更多的新潮代码编辑器。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2024-3-4 09:02
  • 签到天数: 33 天

    [LV.5]常住居民I

    94

    主题

    9699

    回帖

    2万

    积分

    论坛元老

    Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80

    花潮美女鼠牛虎兔龙蛇马羊猴鸡狗猪蝴蝶情怀音画大师天籁妙音风雨同行我心永远绚丽缤纷

    发表于 2024-7-4 12:17 | 显示全部楼层

    目前试了几次都不乱。。咋整比较乱套
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-12-15 08:01
  • 签到天数: 1670 天

    [LV.Master]伴坛终老

    3049

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2024-7-4 12:17 | 显示全部楼层
    南无月 发表于 2024-7-4 12:17
    目前试了几次都不乱。。咋整比较乱套

    现在这个可能不乱,因为着色设计相对简单
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2024-3-4 09:02
  • 签到天数: 33 天

    [LV.5]常住居民I

    94

    主题

    9699

    回帖

    2万

    积分

    论坛元老

    Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80

    花潮美女鼠牛虎兔龙蛇马羊猴鸡狗猪蝴蝶情怀音画大师天籁妙音风雨同行我心永远绚丽缤纷

    发表于 2024-7-4 12:18 | 显示全部楼层
    马黑黑 发表于 2024-7-4 12:14
    这里的着色设计还没有考虑到 HTML代码和JS代码

    原黑色的那一部分么
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2024-3-4 09:02
  • 签到天数: 33 天

    [LV.5]常住居民I

    94

    主题

    9699

    回帖

    2万

    积分

    论坛元老

    Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80

    花潮美女鼠牛虎兔龙蛇马羊猴鸡狗猪蝴蝶情怀音画大师天籁妙音风雨同行我心永远绚丽缤纷

    发表于 2024-7-4 12:19 | 显示全部楼层
    马黑黑 发表于 2024-7-4 12:15
    这个差别应该比较大的。之前的着色理念,参考的是 Emeditor,现在的设计,参考更多的新潮代码编辑器。

    老师的工具就是越做越新潮。。。。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-12-15 08:01
  • 签到天数: 1670 天

    [LV.Master]伴坛终老

    3049

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2024-7-4 12:20 | 显示全部楼层
    南无月 发表于 2024-7-4 12:18
    原黑色的那一部分么

    就是说,这里的着色设计只是作为测试,而且只是针对CSS代码。

    因为时间紧,HTML、JS的伪元素高亮着色设计还没有做。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-12-15 08:01
  • 签到天数: 1670 天

    [LV.Master]伴坛终老

    3049

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2024-7-4 12:20 | 显示全部楼层
    南无月 发表于 2024-7-4 12:19
    老师的工具就是越做越新潮。。。。

    不过只是做着玩玩,因为浏览器的支持问题,目前这个还不能用于生产环境
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2024-3-4 09:02
  • 签到天数: 33 天

    [LV.5]常住居民I

    94

    主题

    9699

    回帖

    2万

    积分

    论坛元老

    Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80

    花潮美女鼠牛虎兔龙蛇马羊猴鸡狗猪蝴蝶情怀音画大师天籁妙音风雨同行我心永远绚丽缤纷

    发表于 2024-7-4 12:48 | 显示全部楼层
    马黑黑 发表于 2024-7-4 12:20
    就是说,这里的着色设计只是作为测试,而且只是针对CSS代码。

    因为时间紧,HTML、JS的伪元素高亮着色 ...

    好哒,还有更好的更优的在后头
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    小黑屋|手机版|Archiver|服务支持:DZ动力|huachaowang.com Inc. ( 蜀ICP备17032287号-1 )

    GMT+8, 2025-12-15 19:03 , Processed in 0.100016 second(s), 26 queries .

    Powered by Discuz! X3.4

    © 2001-2013 Comsenz Inc.

    快速回复 返回顶部 返回列表