Cómo cambiar el tamaño del control jQuery DatePicker

195

Estoy usando el control jQuery DatePicker por primera vez. Lo tengo funcionando en mi formulario, pero es aproximadamente el doble de lo que me gustaría, y aproximadamente 1,5 veces más grande que la demostración en la página de jQuery UI. ¿Hay alguna configuración simple que me falta para controlar el tamaño?

Editar: encontré una pista, pero abre nuevos problemas. En el archivo CSS, indica que el componente se escalará de acuerdo con el tamaño de fuente del elemento principal. Recomiendan configurar

body {font-size: 62.5%;}

hacer 1em = 10px. Hacer esto me da un selector de fechas de buen tamaño, pero obviamente arruina el resto de mi sitio (actualmente tengo el tamaño de fuente: .9em).

Intenté lanzar un DIV alrededor de mi cuadro de texto y establecer su tamaño de fuente, pero parece ignorar eso. Entonces, debe haber alguna forma de reducir el selector de fechas cambiando la fuente de su padre, pero ¿cómo puedo hacer eso sin desordenar el resto de mi sitio?

gfrizzle
fuente
pegue su código, porque no sé por qué sería más grande? y te refieres al botón de imagen o al calendario real que muestra los días?
TStamper
Me di cuenta de que el HTML selector de fecha se insertará fuera de cualquier div que contenga. Es por eso que configurar el tamaño de fuente de su div no lo hizo (aparte del hecho de que la declaración de estilo debía ser más específica, como en la respuesta de Jimmy Stenke).
evanrmurphy 01 de

Respuestas:

390

No tiene que cambiarlo en el archivo jquery-ui css (puede ser confuso si cambia los archivos predeterminados), es suficiente si agrega

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

en una hoja de estilo cargada después de los archivos ui

se necesita div.ui-datepicker en caso de que ui-widget se mencione después de ui-datepicker en la declaración

Jimmy Stenke
fuente
26
El paso "en una hoja de estilo cargada después de los archivos ui" es muy importante. Si carga su hoja de estilo antes de la hoja de estilo jquery ui, se sobrescribirán los atributos que establezca.
Travis
77
Para detener el problema sobrescrito según el comentario 1, puede hacer esto: font-size: 10px! Important;
Martin
77
! importante es hack-ish, definitivamente recomendaría no usar eso.
Derek Adair
55
Es por eso que se llaman hojas de estilo en cascada (CSS)
Mark W
1
lol ni siquiera se dio cuenta de que el problema podría ser el tamaño de fuente. gracias
themhz
30

No puedo agregar un comentario, por lo que esto se refiere a la respuesta aceptada por Keijro. En realidad, agregué lo siguiente a mi hoja de estilo:

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

y funcionó también Esto podría ser preferible al valor absoluto de 10px.

Bryant Bowman
fuente
20

No estoy seguro si algún cuerpo ha sugerido la siguiente manera, en caso afirmativo, simplemente ignore mis comentarios. Probé esto hoy y funciona para mí. Simplemente cambiando el tamaño de la fuente antes de que se muestre el control:

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

Uso de la función de devolución de llamada beforeShow

Jacob CUI
fuente
2
Esta solución me gusta más
Code Monkey el
9

Cambio la siguiente línea en ui.theme.css:

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

a:

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

Añadir

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

en una hoja de estilo cargada después de los archivos ui. Esto también cambiará el tamaño de los elementos de fecha.

Satyaram BV
fuente
5

Para mí, esta fue la solución más fácil: agregué font-size:62.5%;la primera .ui-datepickeretiqueta en el archivo css personalizado de jquery:

antes de:

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

después:

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

Estaba probando estos ejemplos sin éxito. Aparentemente, otras hojas de estilo en la página estaban configurando tamaños de fuente predeterminados para diferentes etiquetas. Si ajusta el ui-datepicker, está cambiando un div. Si cambia un div, debe asegurarse de que el contenido de ese div herede ese tamaño. Esto es lo que finalmente funcionó para mí:

<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>

¡Buena suerte!

Chad Kuehn
fuente
2

Estaba usando una entrada para recopilar y mostrar el calendario, y para poder cambiar el tamaño del calendario he estado usando este código:

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

Funciona a las mil maravillas.

Chris
fuente
2

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

Stefan Höltker
fuente
1

Esto funcionó para mí y parece simple ...

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

<div style="font-size:75%";>
<div id="inlineDatepicker"></div>
</div>
jimscafe
fuente
1
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>
babbu
fuente
1

Probé el enfoque de usar la función de devolución de llamada antes de Mostrar, pero descubrí que también tenía que establecer la altura de la línea. Mi versión se veía así:

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

el mejor lugar para cambiar el tamaño del calendario es en el archivo jquery-ui.css

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

Este código funcionará en los botones del calendario. el tamaño de los números aumentará al usar "altura de línea".

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

puede cambiar jquery-ui-1.10.4.custom.css de la siguiente manera

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

Otro enfoque:

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

$('div.ui-datepicker').css({ fontSize: '12px' }); funciona si lo llamamos después $("#DueDate").datepicker();

Violín

Mostafa
fuente
1

La solución de Jacob Tsui funciona perfecta para mí:

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

Podemos modificar el archivo predeterminado ' jquery-ui.css ' como se muestra a continuación:

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

Sin embargo, cambiar el valor predeterminado ' jquery-ui.css no se recomienda archivo ', ya que podría haberse utilizado en otro lugar del proyecto. Cambiar los valores en el archivo predeterminado puede alterar la fuente del selector de fecha en otras páginas web donde se ha utilizado.

Usé el siguiente código para alterar el "tamaño de fuente". Lo coloqué justo después de llamar a datepicker () como se muestra a continuación.

<script>
        $(function () {
            $( "#datepicker" ).datepicker();
            $("div.ui-datepicker").css("font-size", "80%")
        });
</script>

Espero que esto ayude...

usuario3401675
fuente
0

Creo que lo encontré, tuve que ir al archivo CSS y cambiar el tamaño de fuente para el control de selector de fecha directamente. Obvio una vez que lo sabes, pero confuso al principio.

gfrizzle
fuente
0

abrir ui.all.css

al final poner

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

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

y ve !


fuente
0

Para que esto funcione en Safari 5.1 con Rails 3.1, tuve que agregar:

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

Tenía un selector de fecha que aparecía en modo modal y debido al "contenedor de visualización de fecha" en el lado izquierdo, el calendario estaba parcialmente fuera de la vista, así que agregué:

.datepicker-date-display {
  display: none;
}

.datepicker-calendar-container {
  max-height: 21em;
}
.datepicker-day-button {
  line-height: 1.2em;
}

.datepicker-table > thead > tr > th {
  padding: 0;
}
Mac
fuente