2009-03-03 2 views
0

Я разрабатываю многоразовый элемент управления ASP.net, который должен работать в IE 6+, FF 2+ и Safari как в режиме Quirks, так и в стандартах.Resuable Управление сервером Asp.net с режимом Quirks и Standards

Элемент управления будет выставлять два определяемых пользователем свойства высоты и ширины. Оба этих атрибута могут быть определены как процент или как значение пикселя.

Внутри элемента управления у меня есть два столбца Div, которые содержат панель навигации и содержимое элементов управления. Столбцы должны быть Div, чтобы использовать стиль переполнения, когда содержимое больше, чем контейнер. См. Пример кода прототипа ниже;

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
     <title></title> 
    </head> 
    <body> 
     <div style="height: 100%; width:400px; background-color: Green; "> 
      <div style="height: 100%; width: 25%; background-color: Red; float:left; overflow:auto;"> 
       LongString:<br />Stuffsdfsfdsdfsfsdfdfsdfsdfsdfsdfsdxgsdfgsdfgsdgiusdfgiudfgifdgu 
      </div> 
      <div style="height: 100%; width: 75%; background-color: Pink; float:right;"> 
       Stuff 
       <br /> 
       More stuff 
       <br /> 
       And some more 
      </div> 
      <div style="clear:both;"></div> 
     </div> 
    </body> 
</html> 

Проблема я бегу в том, что в стандартном режиме при использовании высоты процента базы, дивы, как ожидается, только делают столь же большим, как их содержание. Похоже, что единственный способ решить эту проблему - использовать JavaScript.

В этом случае возникают проблемы с тем, что элемент управления может асинхронно перерисовывать с помощью AJAX, и высоты выходят из синхронизации.

Является ли то, что я пытаюсь достичь невозможным, или я ищу не в том месте?

Ник

+0

Я не понимая, почему это необходимо, чтобы сделать как в причуды и стандартов режиме. Либо включите действительный DOCTYPE или нет, правильно? –

+0

К сожалению необходим контроль для использования в приложении ASP.NET которые работают в стандартах и ​​режимах Quirks. – Nick

ответ

0
<div style="height: 100% 

100% от чего? Div не является абсолютно позиционированным, поэтому ответ является его родителем. Родитель - тело.

Насколько высок тело? Ничего не указано: по умолчанию auto. auto означает, что высота тела рассчитывается с высоты его содержимого. Ошибка в режиме Quirks: body имеет минимальную высоту, соответствующую области просмотра.

Установите как html, так и корпус на height: 100%, чтобы действительно получить 100% в стандартном режиме.

+0

Извините, я не уточнил в вопросе, так как код для управления сервером у меня нет контроля над стилем тега html или тега тела. Код, который я поставил, был просто для демонстрации сделанной наценки. – Nick

+0

Тогда единственное, что у вас осталось, это сделать обертку div «position: absolute», и в этом случае «height: 100%;» теперь относится к Начальному содержащему блоку (область просмотра). – bobince

0

Ненавижу говорить об этом, но иногда, когда приходится работать со старыми браузерами, использование методов старой школы иногда ускоряет работу. Попробуйте <table> теги. :(

<table style="height: 100%; width:400px; background-color: Green; "> 
    <tr> 
     <td style="height: 100%; width: 25%; background-color: Red; overflow:auto;"> 
      LongString:<br /> 
      Stuffsdfsfdsdfsfsdfdfsdfsdfsdfsdfsdxgsdfgsdfgsdgiusdfgiudfgifdgu 
     </td> 
     <td style="height: 100%; width: 75%; background-color: Pink; "> 
      Stuff 
      <br /> 
      More stuff 
      <br /> 
      And some more 
     </td> 
    </tr> 
</table> 
Смежные вопросы