Цитата:
Вот мой вариант — последняя часть сообщения №67 Вы можете поменять стили, как хотите! (Например, что вам стоит добавить такую же закруглённую рамку для дня недели, как в том примере это сделано у <input> и <select>?) |
Malleys,
пост 74, можно использовать <span id="day">и внутрь поместить див с нулевой высотой/шириной задать диву рамку 3-5 пикселей и левую правую нижнюю рамку сделать прозрачной, тем самым нарисовав треугольник, типа как в списке, но надо чтобы этот треугольник не отличался визуально от аналогичного в селекте, а он сильно различается в разных браузерах... |
Цитата:
Цитата:
<span id="day">Воскресенье</span> <style> #day { -webkit-appearance: menulist; padding-right: 1em; } </style> Только зачем вам эта стрелка? Это же не всплывающий список! |
Malleys,
не во всех браузерах это сработает, в том числе и в Habbit browser, который ты когда то скачал... Цитата:
|
Цитата:
Цитата:
Вы ещё можете использовать треугольник ▼. <span id="day">Воскресенье ▼</span> Цитата:
Если говорить о неделе, начало которой в понедельник, то получается, что точка отсчёта — понедельник. И тогда получается, что по прошествии одного дня с понедельника получается вторник, по прошествий трёх дней с понедельника получается четверг, и т.д. Что как раз таки не логично, поэтому стали использовать порядковые числительные для объяснения такой недели. Т. е. второй день — вторник, четвёртый день — четверг, и т.д. (Например, тогда получается, что во вторник днём с начала недели прошёл 1 день и ещё столько-то часов вторника) Цитата:
|
Цитата:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Calendar</title> </head> <body> <style> .month, .month.vert .week, .day { display:inline-block; } .month.vert .day { display:block; } .day { border: 1px solid #ccc; width: 30px; line-height: 30px; text-align: center; margin: 1px; } </style> <div class="month"></div> <script> var calendar = { update: function (year, month) { this.days.length = 7; var stepDay = new Date(year, month, 1); stepDay.setDate(1 - stepDay.getDay()); var lastDay = new Date(year, month + 1, 0); lastDay.setDate(lastDay.getDate() + 6 - lastDay.getDay()); while (stepDay <= lastDay) { this.days.push(stepDay.getDate()); stepDay.setHours(24); } }, render: function () { var html = ''; for (var i = 0, j = 0; i < this.days.length; j = ++i % 7) { if (j == 0) html += '<div class="week">'; html += '<div class="day">' + this.days[i] + '</div>'; if (j == 6) html += '</div>'; } this.element.innerHTML = html; }, toggle: function () { this.element.classList.toggle('vert'); } }; var today = new Date, thisYear = today.getFullYear(), thisMonth = today.getMonth(); calendar.days = ['Вс', 'Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Сб']; calendar.element = document.querySelector('.month'); calendar.element.addEventListener('click', function () { calendar.toggle() }); calendar.update(thisYear, thisMonth); calendar.render(); </script> </body> </html> |
Блондинка,
вам дали алгоритм тут Цитата:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title>Calendar</title> </head> <body> <style> .month, .month.vert .week, .day { display: inline-block; } .month.vert .day { display: block; } .day { border: 1px solid #ccc; width: 30px; line-height: 30px; text-align: center; margin: 1px; } </style> <div class="month"></div> <script> var calendar = { update: function(year, month) { this.days.length = 7; var stepDay = new Date(year, month, 1); stepDay.setDate(stepDay.getDate() + 0 - ((stepDay.getDay() + 6) % 7)); var lastDay = new Date(year, month + 1, 0); lastDay.setDate(lastDay.getDate() + 6 - ((lastDay.getDay() + 6) % 7)); while (stepDay <= lastDay) { this.days.push(stepDay.getDate()); stepDay.setHours(24); } }, render: function() { var html = ''; for (var i = 0, j = 0; i < this.days.length; j = ++i % 7) { if (j == 0) html += '<div class="week">'; html += '<div class="day">' + this.days[i] + '</div>'; if (j == 6) html += '</div>'; } this.element.innerHTML = html; }, toggle: function() { this.element.classList.toggle('vert'); }, }; var today = new Date(), thisYear = today.getFullYear(), thisMonth = today.getMonth(); calendar.days = ['Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Сб', 'Вс']; calendar.element = document.querySelector('.month'); calendar.element.addEventListener('click', function() { calendar.toggle(); }); calendar.update(thisYear, thisMonth); calendar.render(); </script> </body> </html> |
Блондинка,
можно так ... <!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title>Calendar</title> </head> <body> <style> .day { border: 1px solid #ccc; width: 30px; line-height: 30px; text-align: center; margin: 1px; background-color: #B0C4DE; } .month { display: flex; flex-wrap:wrap; width: 238px; height: 238px; justify-content: space-around; margin: 30px auto; } .month.vert{ flex-direction: column; } .day:nth-child(7n + 6), .day:nth-child(7n + 7){ background-color: #FF85C6; } .day:nth-child(-n + 7) { color: #FFFFFF; } </style> <div class="month"></div> <script> var calendar = { update: function(year, month) { var stepDay = new Date(year, month, 1); stepDay.setDate(stepDay.getDate() - ((stepDay.getDay()||7) - 1)); var lastDay = new Date(stepDay); lastDay.setDate(lastDay.getDate() + 41); while (stepDay <= lastDay) { this.days.push(stepDay.getDate()); stepDay.setHours(24); } }, render: function() { var html = ''; for (var i = 0; i < this.days.length; i++) { html += '<div class="day">' + this.days[i] + '</div>'; } this.element.innerHTML = html; }, toggle: function() { this.element.classList.toggle('vert'); }, }; var today = new Date(), thisYear = today.getFullYear(), thisMonth = today.getMonth(); calendar.days = ['Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Сб', 'Вс']; calendar.element = document.querySelector('.month'); calendar.element.addEventListener('click', function() { calendar.toggle(); }); calendar.update(thisYear, thisMonth); calendar.render(); </script> </body> </html> |
рони,
как то не очень с этими строчками var lastDay = new Date(stepDay); lastDay.setDate(lastDay.getDate() + 41); слишком много дней следующего месяца показано |
Цитата:
|
Часовой пояс GMT +3, время: 17:03. |