Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 30.05.2021, 20:44
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

Блондинка,
мысли вслух: а зачем нужна была таблица?
Ответить с цитированием
  #12 (permalink)  
Старый 30.05.2021, 20:57
Аватар для Блондинка
Профессор
Отправить личное сообщение для Блондинка Посмотреть профиль Найти все сообщения от Блондинка
 
Регистрация: 24.02.2019
Сообщений: 806

Сообщение от рони Посмотреть сообщение
Блондинка,
мысли вслух: а зачем нужна была таблица?
ну типа чтобы задать ширину высоту таблице, задать размер ячейкам растояние между ячейками,, одним словом чтобы дивы не плыли при флексбоксе...
Ответить с цитированием
  #13 (permalink)  
Старый 30.05.2021, 21:05
Аватар для Блондинка
Профессор
Отправить личное сообщение для Блондинка Посмотреть профиль Найти все сообщения от Блондинка
 
Регистрация: 24.02.2019
Сообщений: 806

<!DOCTYPE html>
<html>
        <head>
                <meta charset="UTF-8" />
                <title>calendar-rotate</title>
        <style type="text/css">
            #calendar_rotate {
                border: 1px solid hsl(0,0%,66%);
                padding: 5px;
                display: inline-block;
                width: 373px;
            }
            #navigation_panel {
                border: 1px solid hsl(0,0%,66%);
                padding: 5px 10px;
                margin: 0 0 5px 0;
                display: inline-block;
                white-space: nowrap;
            }
            #background_month {
            background-color: hsl(210,100%,85%);
            display: inline-block; }
            #month_select {
            background-color: transparent;
            color: hsl(210,100%,45%);
            font: 14px serif;
            border: 1px solid hsl(210,100%,45%); }
            table.month {
                border: 1px solid hsl(0,0%,66%);
                display flex;
                flex-flow column wrap;
                justify-content space-between;
                width: 367px;
                height: 367px;
                padding: 1px;
                table-layout: fixed; 
                width: 100%;
                border-spacing: 2px;
            }
            table.vert {
                border: 1px solid #999;
                width: 367px;
                height: 367px;
                display flex;
                justify-content space-between;
                table-layout: fixed; 
                width: 100%;
                border-spacing: 2px;
            }
            .month,
            .month.vert .week,
            td.day {
                display: table-cell;
            }
            .month.vert
            td.day {
               display: table-row;
               border: 1px solid hsl(0,0%,66%);
            
            }
            .month.vert td.day {
                display: table-row;
                border: 1px solid hsl(0,0%,66%);
            }
            td.day {
                border: 1px solid hsl(0,0%,66%);
                text-align: center;
                padding: 3.5px;
                background-color: hsl(210,100%,90%);
                color: hsl(210,100%,50%);
            }
            .day:nth-child(7n + 6), .day:nth-child(7n + 7) {
                background-color: hsl(348,100%,90%);
                color: hsl(348,100%,50%);
            }
            select {
                width: 109px;
                height: 29.5px;
            }
            input {
                border: 1px solid hsl(0,0%,66%);
                width: 54px;
                height: 25.5px;display: inline-block;
                text-align: center;
            }
            #month_minus, #year_minus {
            width: 28px;
            text-align: center;
            border-radius: 12px 0 0 12px / 10px 0 0 10px;
            margin: 0 -6px 0 0;
            position: relative; top: 1.5px; }
            #month_plus, #year_plus {
            width: 28px;
            text-align: center;
            border-radius: 0 12px 12px 0 / 0 10px 10px 0;
            margin: 0 0 0 -6px;
            position: relative; top: 1.5px; }
            #month_minus, #month_plus, #year_minus, #year_plus, #year_input {
            background-color: hsl(210,100%,85%);
            color: hsl(210,100%,45%);
            font: 14px serif;
            border: 1px solid hsl(210,100%,45%);}
        </style>
        </head>
        <body>
                <div id="calendar_rotate">
                <div id="navigation_panel">
                <button id="month_minus">◀</button>
                <span id="background_month"><select id="month_select"></select></span>
                <button id="month_plus">▶</button>
                <button id="year_minus">◀</button>
                <input id="year_input" type="number" size="4" value=""/>
                <button id="year_plus">▶</button>
                <button id="month_rotate">➙</button>
                </div>
                <table class="month vert"></table>
                <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 += '<tr class="week">';
                                html += '<td class="day">' + this.days[i] + '</td>';
                                if (j == 6) html += '</td>';
                            }
                            this.element.innerHTML = html;
                        },
                        toggle: function() {
                            this.element.classList.toggle('vert');
                        },
                    };
                    var today = new Date(),
                        thisYear = today.getFullYear(),
                        thisMonth = today.getMonth();
                    calendar.days = ['Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Сб', 'Вс'];
                    selector = document.getElementById('month_select');
                    month_list = ['Январь', 'Февраль', 'Март', 'Апрель', ' Май', 'Июнь', 'Июль', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь'];
                    for (let i = 0; i < month_list.length; i++){
                        selector.options[i] = new Option(month_list[i], i);
                    }
                    selector.selectedIndex = thisMonth;
                    selector.addEventListener('', load);
                    document.getElementById('year_input').addEventListener('input', load);
                    calendar.element = document.querySelector('.month');
                    document.getElementById('month_rotate').addEventListener('click', function() {
                        calendar.toggle();
                    });
                    function load(){
                            let year = document.getElementById('year_input').value;
                            let month = selector.selectedIndex;
                            calendar.update(year, month);
                            calendar.render();
                    }
                    document.addEventListener("DOMContentLoaded", ()=>{
                        document.getElementById('year_input').value = thisYear;
                        load();
                    });


                </script>
            </div>
        </body>
</html>


добавила расстояние между ячейками, ширину ячеек

table-layout: fixed; 
                width: 100%;
                border-spacing: 2px;
Ответить с цитированием
  #14 (permalink)  
Старый 30.05.2021, 21:11
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

Сообщение от Блондинка
одним словом чтобы дивы не плыли при флексбоксе...
Ответить с цитированием
  #15 (permalink)  
Старый 30.05.2021, 21:12
Аватар для Блондинка
Профессор
Отправить личное сообщение для Блондинка Посмотреть профиль Найти все сообщения от Блондинка
 
Регистрация: 24.02.2019
Сообщений: 806

Сообщение от рони Посмотреть сообщение
Блондинка,
мысли вслух: а зачем нужна была таблица?
проще говоря переложить задачу расчёта размеров ячеек на браузер, а не трахаться с флексами гридами.....
Ответить с цитированием
  #16 (permalink)  
Старый 30.05.2021, 21:22
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,228

Сообщение от Блондинка
но моих познаний в js не достаточно
...
а как в скрипте из первого поста вместо дивов сделать таблицы?
...
вопрос по css, как и вертикальную и горизонтальную таблицу растянуть на всю ширину и высоту?
Вижу два варианта продолжения...
1. Начать таки читать книжки по HTML, CSS и JavaScript
2. Бросить это дело
Ответить с цитированием
  #17 (permalink)  
Старый 30.05.2021, 21:24
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,228

Сообщение от Блондинка
трахаться с флексами гридами


Так ты и с таблицами не очень... В смысле секса.
Ответить с цитированием
  #18 (permalink)  
Старый 30.05.2021, 21:38
Аватар для Блондинка
Профессор
Отправить личное сообщение для Блондинка Посмотреть профиль Найти все сообщения от Блондинка
 
Регистрация: 24.02.2019
Сообщений: 806

Сообщение от рони Посмотреть сообщение
твой старый пример с флексом вставила в блокнот, при гор расположении всё нормально, при верт хрен пойми что получилось, по десять дивов в ряд, дни недели посреди строки...
Ответить с цитированием
  #19 (permalink)  
Старый 30.05.2021, 21:41
Аватар для Блондинка
Профессор
Отправить личное сообщение для Блондинка Посмотреть профиль Найти все сообщения от Блондинка
 
Регистрация: 24.02.2019
Сообщений: 806

Сообщение от ksa

Так ты и с таблицами не очень... В смысле секса
ну насчёт секаса, сначала фотку "его" в личку, а потом в личке и побеседуем о секасе...
Ответить с цитированием
  #20 (permalink)  
Старый 30.05.2021, 21:43
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,228

Блондинка, я женатый...
И не девачка чтобы чего-то фоткать и выкладывать.

Да и с таблицами у меня нормально. Как, в прочем и с дивами...
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как с помощью javascript взять данные из одного файла html и закинуть в другой? rusik Общие вопросы Javascript 10 08.08.2016 12:11
Почему скрипт не работает с данными, которые вернул другой скрипт? Rooner jQuery 3 20.09.2012 14:56
скрипт для двух html запросов sergsao Общие вопросы Javascript 3 29.11.2011 13:50
Типографика и HTML код Manjuriano (X)HTML/CSS 3 23.11.2011 12:22
А как зделать скрипт, чтобы например скрипт 1 заменялся скриптом 2? yura371 Общие вопросы Javascript 3 06.01.2009 22:40