Календарь jQuery UI отображается слишком большим, хотите демонстрационный размер?

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

У меня есть масса других CSS, но я не могу контролировать внешний вид страницы (не могу коснуться текущего CSS, MEH !!). Есть ли способ увидеть демонстрацию на моем сайте?

Я думаю, что это код jQuery UI, который может усложнять ситуацию.

/* Component containers
----------------------------------*/
.ui-widget { font-family: Arial, Helvetica, Verdana, sans-serif; font-size: 1.1em; }
.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Arial, Helvetica, Verdana, sans-serif; font-size: 1em; }
.ui-widget-content { border: 1px solid #B9C4CE; background: #ffffff url(../images/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x; color: #616161; }
.ui-widget-content a { color: #616161; }
.ui-widget-header { border: 1px solid #467AA7; background: #467AA7 url(../images/ui-bg_highlight-soft_75_467AA7_1x100.png) 50% 50% repeat-x; color: #fff; font-weight: bold; }
.ui-widget-header a { color: #fff; }

Это часть пользовательского интерфейса CSS.


person Phill Pafford    schedule 18.06.2009    source источник
comment
но похоже, что в демо тоже есть зачеркнутый   -  person Phill Pafford    schedule 19.06.2009
comment
Я знаю, что этому вопросу больше года, но он мне очень пригодился, спасибо!   -  person astorcas    schedule 13.09.2010
comment
То же самое, только что нашел это и нуждался в этом. Ура, переполнение стека.   -  person Eric    schedule 22.06.2011


Ответы (12)


Я понял. Все отбрасывал размер шрифта. Я добавил этот тег, чтобы правильно отображать желаемый размер:

#ui-datepicker-div { font-size: 12px; } 

Отлично работает, если кому-то еще нужно что-то подобное

person Phill Pafford    schedule 22.06.2009
comment
Примечание на будущее: используйте вместо этого класс ui-widget, так как эта проблема влияет на другие виджеты. .ui-widget { font-size: 12px; } - person Incognito; 05.01.2011
comment
Измените его на 12 пикселей; у меня не сработало. Пришлось поменять на .6em - person markthegrea; 23.09.2011
comment
@Incognito, у меня не получилось сменить виджет .ui. Пришлось измениться, как сказал Фил. - person Diego Jancic; 10.10.2012
comment
Спасибо, Фил, мне это только что помогло. - person Michael; 29.01.2013
comment
Ура!! SharePoint 2010 каким-то образом изменил размер шрифта и вызвал эту проблему. Это решило это. Спасибо! - person skinneejoe; 04.06.2013
comment
Что делать, если у вас есть более одного datepicker на странице - не уверен, почему на этом есть даже свойство id, учитывая, что несколько datepickers, безусловно, распространены. Похоже, по крайней мере, это должно применяться к классу, а не к идентификатору. - person sydneyos; 26.10.2013
comment
@sydneyos - он использует только 1 экземпляр datepicker, так как он показывает только 1 datepicker за раз, поэтому нет необходимости создавать дополнительные datepicker для каждого календаря, который вы показываете. Таким образом, значение id приемлемо и отлично проверяется ... - person Solomon Closson; 15.04.2014

.ui-widget{ font-size: 0.8em; }

Это решение, но я не знал, если вы поместите его в элемент head следующим образом:

<style type="text/css">
.ui-widget { font-family: Lucida Grande, Lucida Sans, Arial, sans-serif; font-size: 0.8em; }
</style>

Он переопределяет другие настройки, поэтому вы все равно можете загружать CSS, размещенный в Google, но используйте это, чтобы переопределить его =)

person gideon    schedule 05.10.2010
comment
только если поставить после css ссылки. Он должен быть ниже на странице, чтобы иметь приоритет. Определение этого до ссылки CSS не будет иметь никакого эффекта. - person jcolebrand; 11.10.2011
comment
+1: как сказал jcolebrand, нам нужно поставить его после, но мы можем использовать версию, размещенную в Google. - person Felice Pollano; 17.10.2011

Чтобы исправить размер календаря, измените это:

.ui-widget { font-family: Lucida Grande, Lucida Sans, Arial, sans-serif; font-size: 1.1 em; }

к этому:

.ui-widget { font-family: Lucida Grande, Lucida Sans, Arial, sans-serif; font-size: 0.8em; }

Для получения подробных инструкций посетите - http://blog.greatdevelopers.com/?p=33

person Shekhar Agarwal    schedule 22.08.2010

Если вы хотите установить размер шрифта или семейство шрифтов для всех виджетов jQuery, было бы лучше установить что-то вроде этого:

.ui-widget {
    font-size: .7em;
}

после вызова загрузки файлов CSS jQuery UI.

Все компоненты пользовательского интерфейса jQuery являются виджетами и наследуют стиль .ui-widget на верхнем уровне.

person Community    schedule 16.06.2010

Инспектор DOM (например, Firebug, IE Developer Toolbar и т. Д.) Должен помочь вам определить, какие стили CSS влияют на ваш календарь.

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

<div id="foo">Your stuff goes here. All your selectors must start with #foo</div>

В противном случае вы, по-видимому, контролируете JS. С его помощью вы сможете писать встроенные стили.

РЕДАКТИРОВАТЬ

Вы также можете посмотреть, сможете ли вы обернуть свой контент в iframe.

person steamer25    schedule 18.06.2009
comment
Иногда я удивляюсь, почему я вообще отвечаю - кто-то всегда меня опережает и обычно дает лучший ответ! - person ScottE; 18.06.2009
comment
Похоже, что некоторые из CSS имеют зачеркивание: см. Редактировать сообщение - person Phill Pafford; 19.06.2009
comment
@ Фил Я не совсем понимаю, что ты имеешь в виду. Можете быть более конкретными? Я не вижу зачеркивания и не имеет каких-либо тегов ‹strike› в своем сообщении. - person steamer25; 19.06.2009

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

div.ui-datepicker{ font-size:7px;}

Но это только уменьшило размер заголовка (месяц год). Чтобы уменьшить метки дней недели и номера дней, мне также пришлось скопировать следующие две строки из jquery-ui-1.8.18.custom.css и поместить их на свою страницу, но затем мне также пришлось добавить шрифт -размеры для обоих.

.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0;}
.ui-datepicker td { border: 0; padding: 1px; }

В итоге я получил следующее:

<style type="text/css">
div.ui-datepicker{ font-size:7px;}
.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; font-size: 1.6em;}
.ui-datepicker td { border: 0; padding: 1px; font-size: 1.6em;}
</style>

Это позволяет мне контролировать размер шрифта для даты и года, меток дней недели и номеров дат.

person Vincent    schedule 07.05.2012

Я рекомендую вам использовать

.ui-datepicker { font-size:10px !important; }

Вместо того, чтобы использовать

#ui-datepicker-div { font-size:10px !important; }

потому что селекторы классов css имеют более широкую область действия по сравнению с использованием селекторов элементов, которые предназначены только для определенного элемента. Все, что вам нужно сделать, это создать еще один элемент html типа класса, и вам вообще не нужно ни о чем беспокоиться.

Однако в вашей проблеме вам не нужно ничего делать, просто добавьте селектор классов в свой собственный файл css, НЕ тот, который для jquery-ui, и вы отсортированы, если вам нужно создать еще один datepicker, вам не придется беспокоиться о снова изменив CSS таким образом.

person A Malik    schedule 17.07.2012

Использовать масштабирование CSS

.ui-widget{ 
    -ms-transform: translate(-15%,-15%) scale(0.7);//translate must be before scale
    -moz-transform: translate(-15%,-15%) scale(0.7);
    -webkit-transform: translate(-15%,-15%) scale(0.7);
    transform: translate(-15%,-15%) scale(0.7);
}

В приведенном выше коде я использовал «sclale (0.7)», что означает, что новые ширина и высота будут составлять 70% от исходных значений. Элемент после преобразования будет иметь тот же центр исходного элемента, поэтому ширина уменьшится на 30%, что означает уменьшение на 15% слева и 15% справа, то же самое для высоты. Поэтому мы должны использовать translate, чтобы переместить новый элемент в верхний левый угол. "translate" должно быть перед "scale", поэтому "15%" будет 15% от исходной ширины (т.е. до масштабирования), а не от новой ширины после преобразования.

введите описание изображения здесь

person Billel Hacaine    schedule 20.06.2015
comment
Блестяще! Работает как шарм. Теперь мне просто нужно отцентрировать его. Он находится в правом нижнем углу div. Я хочу, чтобы он располагался по центру, но выглядит великолепно !! - person clearlight; 24.02.2017
comment
@clearlight FYI: я отредактировал ответ, добавив код для его центрирования. - person Billel Hacaine; 24.02.2017
comment
Почему вы используете фиксированную константу, а не что-то пропорциональное, 2d translate () или translate-origin? Я попытался возиться с ним сегодня, но все еще не мог точно понять, почему он масштабируется в сторону правого нижнего угла или какие коэффициенты применяются. Я проделал хакерскую манипуляцию, но я бы лучше проверил коврик и отношения и, если возможно, лучше их пойму, чем взламываю. - person clearlight; 24.02.2017
comment
@clearlight FYI: я улучшил ответ, используя ваши предложения. Теперь это работает как шарм. - person Billel Hacaine; 25.02.2017

Убедитесь, что на вашей странице нет конфликтов css - например, настройки размера шрифта html / body или контейнера, которые будут переходить в календарь.

person ScottE    schedule 18.06.2009

Какой бы размер вы ни выбрали, вы можете установить, отредактировав эту строку в css.

.ui-widget { font-family: Arial, Helvetica, Verdana, sans-serif; font-size: 1.1em; }

просто укажите другой размер шрифта, например .5em или .8em

 .ui-widget { font-family: Arial, Helvetica, Verdana, sans-serif; font-size: .5em; }

Это будет работать, я этого не делал.

person Praveen kumar Agrawal    schedule 20.08.2010

Это просто: Jquery-ui просто выполняет свою работу, используя объектный стиль. Я имею в виду :

<html>
   <body
     <input type="text" id="date"/>
     <script type="text/javascript"> $("#date").datepicker()</script>
   </body>
</html>

Размер номера даты и имени munth будет установлен в зависимости от: $ ("# date"). Css ("font-size"). Итак, если размер шрифта для ввода 6 пикселей, datepicker будет выглядеть маленьким. Если размер шрифта 42pt, это будет выбор даты вслепую!

person N Joly    schedule 20.08.2012

Я случайно наткнулся на это, но попробуйте добавить HTML-код DOCTYPE в свой документ.

<!DOCTYPE html>
<html>
    <body>
    </body>
</html>

перед открывающим тегом html.

person Michael    schedule 03.10.2012