В CKEditor, как я могу добавить ярлык "текст" к кнопке?

editor.ui.addButton( 'ImageUpload',{
                label: 'Upload Image',
                command: 'popup_image_uploader',
                icon: this.path + 'images/icon.png'
            });

Это мой текущий код прямо сейчас. Когда вы загружаете страницу, вы видите только значок.

Но если вы перейдете к демо здесь, вы увидите, что "Источник" - это текст. Я хочу добавить слово "Загрузить изображение" рядом со значком.

Ответы

Ответ 1

Метка для кнопок панели инструментов CKeditor имеет класс .cke_label, который по умолчанию имеет значение display:none, поэтому кнопки имеют значок только:

.cke_skin_kama .cke_button .cke_label {
    ...
    display: none;
    ...
}

Как и для кнопки "Источник", вы должны использовать CSS, чтобы показать свою метку.

Обычно при создании кнопки CKeditor добавьте класс типа .cke_button_CMDNAMEHERE, где CMDNAMEHERE является именем вашей команды. Итак, у вас будет:

.cke_skin_kama .cke_button_CMDNAMEHERE .cke_label {
   display: inline;
}

Проверьте источник html, чтобы увидеть точное имя добавленного класса и соответствующим образом создать правило CSS.

Ответ 2

другим решением было бы просто использовать псевдоним класса css "before" или ": after", чтобы добавить пользовательский контент до/после кнопок.

например, настройка кнопки "link":

создать некоторое пространство (зависит от длины содержимого):

.cke_button_icon.cke_button__link_icon {
padding-right: 25px;
}

добавить контент:

.cke_button_icon.cke_button__link_icon:after {
content: "Link";
position: relative;
left: 15px;
}

Ответ 3

.cke_button_label.cke_button__CMDNAMEHERE{
   display: inline;
}

будет работать для всех скинов, в отличие от вышеприведенного ответа (обратите внимание на двойное подчеркивание между кнопками и CMDNAMEHERE)

вы можете разместить его в любом месте своего собственного css

Ответ 4

В текущем ckeditor (4.6.x) ответы выше не работают для меня.

Я выкопал в ckeditor/skins/moono-list/editor.css и сделал поиск "источника", чтобы узнать, как они сделали кнопку "Источник", которая имеет текст. Я нашел это:

.cke_button__source_label,
.cke_button__sourcedialog_label
{
    display:inline
}

Обратите внимание, что перед именем вашей пользовательской кнопки есть два символа подчеркивания. Когда я попробовал только с одним подчеркиванием, это не сработало.

В любом случае вы заменили бы "source" или "sourcedialog" выше тем, что хотите, и добавьте это в свой собственный файл css.

Кроме того, он работает только для имен кнопок, которые являются строчными буквами.