Слишком высокая строка заголовка диалогового окна jQuery UI

#jquery #jquery-ui #jquery-ui-dialog

#jquery #jquery-пользовательский интерфейс #jquery-ui-dialog

Вопрос:

Я использую диалоговое окно пользовательского интерфейса jQuery для отображения некоторой дополнительной информации на одной из моих страниц. По какой-то причине в Chrome 11 и Firefox 4 строка заголовка смехотворно высока. По какой-то причине это нормально в IE 9. Вот скриншот того, как это выглядит:

Скриншот слишком высокой строки заголовка пользовательского интерфейса

Я попытался вручную установить высоту строки заголовка, которая изменяет размер только цветной области строки заголовка, но не изменяет положение текста заголовка или текста абзаца. Проверка в Chrome developer tools не выявила нечетных полей или отступов, которые могли бы вызвать эту проблему. У кого-нибудь есть идея относительно того, что может быть причиной этого? Ниже я включил скрипт и разметку для этого диалога. Насколько я могу судить, к этому диалоговому окну не применяется специальный CSS (кроме стандартного jQueryUI CSS), На случай, если это имеет значение, я использую ASP.Net/C # с jQuery 1.5.2 и jQueryUI 1.8.12.

ASP / HTML:

 <!-- ssn -->
<div class="input-block">
    <asp:Label ID="lblSsn" runat="server" CssClass="input-label" AssociatedControlID="tbSsn">Social Security Number (<a id="show-ssn-disclosure" href="#">More Info</a>)</asp:Label>
    <asp:TextBox ID="tbSsn" runat="server" CssClass="input" />
    <div id="ssn-disclosure-text">
        <p>SSN disclosure is <strong>highly recommended</strong> if you have one. The University is required by federal law to report your SSN and other pertinent information
        to the Internal Revenue Service pursuant to the reporting requirements imposed by the Taxpayer Relief Act of 1997. The University will use the SSN you provide to
        verify the identity of each applicant, to link to the Payroll Office to verify amounts paid to students receiving teaching assistantships and research assistantships,
        and to link financial awards and admission data to registration histories and student records. This record-keeping system was established before January 1, 1975,
        pursuant to the authority of the Regents of the University of California under Article IX, Section 9 of the Constitution of the State of California. This notification
        is provided to you as required by the Federal Privacy Act of 1974.</p>
    </div>
</div><!--/input-block-->
  

Скрипт:

 $(function() {
    //hide ssn disclosure dialog box
    var $ssnDialog = $('#ssn-disclosure-text').hide().dialog({
        autoOpen: false,
        resizable: false,
        modal: true,
    width: 500,
    title: 'SSN Disclosure'
    });

    //binding for ssn disclosure dialog
    $('#show-ssn-disclosure').click(function(e) {
        e.preventDefault();
        $ssnDialog.dialog('open');
    });
});
  

Любые жизнеспособные предложения по исправлениям были бы высоко оценены.

Ответ №1:

Вы всегда можете оформить ее с:

 .ui-dialog .ui-dialog-titlebar 
{
    height: 40px; /* or whatever you want */
}
  

Я бы добавил, что я тестировал FF4.01 и Chrome 11, и ваш код работает для меня, смотрите рабочую демонстрацию jsFiddle.

Комментарии:

1. Да, я пробовал это, и это приводит к другой проблеме, как указано в моем вопросе. Вот как это выглядит, если я вручную установлю высоту: i.imgur.com/R6VI6.png . Я подозреваю, что происходит какая-то странная проблема с CSS, но я понятия не имею, что это.

2. Что, если вы закомментируете все другие таблицы стилей, кроме css jQuery UI, чтобы увидеть, кто это — jQuery UI или вы. Я не знаю, что сказать, кроме того, что демонстрация, похоже, работает, с установкой высоты вручную и без.

3. Хотите верьте, хотите нет, но ваше предложение помогло. Я сузил проблему до float:left; в стилях нижнего колонтитула. Я понятия не имею, почему это вызвало проблему, но ее удаление устранило проблему. Я собираюсь принять ваш ответ, потому что вы указали мне правильный путь.

4. Прошу прощения за придирку, но комментарий с двойной косой чертой недопустим в CSS. В противном случае, идеальное решение.

5. У меня была такая же проблема, и это было с плавающей точкой, оставленной в элементе нижнего колонтитула. В моем css-тексте у меня было «position: relative» и float: left. просто убрал левую точку с плавающей запятой, и все прошло гладко. Я также отредактировал свой пользовательский файл.css и удалил блоки элементов за раз, чтобы определить проблему. Ура!

Ответ №2:

Просто добавьте атрибут below в родительский класс диалогового окна, чтобы решить проблему с заголовком диалогового окна

 .ui-dialog { clear: both; }
  

Ответ №3:

Добавьте это :

 position:absolute;
overflow:hidden
  

для класса .ui-dialog 🙂

Ответ №4:

Я не знаю, имеет ли это значение, но вы могли бы попробовать использовать атрибут title непосредственно в вашем div вместо того, чтобы устанавливать его в коде:

 <div id="dialog-form" title="Dialog Title" style="display:none;">
   ...
</div>
  

Возможно, у вас проблема с каскадным стилем. Я использую инструменты разработчика Chrome для отслеживания подобных проблем. Вы можете изолировать элемент title, созданный jQuery-ui, и изучить классы, которые он унаследовал.

Комментарии:

1. Нет, это никуда не годится. Я проверил каждый элемент, участвующий в диалоговом окне, и я не вижу ничего, что могло бы быть причиной этого.

2. Проверьте этот элемент с помощью инструментов разработчика, затем нажмите «Вычисляемые стили». Это покажет вам красивую картинку с подробным описанием того, не соответствуют ли высота, отступ, граница или поле. Затем прокрутите стили вниз и посмотрите, где вступает в игру проблемный стиль.