width 属性工作得很好,但 height 属性由于某些原因不起作用,如何让编辑器采用全高?我还想在顶部栏中添加“打开文件”按钮(从存储)和“另存为”按钮,请问我们该怎么做?很抱歉,我无法在问题中添加代码片段,因为 stackoverflow 的代码片段编辑器不支持触摸设备。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<style type="text/css" media="screen">
* {
box-sizing: border-box;
}
body {
margin: 0;
}
.ace_editor {
font-weight: bold;
width: 100%;
height: 100vh;
}
.toolbar {
border: 1px solid gray;
background: #333;
}
</style>
</head>
<body>
<!-- load ace -->
<script src="http://ajaxorg.github.io/ace-builds/src/ace.js"></script>
<!-- load ace language_tools extension -->
<script src="http://ajaxorg.github.io/ace-builds/src/ext-language_tools.js"></script>
<script>
var buildDom = ace.require("ace/lib/dom").buildDom;
var editor = ace.edit();
editor.setOptions({
theme: "ace/theme/monokai",
mode: "ace/mode/html",
maxLines: 30,
minLines: 30,
autoScrollEditorIntoView: true,
});
var refs = {};
function updateToolbar() {
refs.saveButton.disabled = editor.session.getUndoManager().isClean();
refs.undoButton.disabled = !editor.session.getUndoManager().hasUndo();
refs.redoButton.disabled = !editor.session.getUndoManager().hasRedo();
}
editor.on("input", updateToolbar);
editor.session.setValue(localStorage.savedValue || "Welcome to ace Toolbar demo!")
function save() {
localStorage.savedValue = editor.getValue();
editor.session.getUndoManager().markClean();
updateToolbar();
}
editor.commands.addCommand({
name: "save",
exec: save,
bindKey: { win: "ctrl-s", mac: "cmd-s" }
});
buildDom(["div", { class: "toolbar" },
["button", {
ref: "saveButton",
onclick: save
}, "save"],
["button", {
ref: "undoButton",
onclick: function() {
editor.undo();
}
}, "undo"],
["button", {
ref: "redoButton",
onclick: function() {
editor.redo();
}
}, "redo"],
["button", {
style: "font-weight: bold",
onclick: function() {
editor.insertSnippet("**${1:$SELECTION}**");
editor.renderer.scrollCursorIntoView()
}
}, "bold"],
["button", {
style: "font-style: italic",
onclick: function() {
editor.insertSnippet("*${1:$SELECTION}*");
editor.renderer.scrollCursorIntoView()
}
}, "Italic"],
], document.body, refs);
document.body.appendChild(editor.container)
window.editor = editor;
</script>
</body>
</html>
如果您希望 CSS 在
height
方面发挥作用,您应该从编辑器设置中删除 maxLines: 30
。