I'm trying to create a table like this in HTML
So far this is my table created with this code:
function renderHead(div, start, end) {
var c_year = start.getFullYear();
var r_year = "<tr>";
var daysInYear = 0;
var c_month = start.getMonth();
var r_month = "<tr>";
var daysInMonth = 0;
var r_event = "<tr>";
var r_days = "<tr> <td id= 'event'> Eventi </td>";
for (start; start <= end; start.setDate(start.getDate() + 1)) {
if (start.getFullYear() !== c_year) {
r_year += '<td colspan="' + daysInYear + '">' + c_year + '</td>';
c_year = start.getFullYear();
daysInYear = 0;
}
daysInYear++;
if (start.getMonth() !== c_month) {
r_month += '<td colspan="' + daysInMonth + '">' + months[c_month] + '</td>';
c_month = start.getMonth();
daysInMonth = 0;
}
daysInMonth++;
r_days += '<td id="days">' + start.getDate() + '</td>'; //riga dei giorni numero
}
r_days += " <td id='tot'> Totale </td> </tr>";
r_year += '<td colspan="' + daysInYear + '">' + months[c_month] + ' '+ c_year +'</td>'; //riga del titolo che indica il mese
r_year += "</tr>";
r_event += '<td id="norm">Normali</td><td id="diff"colspan="' + daysInYear + '"> </td></tr>'+
'<tr><td>Straordinarie</td><td colspan="' + daysInYear + '"> </td></tr>'+
'<tr><td>Ferie</td><td colspan="' + daysInYear + '"> </td></tr>'+
'<tr><td>Malattia</td><td colspan="' + daysInYear + '"> </td></tr>'+
'<tr><td>Permesso</td><td colspan="' + daysInYear + '"> </td></tr>'+
'<tr><td>Smart Working</td><td colspan="' + daysInYear + '"> </td></tr>'+
'<tr><td>Trasferta</td><td colspan="' + daysInYear + '"> </td></tr>'+
'<tr><td>Assenza non retribuita</td><td colspan="' + daysInYear + '"> </td></tr>'+
'<tr><td>Altro</td><td colspan="' + daysInYear + '"> </td></tr>';
table = "<table id='tblData' border='1'><thead>" + r_year + r_days + "</thead><tbody>" + r_event + "</tbody></table>"; //riga dei giorni numero
div.html(table);
}
var date = new Date();
var firstDay = new Date(date.getFullYear(), date.getMonth(), 1);
var lastDay = new Date(date.getFullYear(), date.getMonth() + 1, 0);
renderHead($('div#table2'), new Date(firstDay), new Date(lastDay));
I created it in Javascript cause i needed to have an header build with every day of the months and online i found this solution. But know I'm struggling cause i dont' know how to create the empy cells in the middle.
I tried by adding it via CSS but doesnt work.
This is how I call my table in HTML: <div id="table2" class="calendar"></div>
And this is the class in CSS:
div.calendar table tr td {
border: 1px solid black;
text-align: center;
empty-cells: show;
background-color: #D6EEEE
}