CSS
.ql-editor h3 {
margin-top: 10px !important;
}
HTMLソース(Quillで編集予定)
<div id="editor">
<h1>A Title</h1>
<p>hello</p>
<h3>A Heading</h3>
</div>
Quillを起動するためのJavaScriptは次のとおりです。
var quill = new Quill('#editor', {
theme: 'snow'
});
Quill.jsはそれをこれに変えます(わかりやすくするためにラインフィードを追加しています):
<div class="ql-editor" contenteditable="true">
<h1>A Title</h1>
<p>hello</p>
<p><br></p>
<h3>A Heading</h3>
</div>
<p><br></p>
はどこから来たのですか?どうすればそれを取り除くことができますか?編集内容を本物のように見せたいので、すべての見出しに上マージンを使用します。クイルが私たちのスタイルを上書きするのを防ぐ解決策は本当に素晴らしいでしょう。
.ql-editor h3
がmargin-top
以上の10px
スタイルは、この問題を引き起こすために重要であるように思われます。 9px
を使用しても、問題は解決します。ショートバージョン
MatchVisual機能を無効にする必要があります: http://quilljs.com/docs/modules/clipboard/#matchvisual
ロングバージョン
Quillは、クリップボードモジュールを使用して初期コンテンツを処理します。
クリップボードで有効になっているデフォルトの動作の1つは、matchVisualと呼ばれる機能です。これは、貼り付けられたコンテンツの周囲の余白を改行に変換します。目的は、クイルに貼り付けたものを、マージンに関してソースと同じように見せることです。そのため、ウェブサイトから1トンの余白のあるh1をコピーして羽ペンに貼り付けると、全体的な外観を同じに保つために、上下に改行が自動的に配置されます。
実装自体は、clipboard.js内のmatchSpacing
関数で確認できます。
初期化はクリップボードモジュールを使用するため、これはテキストに適用されていました。
ソリューションを説明するコードペンフォークは次のとおりです。 https://codepen.io/anon/pen/LzzYoa (matchVisual configオプションはクイル1.3.0で追加され、元のペンは古いバージョンでした。)
クリップボードモジュールでmatchVisualオプションを無効にするだけです。
var quill = new Quill('.quill', {
theme: 'snow',
modules: {
toolbar : [...]
clipboard: {
matchVisual: false
}
}
});