текстовые поля в HTML-таблице: Как автоизмерить?

Я хочу добавить строку в нижней части своей HTML-таблицы (или наверху, безотносительно) с текстовым полем в каждом столбце (чтобы позволить фильтровать содержания каждого столбца).

FWIW, таблица основана на плагине jQuery DataTables.

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

8
задан JustinStolle 27 March 2011 в 06:30
поделиться

3 ответа

В пуле потоков ожидали бы рабочие потоки.

Затем мастер, ожидающий выбора (для чтения и записи).

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

Currentl libs, поддерживающие эту функциональность в готовых объектах:

-121--4293804-

При возможности пропустите его через несколько регексов. Это будет намного чище, чем те заглядывать вперед чудовища: -)

^[a-zA-Z0-9]{6,10}$
[a-zA-Z]
[0-9]

Хотя некоторые могут считать это умным, это не обязательно делать все с одним регексом (или даже с любым регексом, иногда - просто свидетельствовать людям, которые хотят регекс, чтобы обнаружить числа между 75 и 4093).

Лучше бы вы увидели хороший чистый код, например:

if not checkRegex(str,"^[0-9]+$")
    return false
val = string_to_int(str);
return (val >= 75) and (val <= 4093)

или что-то вроде:

return checkRegex(str,"^7[5-9]$|^[89][0-9]$|^[1-9][0-9][0-9]$|^[1-3][0-9][0-9][0-9]$|^40[0-8][0-9]$|^409[0-3]$")

Я знаю, какой я предпочитаю поддерживать: -)

-121--4631765-

попробуйте < input type = «text» style = «width: 100% »/> , чтобы получить ширину родительского td.

19
ответ дан 5 December 2019 в 05:26
поделиться

Я думаю, что [ширина 100%] может быть проблемой с таким подходом, поскольку границы и прокладки текстового поля занимают некоторые с тем, что добавляется к ширине.

действительно.

Вы можете компенсировать это, добавив вправо на клетку к ячейке, содержащей вход (или только на все ячейки) аналогичного размера к границам-и добивкам входа. Затем вход расширяется из зоны содержания сотовой связи, но только на прокладку, поэтому она не делает беспорядок.

Это нормально для нормальных текстовых входов. Если у вас также есть другие элементы, такие как выбирать поля или кнопки, которые вы хотите разместить таким образом, метод заполнения может вытекать вперед, потому что на IE «ширина» выбора включает в себя границу и прокладку (из-за быть виджетом ОС ).

Для большинства браузеров, самый простой и наиболее последовательный способ исправить это, является CSS3 , свойство :

td.input input {
    width: 100%;
    box-sizing: border-box;
    -moz-box-sizing: border-box;
    -webkit-box-sizing: border-box;
}

IE6-7 еще не поддерживает это, поэтому вы все равно можете получить поля, которые Не совсем выстраивайтесь в этих браузерах. Если вы заботитесь, вы можете добавить процесс обхода специально для тех.

10
ответ дан 5 December 2019 в 05:26
поделиться

Я не использовал таблицы jQuery, но предполагаю, что если вы установите 'width: 80%;' и определите ширину для 'td', текстовое поле должно унаследовать свои размеры от своего родителя ('td').

Если это не сработает или вам нужен другой подход, вы можете попробовать:

td > input[type="text"] {width: 5em;} /* or whatever */
2
ответ дан 5 December 2019 в 05:26
поделиться