Баг с ресайзом <plaintext>
От: Hawk Россия  
Дата: 08.11.10 14:02
Оценка:
Тестируя свой многострадальный грид, напоролся на баг. Проявляется он в HTMLayout 3.3.2.15, 3.3.2.14, 3.3.2.2, 3.3.1.44, 3.3.1.41, т.е., похоже, во всех новых версиях.

Есть HTML код:
  HTML
<html>
<head>
<style>
        body
        {
            font-family: Tahoma;
            font-size: 8pt;
        }
        plaintext
        {
            font-family: Tahoma;
            font-size: 8pt;
        }
        table#grid
        {
            width: *;
            height: *;
            /*behavior: grid column-resizer;*/
            overflow: auto; 
            border: 1px solid black;
            border-spacing: -1px; /* equal to border-collapse: collapse;*/
            background-color: white;
        }
        table#grid th
        {
            height: 1.3em;
            white-space: nowrap;
            border: 1px solid black;
        }
        table#grid td
        {
            border: 1px solid black;
        }
        table#grid td plaintext
        {
            width: *;
            height: min-intrinsic;
            overflow: none;
            background-image: none;
            background-color: transparent;
            padding: 0;
        }
        table#grid tr th:nth-child(1)
        {
            width: 10em;
        }
        table#grid tr th:nth-child(2)
        {
            width: 25em;
        }
        table#grid tr th:nth-child(3)
        {
            width: 4em;
        }
        table#grid tr th:nth-child(4)
        {
            width: 4em;
        }
        table#grid tr th:nth-child(5)
        {
            width: 4em;
        }
</style>
</head>
<body>
        <table #grid fixedrows=1>
            <tr>
                <th>A</th>
                <th>B</th>
                <th>C</th>
                <th>D</th>
                <th>E</th>
            </tr>
            <tr>
                <td><plaintext></plaintext></td>
                <td><plaintext></plaintext></td>
                <td>1000</td>
                <td>1000</td>
                <td>100</td>
            </tr>
        </table>
</body>
</html>

Если открыть его в browse.exe и начать набирать текст в одной из первых двух колонок, размер колонки начнет увеличиваться. Дойдя до определенного предела, произойдет автоматический перенос текста на другую строку.

Проблема в том, что после автоматического переноса высота строки задается неправильно — меньше, чем надо. Из-за этого при наборе очередного символа текст смещается то вверх, то вниз (иногда текст может вылезти за пределы ячейки, тогда смещения вверх/вниз не будет). После следующего автоматического переноса этот эффект может исчезнуть. Потом снова появиться.

От behavior: grid это не зависит — я его специально отключил для проверки.
Re: Баг с ресайзом <plaintext>
От: c-smile Канада http://terrainformatica.com
Дата: 08.11.10 16:50
Оценка: 2 (1)
Здравствуйте, Hawk, Вы писали:

H>Тестируя свой многострадальный грид, напоролся на баг. Проявляется он в HTMLayout 3.3.2.15, 3.3.2.14, 3.3.2.2, 3.3.1.44, 3.3.1.41, т.е., похоже, во всех новых версиях.


Попробуй так:

table#grid td plaintext
        {
           width: *;
           height: min-intrinsic;
           overflow-y: none; // overflow: none;
           background-image: none;
           background-color: transparent;
           padding: 0;
       }


это не то что тебе надо?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.