Сделать вход невидимым через CSS?

Вы можете использовать троичный оператор для форматирования даты как оператор «if».

Например:

var MyDate = new Date();
MyDate.setDate(MyDate.getDate()+10);
var MyDateString = (MyDate.getDate() < 10 ? '0' + MyDate.getDate() : MyDate.getDate()) + '/' + ((d.getMonth()+1) < 10 ? '0' + (d.getMonth()+1) : (d.getMonth()+1)) + '/' + MyDate.getFullYear();

Таким образом,

(MyDate.getDate() < 10 ? '0' + MyDate.getDate() : MyDate.getDate())

будет похож на оператор if, где, если getDate () возвращает значение меньше 10, то возвращает 0 '+ Дата, иначе верните дату, если она больше 10 (поскольку нам не нужно добавлять начальный 0). То же самое за месяц.

Редактировать: Забыл, что getMonth начинается с 0, поэтому добавил +1, чтобы учесть это. Конечно, вы также можете просто сказать d.getMonth () < 9:, но я подумал, что использование +1 поможет облегчить понимание.

12
задан Boris Callens 3 July 2009 в 08:56
поделиться

6 ответов

А как насчет установки невидимого поля ввода на position: absolute; , которое должно исключить его из потока рендеринга.

Однако, установив его на display : none теоретически должен делать то же самое ...

9
ответ дан 2 December 2019 в 04:53
поделиться
<style>
.hideme
{
    display:none;
    visibility:hidden;
}
.showme
{
    display:inline;
    visibility:visible;
}
</style>


<input type="text" name="mytext" class="hideme">

Вы можете установить class = "hideme", чтобы скрыть свой элемент управления, или class = "showme", чтобы отобразить его. Вы можете установить это переключение, используя JavaScript или кодирование на стороне сервера.

5
ответ дан 2 December 2019 в 04:53
поделиться

почему бы вам не использовать input type = "hidden" ?

14
ответ дан 2 December 2019 в 04:53
поделиться

Я не слишком знаком с CSS, но вы можете попробовать реализовать JQuery , который объединяет Javascript и CSS, чтобы вы могли делать подобные вещи с относительной легкостью.

0
ответ дан 2 December 2019 в 04:53
поделиться

Это поле скрывает, но все же заставляет его занимать место.

Этого не должно происходить; display: none не должно приводить к включению элемента в поток. Проверьте остальную часть вашего CSS (попробуйте использовать Firebug, чтобы выяснить, откуда исходит дополнительное «пространство», которое, вероятно, является просто заполнением или краем какого-либо окружающего элемента).

3
ответ дан 2 December 2019 в 04:53
поделиться

Использование свойства видимости занимает пространство отрисовки, даже если элемент не виден. Вместо использования видимости вы должны использовать свойство отображения.

Вы можете установить display на none , если вы хотите скрыть элемент и отображать его в блоке или inline , если вы хотите их показать.

Чтобы посмотреть на дисплей, проверьте this

Если установка вашего свойства display не решает вашу проблему, то я думаю, что текстовые поля могут быть абсолютно позиционированным. Это могло быть причиной того, что макет не был изменен.

Не могли бы вы опубликовать полный код?

0
ответ дан 2 December 2019 в 04:53
поделиться