Cara mengubah ukuran kontrol jQuery DatePicker

195

Saya menggunakan kontrol DatePicker jQuery untuk pertama kalinya. Saya sudah membuatnya bekerja pada formulir saya, tapi ini sekitar dua kali lebih besar dari yang saya inginkan, dan sekitar 1,5 kali lebih besar dari demo di halaman jQuery UI. Apakah ada pengaturan sederhana yang saya lewatkan untuk mengontrol ukuran?

Sunting: Saya menemukan petunjuk, tetapi membuka masalah baru. Dalam file CSS, itu menyatakan komponen akan skala sesuai dengan ukuran font elemen induk. Mereka merekomendasikan pengaturan

body {font-size: 62.5%;}

untuk membuat 1em = 10px. Melakukan ini memberi saya datepicker berukuran bagus, tapi jelas itu mengacaukan sisa situs saya (saat ini saya memiliki ukuran font: .9em).

Saya mencoba melempar DIV di sekitar kotak teks saya dan mengatur ukuran font-nya, tetapi tampaknya mengabaikannya. Jadi harus ada beberapa cara untuk mengecilkan datepicker dengan mengubah font induknya, tetapi bagaimana cara melakukannya tanpa mengacaukan sisa situs saya?

gfrizzle
sumber
rekatkan kode Anda, karena saya tidak tahu alasan mengapa akan lebih besar? dan apakah Anda merujuk pada tombol gambar atau kalender aktual yang menunjukkan hari-hari?
TStamper
Saya perhatikan bahwa datepicker HTML akan dimasukkan di luar div yang mengandung. Itu sebabnya pengaturan ukuran font div Anda tidak melakukannya (selain dari fakta bahwa deklarasi gaya harus lebih spesifik, seperti dalam jawaban Jimmy Stenke).
evanrmurphy

Jawaban:

390

Anda tidak perlu mengubahnya di file jquery-ui css (ini bisa membingungkan jika Anda mengubah file default), itu sudah cukup jika Anda menambahkan

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

dalam stylesheet yang dimuat setelah file-file ui

div.ui-datepicker diperlukan jika ui-widget disebutkan setelah ui-datepicker dalam deklarasi

Jimmy Stenke
sumber
26
Langkah "dalam stylesheet yang dimuat setelah file ui" sangat penting. Jika Anda memuat stylesheet Anda sebelum jquery ui stylesheet, atribut apa pun yang Anda atur akan ditimpa.
Travis
7
Untuk menghentikan masalah yang ditimpa sesuai komentar 1 - Anda dapat melakukan ini: font-size: 10px! Important;
Martin
7
! Yang penting adalah hack-ish, saya pasti akan menyarankan untuk tidak menggunakannya.
Derek Adair
5
Inilah sebabnya mereka disebut CASCADING Style Sheets (CSS)
Mark W
1
lol bahkan tidak menyadari bahwa masalahnya mungkin ukuran font! terima kasih
themhz
30

Saya tidak bisa menambahkan komentar, jadi ini merujuk pada jawaban yang diterima oleh Keijro. Saya sebenarnya menambahkan yang berikut ke stylesheet saya sebagai gantinya:

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

dan itu berhasil juga. Ini mungkin lebih baik daripada nilai absolut 10px.

Bryant Bowman
sumber
20

Tidak yakin apakah beberapa orang menyarankan cara berikut, jika ya, abaikan saja komentar saya. Saya menguji ini hari ini dan itu bekerja untuk saya. Dengan hanya mengubah ukuran font sebelum kontrol ditampilkan:

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

Menggunakan fungsi panggilan balik sebelumnya

Jacob CUI
sumber
2
Saya suka solusi ini dengan lebih baik
Kode Monkey
9

Saya mengubah baris berikut di ui.theme.css:

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

untuk:

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

Menambahkan

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

dalam stylesheet yang dimuat setelah file-file ui. Ini juga akan mengubah ukuran item tanggal.

Satyaram BV
sumber
5

Bagi saya, ini adalah solusi termudah: Saya menambahkan font-size:62.5%;ke yang pertama.ui-datepicker tag dalam file css custom jquery:

sebelum:

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

setelah:

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

Saya mencoba contoh-contoh ini tanpa hasil. Rupanya stylesheet lain pada halaman itu mengatur ukuran font default untuk tag yang berbeda. Jika Anda menyesuaikan ui-datepicker Anda mengubah div. Jika Anda mengubah div Anda perlu memastikan konten div itu mewarisi ukuran itu. Inilah yang akhirnya berhasil untuk saya:

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

Semoga berhasil!

Chad Kuehn
sumber
2

Saya menggunakan input untuk mengumpulkan dan menampilkan kalender, dan untuk dapat mengubah ukuran kalender saya telah menggunakan kode ini:

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

Itu bekerja seperti pesona.

Chris
sumber
2

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

Stefan Höltker
sumber
1

Ini bekerja untuk saya dan tampaknya sederhana ...

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

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

Saya mencoba pendekatan menggunakan fungsi callback beforeShow tetapi ternyata saya juga harus mengatur ketinggian garis. Versi saya terlihat seperti:

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

tempat terbaik untuk mengubah ukuran kalender adalah di file jquery-ui.css

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

Kode ini akan berfungsi pada tombol Kalender. ukuran angka akan meningkat dengan menggunakan "line-height".

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

Anda dapat mengubah jquery-ui-1.10.4.custom.css sebagai berikut

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

Pendekatan lain:

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

$('div.ui-datepicker').css({ fontSize: '12px' }); bekerja jika kita memanggilnya setelah $("#DueDate").datepicker();

Biola

Mostafa
sumber
1

Solusi Jacob Tsui sangat cocok untuk saya:

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

Kita dapat mengubah dalam file ' jquery-ui.css ' default seperti kode yang diberikan di bawah ini:

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

Namun, mengubah ' jquery-ui.css default ' tidak disarankan karena mungkin telah digunakan di tempat lain dalam proyek. Mengubah nilai dalam file default dapat mengubah font datepicker di halaman web lain di mana ia telah digunakan.

Saya menggunakan kode di bawah ini untuk mengubah "ukuran font". Saya menempatkannya tepat setelah datepicker () dipanggil seperti yang ditunjukkan di bawah ini.

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

Semoga ini membantu...

pengguna3401675
sumber
0

Saya rasa saya menemukannya - saya harus masuk ke file CSS dan mengubah ukuran font untuk kontrol datepicker secara langsung. Jelas sekali Anda mengetahuinya, tetapi pada awalnya membingungkan.

gfrizzle
sumber
0

buka ui.all.css

pada akhirnya put

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

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

dan pergi !


sumber
0

Agar ini berfungsi di Safari 5.1 dengan Rails 3.1, saya harus menambahkan:

.ui-datepicker, .ui-datepicker a{
 font-size:10px;
}
Tanah liat
sumber
0

Saya memiliki datepicker yang muncul di modal dan karena "tanggal-tampilan-wadah" di sisi kiri, kalender sebagian tidak terlihat, jadi saya menambahkan:

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