首页 > web前端 > css教程 > 正文

一个简单的、主要是 CSS 的代码编辑器

Barbara Streisand
发布: 2024-11-01 06:11:30
原创
222 人浏览过

在本文中,我将讨论如何使用主要使用 CSS 来制作一个非常简单的、基于浏览器的代码编辑器。我最初构建这个是当我需要让用户在我正在构建的 CMS 中编辑 JSON 时。

如果您只想跳转到代码和工作示例,就在这里。代码可以在这里找到,工作示例可以在这里

内容可编辑太烂了...

因此,如果您曾经考虑过构建自己的代码编辑器,那么您可能已经看过 contenteditable。虽然 contenteditable 在许多情况下都非常有用,但在您键入时更新内容方面存在一个巨大的问题。当编辑器中的代码发生变化时,在语法高亮显示代码后,几乎不可能将光标放回到原来的位置。

就我而言,我想要一些非常小的东西,而不需要一些巨大的、笨重的库。我开始考虑是否可以构建一个主要使用 CSS 的非常简单的编辑器,仅使用 Javascript 创建语法突出显示的输出,并更新预览。

我想输入一个普通的

幻觉是如何运作的

A Simple, mostly CSS code editor

HTML 代码

<div id="editor">
  <div class="preview"></div>
  <textarea class="code" spellcheck="false"></textarea>
</div>
登录后复制
登录后复制
  • 常规的
  • A
    ;填充了语法突出显示的代码。
  • 一个包裹你的

    html,
    body {
      height: 100vh;
      width: 100vw;
      padding: 0;
      margin: 0;
    }
    
    #editor {
      height: 100%;
      width: 100%;
      box-sizing: border-box;
      display: grid;
      grid-template: 1fr / 1fr;
      place-items: top;
      overflow: auto;
      padding: 2rem;
      background-color: #1a1723;
    }
    
    #editor .code,
    #editor .preview {
      all: unset;
    }
    
    #editor .code,
    #editor .preview {
      height: auto;
      grid-column: 1 / 1;
      grid-row: 1 / 1;
      font-family: Monaco, monospace;
      font-size: 16px;
      resize: none;
      line-height: 24px;
      white-space: pre-wrap;
      overflow: hidden;
    }
    
    #editor .preview {
      pointer-events: none;
      color: #ccc;
    }
    
    #editor .code {
      color: rgba(255, 255, 255, 0);
      caret-color: magenta;
    }
    
    登录后复制
    登录后复制

    然后我们使用 Prism 从

    就是这样!显然,如果您要编辑数千行代码,则在更新所有语法突出显示的代码时可能会遇到性能问题。改进这个想法的一种方法是创建一个“虚拟”滚动条,并且仅突出显示容器视图中可见的代码。这就是 VsCode 的编辑器的工作方式。

    如果您想尝试一下,您可以找到
    GitHub 上的代码和工作示例

以上是一个简单的、主要是 CSS 的代码编辑器的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:dev.to
上一篇:如何在悬停而不是单击时显示选择框选项? 下一篇:如何使用 CSS 创建带有圆角边框的响应式倾斜元素?
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
最新问题
关于CSS思维导图的课件在哪? 课件
来自于 2024-04-16 10:10:18
0
0
1667
相关专题
更多>
热门推荐
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板