Как изменить размер элемента управления jQuery DatePicker

Я впервые использую элемент управления jQuery DatePicker. Я работаю над своей формой, но она примерно в два раза больше, чем мне хотелось бы, и примерно в 1,5 раза больше, чем демо на странице пользовательского интерфейса jQuery. Есть ли какая-то простая настройка, которую мне не хватает, чтобы контролировать размер?

Edit: я нашел ключ, но он открывает новые проблемы. В файле CSS указывается, что компонент будет масштабироваться в соответствии с размером шрифта родительского элемента. Они рекомендуют устанавливать

body {font-size: 62.5%;}

сделать 1эм = 10 ПКС. Это дает мне хороший размер datepicker, но, очевидно, он испортит остальную часть моего сайта (в настоящее время у меня есть размер шрифта: .9em).

Я попытался бросить DIV вокруг моего текстового поля и установить его размер шрифта, но он, похоже, игнорирует это. Таким образом, должен быть какой-то способ уменьшить datepicker, изменив шрифт его родителя, но как это сделать, не испортив остальную часть моего сайта?

21 ответов


вам не нужно менять его в файле css jQuery-ui (это может запутать, если вы измените файлы по умолчанию), достаточно добавить

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

в таблице стилей, загруженной после ui-файлов

div.ui-datepicker необходим в случае, если ui-widget упоминается после ui-datepicker в объявлении


Я не могу добавить комментарий, поэтому это относится к принятому ответу Keijro. Вместо этого я добавил в таблицу стилей следующее:

    div.ui-datepicker {
    font-size: 62.5%;
}

и это сработало. Это может быть предпочтительнее абсолютного значения 10px.


Не уверен, что какой-то орган предложил следующий способ, если да, просто игнорируйте мои комментарии. Я проверил это сегодня, и это работает для меня. Просто изменив размер шрифта перед отображением элемента управления:

$('#event_date').datepicker({
    showButtonPanel: true,
    dateFormat: "mm/dd/yy",
    beforeShow: function(){    
           $(".ui-datepicker").css('font-size', 12) 
    }
});

использование функции обратного вызова beforeShow


Я изменяю следующую строку в ui.тема.css:

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

в:

.ui-widget { font-family: Trebuchet MS, Tahoma, Verdana, Arial, sans-serif; font-size: 12px; }

добавить

div.ui-datepicker, .ui-datepicker td{
 font-size:10px;
}

в таблице стилей, загруженной после ui-файлов. Это также изменит размер элементов даты.


для меня это было самое простое решение: Я добавил font-size:62.5%; до первого .ui-datepicker тег в пользовательском css-файле jquery:

перед:

.ui-datepicker { width: 17em; padding: .2em .2em 0; display: none;} 

после:

.ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; font-size:62.5%; }

Я пробовал эти примеры без успеха. По-видимому, другие таблицы стилей на странице устанавливали размеры шрифтов по умолчанию для разных тегов. Если вы настраиваете ui-datepicker, вы меняете div. Если вы измените div, вам нужно убедиться, что содержимое этого div наследует этот размер. Вот что, наконец, сработало для меня:

<style type="text/css">
.ui-datepicker-calendar tr, .ui-datepicker-calendar td, .ui-datepicker-calendar td a, .ui-datepicker-calendar th{font-size:inherit;}
div.ui-datepicker{font-size:16px;width:inherit;height:inherit;}
.ui-datepicker-title span{font-size:16px;}
</style>

удачи!


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

div.ui-datepicker, .ui-datepicker input{font-size:62.5%;}

это работает как шарм.


$('.ui-datepicker').css('font-size', $('.ui-datepicker').width() / 20 + 'px');


это работает для меня и кажется простым...

$(function() {
  $('#inlineDatepicker').datepicker({onSelect: showDate, defaultDate: '01/01/2010'});
});

<div style="font-size:75%";>
<div id="inlineDatepicker"></div>
</div>

with out changing the css file you can also change the calendar size  by putting the the following code in to ur <head>.....</head> tag:


<head>
<meta charset="utf-8" />
<title>jQuery UI Datepicker - Icon trigger</title>
<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.2/themes/smoothness/jquery-ui.css" />
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script src="http://code.jquery.com/ui/1.10.2/jquery-ui.js"></script>
<link rel="stylesheet" href="/resources/demos/style.css" />
<style type="text/css">
.ui-widget { font-family: Lucida Grande, Lucida Sans, Arial, sans-serif; font-size: 0.6em; }
</style>

<script>



$(function() {

$( "#datepicker" ).datepicker({
//font-size:10px;
 //numberOfMonths: 3,

showButtonPanel: true,
showOn: 'button',
buttonImage: "images/calendar1.gif",
buttonImageOnly: true
});
});
</script>

</head>

Я попытался использовать функцию обратного вызова beforeShow, но обнаружил, что мне также нужно установить высоту линии. Моя версия выглядела так:

beforeShow: function(){$j('.ui-datepicker').css({'font-size': 11, 'line-height': 1.2})}

лучшее место для изменения размера календаря находится в файле jquery-ui.в CSS

/* Component containers
----------------------------------*/
.ui-widget {
    font-family: Verdana,Arial,sans-serif;
    font-size: .7em; /* <--default is 1.1em */
}

этот код будет работать на кнопках Каландра. размер чисел будет увеличиваться с помощью "line-height".

/* Change Size */
<style>
    .ui-datepicker{
        font-size:16px;
        line-height: 1.3;
    }
</style>

вы можете изменить jquery-ui-1.10.4.традиция.CSS следующим образом

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

другой подход:

$('.your-container').datepicker({
    beforeShow: function(input, datepickerInstance) {
        datepickerInstance.dpDiv.css('font-size', '11px');
    }
});

$('div.ui-datepicker').css({ fontSize: '12px' }); работа, если мы называем его после $("#DueDate").datepicker();

Скрипка


решение Jacob Tsui идеально подходит для меня:

$('#event_date').datepicker({
    showButtonPanel: true,
    dateFormat: "mm/dd/yy",
    beforeShow: function(){ 
        $(".ui-datepicker").css('font-size', 12)
    }
});

Я думаю, что нашел его - мне пришлось войти в файл CSS и изменить размер шрифта для элемента управления datepicker напрямую. Очевидно, как только вы знаете об этом, но сначала сбивает с толку.


открыть ИП.все.в CSS

в конце ставить

@import "ui.base.css";
@import "ui.theme.css";

div.ui-datepicker {
font-size: 62.5%; 
}

и вперед !


чтобы заставить это работать в Safari 5.1 с Rails 3.1, мне пришлось добавить:

.ui-datepicker, .ui-datepicker a{
 font-size:10px;
}