Атрибут size
устанавливает видимую ширину в «символах», а браузеры интерпретируют это по-другому. Единица ch
в поддерживающих браузерах означает ширину цифры 0
, поэтому она определена очень точно, хотя она, конечно, зависит от шрифта. Таким образом, эти два способа установки ширины несоизмеримы.
Чтобы сделать элемент div
после элемента input
в точности таким же широким, как и элемент input
, самый простой способ - обернуть их в таблицу с фиксированным расположением. (Те, кто не переносит таблицы HTML, могут использовать таблицу CSS.) Вы не устанавливаете ширину элемента div
вообще в этом подходе; он получает свою ширину от форматирования таблицы. Я только что установил для него некоторый контент и цвет фона, чтобы ширина элемента была видимой.
<table style="table-layout: fixed" cellspacing=0>
<tr><td><input type="text" readonly="yes" value="a" size="30" ID="b">
<tr><td><div id="c" style="background: green">Hello world</div>
</table>
Основываясь на нескольких изменениях в ответе Суниты (мне нужно, чтобы он оставался 1-м массивом и поддерживал объекты в качестве элементов), это то, что я закончил с
l = len(results)
if(l>0):
n = int(l/3)+1 if l%3 else int(l/3)
results = np.array(list(filter((0).__ne__,np.pad(np.array(results), ((0,n*3-l)), mode='constant').reshape((n,3), order='F').flatten())),dtype=object)
Как насчет заполнения размера результатов до ближайшего кратного 3 перед повторной формой. Затем вы можете отфильтровать пустые значения после преобразования в список
>>> results = ['a']
>>> l = len(results)
>>> n = int(l/3)+1 if l%3 else int(l/3)
>>> np.pad(np.array(results), ((0,n*3-l)), mode='constant').reshape((n,3), order='F')
array([['a', '', '']], dtype='<U1')