За последние 24 часа нас посетили 21446 программистов и 1690 роботов. Сейчас ищут 1160 программистов ...

XHTML div scroll

Тема в разделе "HTML и CSS", создана пользователем woodfairy, 4 окт 2006.

  1. woodfairy

    woodfairy Активный пользователь

    С нами с:
    26 июн 2006
    Сообщения:
    23
    Симпатии:
    0
    Такой пример:

    Код (Text):
    1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" />
    2. <html>
    3. <head>
    4. </head>
    5. <body>
    6.    <div style="width: 500px; height: 100px; overflow: auto; border: solid 1px red;">
    7.       This is a table in a div <br /><br />
    8.       <table style="width: 100%; height: 200px; background: green;">
    9.          <tr>
    10.             <td></td>
    11.          </tr>
    12.       </table>
    13.    </div>
    14. </body>
    15. </html>
    Как видно, содержимое дива по высоте превышает его размеры, соответственно появлятся вертикальный скролбар.
    В Opera 9.0, FireFox 1.5.0.7, Mozilla 1.7.3 шириной содержимого считается расстояние от левого края дива до левого края СКРОЛБАРА. Это мне нравится.
    А вот Internet Explorer 6.0.2800.1106 считает, что ширина содержимого - это расстояние от левого края дива до правого края ДИВА, вследствие чего под сколлбаром остается часть содержимого и соответственно появляется горизонтальная полоса прокрутки.

    Я, конечно, могу запретить горизонтальную прокрутку, но тогда я не увижу часть содержимого. Я могу задать ширину содержимого, но тогда при меньшем содержимом справа на месте скролбара будет пустая вертикальная полоса, что тоже нежелательно. Может кто сталкивался с подобной проблемой и знает, как заставить браузеры отображать содержимое одинаково?
     
  2. Anonymous

    Anonymous Guest

    Сталкивался - решения достаточно хорошего не нашел - для конкретного случая решил пробему сменой doctype - ибо в Quirk Mode корректно ширину вычисляет... Если найдете хорошее решение, сообщите, если не сложно...
     
  3. woodfairy

    woodfairy Активный пользователь

    С нами с:
    26 июн 2006
    Сообщения:
    23
    Симпатии:
    0
    А подскажите, пожалуйста, какой doctype помогает (отсутствие, кстати, помогает)? Я не знаю, что такое Quirk Mode.

    То есть я думала, что Transitional - это итак нестрогое соответствие стандартам.
     
  4. Anonymous

    Anonymous Guest

    мне HTML 4.01 помог, вроде бы...
     
  5. woodfairy

    woodfairy Активный пользователь

    С нами с:
    26 июн 2006
    Сообщения:
    23
    Симпатии:
    0
    понятно, мне надо XHTML. Возможно, буду JScript'ом просчитывать.
     
  6. Anonymous

    Anonymous Guest

  7. Demon

    Demon Активный пользователь

    С нами с:
    20 апр 2006
    Сообщения:
    239
    Симпатии:
    0
    woodfairy:
    Код (Text):
    1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" />
    2. <html>
    3. <head>
    4. <style type="text/css">
    5. <!--
    6. * html div#tab {
    7. width: 500px;
    8. height: 100px;
    9. overflow: auto;
    10. border: solid 1px red;
    11. }
    12. * html table {
    13. width: 96.9%;
    14. height: 200px;
    15. background: green;
    16. }
    17. div#tab {
    18. width: 550px !important;
    19. height: 100px;
    20. overflow: auto;
    21. border: solid 1px red;
    22. }
    23. table {
    24. width: 100%;
    25. height: 200px;
    26. background: green;
    27. }
    28. -->
    29. </style>
    30.  
    31. </head>
    32. <body>
    33.    <div id="tab">
    34.       This is a table in a div <br /><br />
    35.       <table>
    36.          <tr>
    37.             <td></td>
    38.          </tr>
    39.       </table>
    40.    </div>
    41. </body>
    42. </html>
     
  8. Anonymous

    Anonymous Guest

    Подогнать и я могу.... =(( вы мене универсальный способ покажите...
     
  9. Demon

    Demon Активный пользователь

    С нами с:
    20 апр 2006
    Сообщения:
    239
    Симпатии:
    0
    Не подскажу, т.к не знаю такого. Во всяком случае, лучше через CSS подогнать, чем использовать JS, т.к он может быть отключен.