В приведенном ниже приложении я хочу, чтобы редактор Quill заполнил существующее пространство в верхнем и нижнем колонтитулах. Я пытался сделать это на 100%, но это добавляет прокрутку на всю страницу. Как заставить Quill одновременно заполнять пространство, чтобы адаптировать размер экрана. (Если высота уменьшена, высота редактора должна быть уменьшена)
var quill = new Quill('#editor', {
modules: {
toolbar: [
[{ header: [1, 2, false] }],
['bold', 'italic', 'underline'],
['image', 'code-block']
]
},
placeholder: 'Compose an epic...',
theme: 'snow' // or 'bubble'
});html,body {
margin: 0;
height: 100%;
}
#container {
height: 100%;
display: flex;
flex-direction: column;
justify-content: space-between;
}
#header {
height: 40px;
background: red;
}
#footer {
height: 40px;
background: red;
}
#editor-container {
height: 100%;
}
#editor {
height: 100%;
}<link href = "https://cdnjs.cloudflare.com/ajax/libs/quill/1.3.6/quill.snow.css" rel = "stylesheet"/>
<script src = "https://cdnjs.cloudflare.com/ajax/libs/quill/1.3.6/quill.js"></script>
<div id = "container">
<div id = "header">Header</div>
<div id = "editor-container">
<div id = "editor">Sample</div>
</div>
<div id = "footer">Footer</div>
</div>


![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Проблема в том, что height: 100% происходит из класса ql-container, что вызывает переполнение. Вы можете попробовать следующее:
Добавьте flex: 1 к #editor-container и тоже сделайте флексбокс столбца.
Добавьте flex: 1 и width: 100% к #editor, а для большого контента добавьте overflow-y: auto
См. демо ниже:
var quill = new Quill('#editor', {
modules: {
toolbar: [
[{ header: [1, 2, false] }],
['bold', 'italic', 'underline'],
['image', 'code-block']
]
},
placeholder: 'Compose an epic...',
theme: 'snow' // or 'bubble'
});html,body {
margin: 0;
height: 100%;
}
* {
box-sizing: border-box;
}
#container {
height: 100%;
display: flex;
flex-direction: column;
justify-content: space-between;
}
#header {
height: 40px;
background: red;
}
#footer {
height: 40px;
background: red;
}
#editor-container {
height: 100%;
/* added these styles */
flex: 1;
display: flex;
flex-direction: column;
}
#editor {
height: 100%;
/* added these styles */
flex: 1;
overflow-y: auto;
width: 100%;
}<link href = "https://cdnjs.cloudflare.com/ajax/libs/quill/1.3.6/quill.snow.css" rel = "stylesheet"/>
<script src = "https://cdnjs.cloudflare.com/ajax/libs/quill/1.3.6/quill.js"></script>
<div id = "container">
<div id = "header">Header</div>
<div id = "editor-container">
<div id = "editor">Sample</div>
</div>
<div id = "footer">Footer</div>
</div>Проблема заключается в высоте: 100% исходит из класса ql-контейнера, который вызывает переполнение. Та же проблема, с которой люди сталкиваются в react-quill
Просто добавьте следующий css в свой код, он перезапишет стиль quill.
.ql-container {
min-height: 10rem;
height: 100%;
flex: 1;
display: flex;
flex-direction: column;
}
.ql-editor {
height: 100%;
flex: 1;
overflow-y: auto;
width: 100%;
}