Как удалить строку заголовка jQuery-ui?
Я пытаюсь скрыть заголовок jQuery-ui, но удерживать кнопку закрытия в строке заголовка видимой. Я искал много сообщений в stackoverflow как этот. В каждом столбце строка заголовка скрыта, но пространство, занимаемое баром, все еще существует. Я также хочу удалить это пространство, но не удаляя кнопку закрытия.
Как я могу это сделать?
Ответы
Ответ 1
Основываясь на этом ответе:
Используйте .dialog("widget")
, чтобы найти оболочку div для диалога. Обертка содержит всю разметку, используемую для диалога, включая заголовок, заголовок и кнопку закрытия; и сам диалог. Вот один из способов вызвать метод и скрыть строку заголовка:
$("#id").dialog({
autoOpen: false
}).dialog("widget").find(".ui-dialog-title").hide();
Затем вы можете использовать CSS для устранения ненужных полей, границ и отступов. Например:
.ui-dialog-titlebar {
float: right;
border: 0;
padding: 0;
}
.ui-dialog-titlebar-close {
top: 0;
right: 0;
margin: 0;
z-index: 999;
}
Вот демонстрация на основе вышеуказанного кода плюс добавляет необходимые стили с помощью jQuery.
Ответ 2
Если вы хотите удалить titelbar и сохранить значок закрытия только с помощью стилей, используйте стили ниже. Он сжимает строку заголовка до размера значка закрытия и скрывает его. ui-icons_6e6e6e_256x240.png Я создал, осветляя изображение ui-icons_222222_256x240.png, с которым поставляется jqueryui.
.ui-dialog .ui-dialog-titlebar.ui-widget-header{background: none; border: none; height: 20px; width: 20px; padding: 0px; position: static; float: right; margin: 0px 2px 0px 0px;}
.ui-dialog-titlebar.ui-widget-header .ui-dialog-title{display: none;}
.ui-dialog-titlebar.ui-widget-header .ui-button{background: none; border: 1px solid #CCCCCC;}
.ui-dialog .ui-dialog-titlebar .ui-dialog-titlebar-close{margin: 0px; position: static;}
.ui-dialog .dialog.ui-dialog-content{padding: 0px 10px 10px 10px;}
.ui-dialog .ui-dialog-titlebar .ui-dialog-titlebar-close .ui-icon{position: relative; margin-top: 0px; margin-left: 0px; top: 0px; left: 0px;}
.ui-dialog .ui-dialog-titlebar .ui-state-default .ui-icon {background-image: url("/css/ui-lightness/images/ui-icons_6e6e6e_256x240.png");}
.ui-dialog .ui-dialog-titlebar .ui-state-hover .ui-icon {background-image: url("/css/ui-lightness/images/ui-icons_222222_256x240.png");}
Ответ 3
Как я вижу, у вас есть 3 варианта.
- Да, полностью удалите заголовок и добавьте пользовательский, который вы можете использовать, чтобы соответствовать стандарту, используя абсолютное позиционирование, должен быть ключ.
- Если у вас есть время, расширьте (не перезаписывайте) метод _create диалогового окна https://github.com/jquery/jquery-ui/blob/master/ui/jquery.ui.dialog.js#L74, чтобы сделать то, что вам нужно
- Работайте с хакерами CSS, чтобы сохранить заголовок там с высотой 0 для всех элементов, но кнопка закрытия.
У кого-то есть свои минусы и плюсы, я бы порекомендовал # 2 лучшее, если можно, вот некоторая информация о том, как работать с виджетами http://api.jqueryui.com/jQuery.widget/
Ответ 4
Вот как это можно сделать.
Перейдите в папку тем → база → откройте jquery.ui.dialog.css
Find
Подписок
если вы не хотите отображать заголовокBar, тогда просто установите отображение: none, как я сделал в следующем.
.ui dialog.ui-dialog .ui-dialog-titlebar
{
padding: .4em 1em;
position: relative;
display:none;
}
Аналогично для заголовка.
.ui-dialog .ui-dialog-title {
float: left;
margin: .1em 0;
white-space: nowrap;
width: 90%;
overflow: hidden;
text-overflow: ellipsis;
display:none;
}
Теперь нажимаем кнопку "Закрыть", вы также можете установить ее none или вы можете установить ее
.ui-dialog .ui-dialog-titlebar-close {
position: absolute;
right: .3em;
top: 50%;
width: 21px;
margin: -10px 0 0 0;
padding: 1px;
height: 20px;
display:none;
}
Я много раз искал, но ничего не понял. Однако это приведет к тому, что все приложение не будет иметь закрытую кнопку, панель заголовка для диалога, но вы также сможете преодолеть это, используя jquery и добавив и установив css через jquery
вот синтаксис для этого
$(".specificclass").css({display:normal})