Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation since 07/25/2020 in all areas

  1. Никакой здесь недоработки нет. Его оставили, а если точнее, вернули из состояния deprecated (source) преднамеренно (source). Как и писал, он теперь не за стили отвечает. (Кстати, как и элементы <i>, <b> и тому подобные.) Спецификация вот что говорит: В качестве примера (source😞 Mockup of an example legal document with a highlighted reference to a non-decimal list item Пока сам пытался разобраться для себя, наткнулся на обсуждение конкретно этого вопроса. Там есть мнения и за то, чтобы избавиться от этого атрибута нафиг (в частности, почему бы не aria для этого использовать, или почему не расширили тогда список возможных значений, как в случае со стилями). Ну и почему его вновь вернули. (Понятное дело, с аргументами, а не как тут у некоторых 🙃.)
    2 points
  2. Очевидно, что я уверен на 100%, что вам не зайдут никакие мои возражения. Укажу только на факт того, что вы признали, что все же у каких-то современных людей и вши бывают. И добавлю что вши частенько встречаются у современных людей живущих даже в современных мегаполисах От того, что большинство болячек от несоблюдения гигиенических норм - это правда. Почему гигиенические нормы могут не соблюдать - это другой вопрос. Но не все можно предупредить мылом и водой. Я тоже не люблю лекарства в любом виде, но иногда это бывает нужно http://www.mulamb.ru/personal/natsiKalendar2018.jpg
    2 points
  3. Судя по указанному пути папка с вашим шрифтом лежит в одной папке с файлом css т.е. структура выглядит примерно так: . | index.html | style.css | \—fonts Lato-Italic.ttf так ли это на самом деле?
    1 point
  4. Потому, что ширина сайдбара в 330 пикселей это ширина вместе с margin-ами слева и справа по 10 пикселей. Ну а так как margin это внешний отступ и он не закрашивается фоном сайдбара, отсюда и расстояние
    1 point
  5. Атрибут name проверяйте. Значения должны совпадать.
    1 point
  6. Ну, и... Говорю же, из-за опечатки: https://jsfiddle.net/vzyp2Lcx/
    1 point
  7. Например, так: .voting form { display: flex; flex-direction: column; align-items: start; }
    1 point
  8. можно попробовать такой вариант, но он может не подойти для мобилок, но если подзаморочиться, то можно и для них сделать https://jsfiddle.net/6keucgnt/ самый простой способ при клике на ссылку через js имитировать клик по крестику а .mask-content можно сделать label
    1 point
  9. Или так попробовать:
    1 point
  10. Всё верно, для класса ".splid" отсутствуют стили. Попробуйте добавить дополнительный класс на каждый слайдер и обращаться по ним. <div class="splide slider-1"> ... </div> <div class="splide slider-2"> ... </div> <script> new Splid('.slider-1', { type: 'loop', perPage: 1, speed: 2000, autoplay: true, interval: '3000', arrows: true, }).mount(); new Splid('.slider-2', { type: 'loop', perPage: 1, speed: 1000, autoplay: false, interval: '2000', arrows: false, }).mount(); </script>
    1 point
  11. window.location.pathname.substr(3)
    1 point
  12. <a id="demo"></a> <script> document.getElementById("demo").href= "http://site.ru/ru/" + window.location.pathname; </script>
    1 point
  13. суть вкладок такая же может быть, код скрипта нужно править, сейчас все вкладки у вас будут подгружать один и тот же iframe <span class="address-link" data-target-id="target-div" data-target="http://site.ru/page1/">вкладка1</span> <span class="address-link" data-target-id="target-div" data-target="http://site.ru/page2/">вкладка2</span> <div id="target-div"></div> $('.address-link').click(function(){ var targetId = $(this).data('target-id'); var target = $(this).data('target'); $('#' + targetId).html('<iframe src="'+target +'"></iframe>'); }); Не понятно что за скрипты вы планируете грузить, по сути ни чего не мешает грузить скрипты, и даже iframe через скрипты
    1 point
  14. Если я правильно понял, то имеется ввиду срабатывания события при нажатии на кнопку "Enter" на клавиатуру. В результате чего должна выполнятся ф-я "checkGuess()". Если так, то вот пример:
    1 point
  15. Делаете hover на блок, потом добираетесь до ссылки. .block:hover a {стили}
    1 point
  16. Попробуйте использовать position:absolute; для выпадающего меню
    1 point
  17. Путь к файлу указан неверно
    1 point
  18. Здравствуйте. Попробуйте начать с этого примера:
    1 point
  19. Не будет и не должно, потому как первым в списке дочерних элементов у родителя "team-descr" — это H3. <div class="team-descr"> <h3>Bradley Hunter</h3> <!-- это :first-child --> <p class="name">Based in Chicago. I love playing tennis and loud music</p> <p class="name">Based in Chicago. I love playing tennis and loud music</p> <p class="name">Based in Chicago. I love playing tennis and loud music</p> <p class="name">Based in Chicago. I love playing tennis and loud music</p> <p class="name">Based in Chicago. I love playing tennis and loud music</p> <p class="name">Based in Chicago. I love playing tennis and loud music</p> <p class="name">Based in Chicago. I love playing tennis and loud music</p> <p class="name">Based in Chicago. I love playing tennis and loud music</p> <p class="name">Based in Chicago. I love playing tennis and loud music</p> <p class="name">Based in Chicago. I love playing tennis and loud music</p> <!-- это :last-child --> </div> Под :first-child/:last-child подразумевается не вхождение выбранного Вами селектора, а первая нода, тег, которые одет по списку. В ваше случае псевдо-элементы будут работать только в том случае, если в контейнере первым и последним будут ".name" <div class="team-descr"> <p class="name">Based in Chicago. I love playing tennis and loud music</p> <!-- :first-cild --> <p class="name">Based in Chicago. I love playing tennis and loud music</p> <p class="name">Based in Chicago. I love playing tennis and loud music</p> <!-- :last-child --> </div>
    1 point
  20. Обновление хорошее, но вот не могу теперь найти кнопочку "Сделать форум прочитанным" без нее приходиться протыкивать даже координаты пользователей и темы в которые даже не хотелось заходить.
    1 point
  21. флексы методология не имеет отношения к реализации зависит от конкретного ТЗ
    1 point
  22. Потому что ширина блока шире чем ожидается
    1 point
  23. Если высота .tob-bar фиксированная, то можете просто использовать calc, например: .banner { height: calc(100% - 75px); } Если плавающая, то тут куча разных способов. Посмотрите holy grail layout.
    1 point
  24. Я вам написал почему. Браузер с недавнего времени блокирует все подключения к внешним ресурсам, если не они не перечислены в специальных заголовках сервера. Это сделано для защиты от XSS. Значит на production сервере не подключает ресурсы к CDN, а делайте себе по относительной ссылке. Разбираться с этим придется в любом случае(там много нюансов). Код лучше продемонстрировать вот так(скачать быстрее, чем ждать пока фидлы загрузятся): example.zip
    1 point
  25. > Стрелочная функция здесь анонимная с параметром j в который попадает значение i за каждой итерацией? Это так. > Эта строка нужна чисто чтобы заполнить пустой массив, создав клон массива? Да. Void очищает память после выполнения. SetTimeout и SetInterval в браузере сделаны очень плохо(есть утечки памяти). Для этого добавлен void. Вот модель этих futures в браузере на request animation frame. RR = { // Modern TimeOut and Interval interval: ( c, d = 1000, o = null ) => { if( c ) { //let hash = RR.md5( c.toString() ); let dn = Date.now, start = dn(), stop; //console.log('Interval '+ hash +' started'); let cnt = 0; let interval = async () => { let n = dn() - start < d; if( !n && o ) { stop = 1; //console.log('Timeout '+ hash +' stoped'); } n || ( start += d, c.call( /*hash*/ ) ); stop || await void self.requestAnimationFrame( interval ); cnt++; }; void self.requestAnimationFrame( interval ); return { stop: () => { stop = 1; //o ? console.log('Timeout '+ hash +' stoped by task') : console.log('Interval '+ hash +' stoped by task'); } }; } else { console.log('Interval: Callback function not defined'); } }, }; Даже в этом коде loop не завершается. Таймер продолжает тикать до бесконечности. console.log(`fib[${i}] = ${fib[i]}`) Я просто не понял зачем вы это делаете?
    1 point
  26. Может он не верстает, может вы не верстаете, но это не значит что никто не верстает для инвалидов. Или они не люди? Вас уже носом в спеку ткнули, а вы продолжаете упорствовать.
    1 point
  27. Я думаю, последнее, чем руководствуется рабочая группа, так это интересами поисковиков. )) Если по существу, я в SEO вообще ничего не понимаю, не могу сказать. Надо понимать, что это ведь не руководство к действию. Если нумерация носит исключительно презентационный характер, тут самое место для list-style-type. Если брать пример с правовым документом (тот что выше привел), то здесь как раз подходящее применение для атрибута. Он для этого и предназначен. А вы можете хоть гифками все эти цифры или буквы вставлять. Другой вопрос, что это не семантично, но браузеру-то все-равно (если что, я не призываю так делать :-).
    1 point
  28. Ни в каких. Обычно CSS в отдельном файле кэшируется. Например, дополнительный атрибут увеличивает размер передаваемых данных с сервера на клиент, а также усложняет все остальное. Представьте себе что в статье 20 списков и для каждого нужно сгенерировать тип. > почему его оставили валидным Очевидно, что обычная недоработка.
    1 point
  29. В примере с замыканием на самом деле все правильно работает, ошибка тут: // console.log(`fib[${i}] = ${fib[i]}`) console.log(`fib[${j}] = ${fib[j]}`) У var область видимости функции или глобальная, у let и const – область видимости окружающего блока. То есть пример можно переписать так, что будет равнозначно: const fib = [1, 2, 3, 5, 8, 13]; var i = 0; for(; i < fib.length; i++) { setTimeout(function() { console.log(`fib[${i}] = ${fib[i]}`) }, 1500) } Видно, что на каждой итерации увеличивается значение одной и той же внешней переменной. Но когда счетчик i++ доходит до 6 и условие (i < 6) не выполняется, цикл завершает свою работу, однако значение переменной i теперь уже 6, а не 5. Функция обратного вызова, переданная в setTimeout, ставится в очередь на выполнение. И эта очередь подойдет, только когда завершится выполнение основного потока. А к этому моменту i == 6. Дальше отложенные коллбэки начинают вызываться один за другим, и они берут это глобальное значение. Ну а элемента с индексом 6 в массиве нет, вот и undefined. С замыканием или let или const, понятно, что такой проблемы не будет.
    1 point
  30. https://jsfiddle.net/L9mzcquy/
    1 point
  31. А давайте все возьмем MS Edge на базе Chromium и начнем делать нормальные PWA, которые устанавливаются в систему. FF сознательно сломал всю свою экосистему переписав CSS на Rust. Это говно не только глючить начало, но и тормозить. У нас есть общепринятый Webkit, который работает на Chromium и Safari. Что еще нужно? Не смотрите вообще на FireFox. Те кто гикает на Linux - нормальными не считаются. Linux - серверам, Windows - десктопам. Люди покупают чаще ПК или ноутбук с предустановленной Windows, а там стоит нормальный себе Edge, который уже не нуждается ни в каких извращениях. Зачем понимать Java и изучать отдельные извращенства на React, Vue или Angular, если можно сделать то же Progressive Web Application просто на том же jQuery или чистом JS? Выбор очевиден. Не имеет смысла даже рассказывать что все разработчики всех браузеров работают по одной программе. Я вот забил бы на вашем месте выяснять почему так с FireFox - я бы просто по башке Mozilla настучал и выгнал их исправлять ошибки. Никто ведь про их браузер из нормальных людей ни чего даже не знает. Его никто не устанавливает так как первым делом русские лезут на Яндекс или Mail и скачивают тот же хромиум в стрингах. А еще раньше они берут в руки свой Android, а там просто Chrome на любом устройстве. Не воскрешайте труп пожалуйста.
    1 point
  32. Лучше чем Sublime Text 3 нету. Если его купить - программировать и верстать начинаешь ну уж очень быстро. Достаточно накидать каркас сайта или приложения и дальше все пишется по три символа на tab. Великолепно работает с JS объектами и офигенно быстро запускается. Ни какие IDE в сравнение не идут из-за тугости и убожества подсветки. Отдельный кайф доставляет правая прокрутка, которая позволяет очень быстро перемещаться по файлу. Я использую Sublime Text уже порядка 9 лет.
    1 point
  33. Ну старые версии HTML вообще содержали много презентационных элементов, которые со временем заменили соответствующими CSS свойствами (типа <i>, <b> и все такое). Они были исключительно про представление, не про значение. Здесь явно та же история, только речь про атрибут. Однако с упорядоченным списком у атрибута type помимо представления имеется и семантика. Предположу, что в этом причина, почему для <ul> он obsolete, а для <ol> – нет.
    1 point
  34. Надо вас спросить, зачем вы осуждаете) Напишите. Можете, думаю, ещё спецификации почитать. Там обычно пишут, зачем, для чего и как. Пометки deprecated вроде тоже бывают. А в целом, не забывайте про обратную совместимость. Не все сайты современные. Сайты с доктайпом html4 тоже существуют и должны работать. Ещё существует вёрстка почтовых шаблонов, где как раз "старый" html. И особо не развернёшься. Там и тег <center> вполне можно заиспользовать. В общем, использовать атрибуты или нет, уже вам решать. Считаете устаревшими, не используйте.
    1 point
  35. Почему собственно нет? Зачем стили, когда можно прямо в html задать формат разным спискам?
    1 point
  36. Отсчет идет с указанного элемента, т.е. в вашем случае со второго с конца. Причем указанный индекс включается в поиск. Например если бы вы искали в arrNames строку "Антон" начиная с минус второго элемента то вам бы вернулся индекс этого элемента (в вашем случае 7) так как он подходит под условие. Ну или применительно к scores использование и scores.indexOf(20, -2) и scores.lastIndexOf(20, -2) вернет вам цифру 20 которая встречается на 10 индексе Точно так же как если бы индекс был бы положительным. indexOf ищет совпадение слева направо начиная с указанного элемента до первого совпадения или до конца массива, lastIndexOf ищет совпадение справа налево начиная с указанного элемента до первого совпадения или до начала массива.
    1 point
  37. для них предусмотрены другие способы, например получение по классу, атрибуту и т.д. Если у элемента вообще ничего нет, до него можно добраться через родителей или соседей.
    1 point
  38. В данном случае отменяет действие браузера по умолчанию. По умолчанию, при нажатии кнопки submit браузер отправляет форму, return false отменяет это действие, из-за чего форма не отправляется и открытая страница остается прежней. Если по простому, то да. Естественно он подвиснет, ведь внешний цикл в таком случае выполняется 50000 раз, а внутренний аж (барабанная дробь) Оба способа прекрасно работают и делают именно то, что вы и написали. Просто вы не успеваете увидеть всю работу кода, так как он слишком быстро меняет содержимое <p id="result"></p> Вы при каждом проходе цикла заменяете содержимое result на последующий элемент массива. В чем легко убедиться расставив брейкпоинты в инструментах и прогнав цикл по шагам. Если хотите что-бы в строку выводился каждый элемент массива, то сделайте так: result.innerHTML += arr[i]; или так: document.getElementById("result").innerHTML += arr[i]; Не понял вопроса про форму и просто <p> Способов вывода информации существует несколько, и все они правильные 🙂 Можно с помощью innerHTML просто писать текст и теги (и причем теги будут работать как будто они написаны в html), можно использовать textContent который выведет теги просто как текст, а можно создавать создавать элементы с помощью createElement, цеплять их к другим элементам и потом выводить на экран целыми блоками 🙂 Все зависит от ситуации.
    1 point
  39. Это потому, что инпуты у вас находятся в теге form, а кнопка имеет тип submit. Это означает что при нажатии на такую кнопку форма пытается отправится на сервер и браузер заменяет страницу на ту, адрес которой указан в атрибуте action в теге form. Ну а раз там ничего не указано, то браузер просто перезагружает вашу страницу. Тут я в логике поведения браузера могу ошибаться, так как не вдавался в подробности работы этого механизма, но в любом случае при отправке формы вы видите перед собой уже не ту страницу на которой нажимали кнопку. Чтобы этого избежать напишите вот так: <input type="submit" onClick="fanta();return false" value="Жми"> или поменяйте тип инпута с submit на button потому что такой код вызывает ошибку. getElementById это метод объекта Document , а вы пытаетесь использовать его с переменной у которого его нет. поэтому ничего не происходит. И даже если бы такой код не вызывал ошибку, то, в любом случае, вы бы не получили нужный результат, так как он означал бы следующее - в элементе с id result получи элемент с id result и замени ему innerHTML. p.s. И сразу ответ на возможный вопрос. Что-бы при каждом новом вводе числа и нажатии на кнопку данные обновлялись, а не добавлялись, в начале функции (до цикла) вставьте вот это: result.innerHTML = "";
    1 point
  40. Чтобы пошагово видеть как проходится цикл, вам нужно выбрать его и расставить брейкпоинты в нем. Как то так: после чего нажимать F9 в хроме или F10 в лисе
    1 point
  41. При первой итерации i=2, а не 3. Так как i++ срабатывает после того как отработало тело цикла . Соответственно при i=2 условие j < i не срабатывает так как 2 не может быть меньше 2, внутренний цикл не запускается, срабатывает document.write(i+"<br>"); и в документ выводится 2 После этого срабатывает i++ и i становится равной 3. Начинается вторая итерация. Во внутреннем цикле проверяется j < i , условие срабатывает так как 2 меньше трех и мы попадаем в тело внутреннего цикла где проверяется условие i%j == 0 Здесь мы получаем false, возвращаемся в for( let j = 2; j < i; j++) где срабатывает j++ , j становится равным 3 (i как мы помним тоже равно 3), проверяется условие j < i и заканчивается работа внутреннего цикла ведь 3 не меньше 3, срабатывает document.write(i+"<br>"); и в документ выводится 3. Срабатывает i++ и i становиться равным 4, запускается внутренний цикл где проверяется j<i , условие срабатывает так как 2 меньше 4 и мы попадаем в if где условие i%j == 0 возвращает true и срабатывает continue. Опять i++, i становиться равным 5, срабатывает условие во внутреннем for, 2 < 5, попадаем в if, 5 на 2 без остатка не делиться, continue не срабатывает, попадаем во внутренний for, j++ и равно 3, 3 < 5, выполняем тело цикла, условие в if возвращает false, (5 на 3 без остатка не делится), опять возвращаемся во внутренний for, j++ и равно 4, 4 < 5, идем в if который возвращает false. Опять внутренний for, j++ и равно 5, условие во внутреннем for не срабатывает (5 не меньше 5), выходим их внутреннего цикла, выполняется document.write(i+"<br>") и в документ выводится i которое равно 5. Ну и так далее. Про работу разных циклов можете почитать вот здесь: https://learn.javascript.ru/while-for а также поставить брейкпоинты в инспекторе и посмотреть пошагово как работает код. И да, не используйте document.write так как при полностью загруженном документе он переписывает документ полностью и ваш код отработает только один раз. Т.е. ваша запущенная функция отработает как положено, выведет все что положено, но после окончания работы вы не сможете запустить ее еще раз, так как у вас не будет ни самой функции, ни поля для ввода, ни кнопки.
    1 point
  42. Как вариант, замените <input type="button" value="Жми" onClick="fanta()"> на <input type="submit" value="Жми" onClick="fanta(); return false;"> а еще не в функцию добавьте либо else либо return после выполнения условая.
    1 point
  43. Напротив — это как раз и помогает решить данную проблему:
    1 point
  44. Если выше указанный вариант не понравится, рекомендую рассмотреть следующий вариант: https://airy.host/hosting/free Хостинг-проект моего знакомого. Знаю, что человек ранее работал в дата-центрах, а сейчас работает в компании reg.ru К проекту он относится очень серьёзно, любую проблему старается решать в кратчайшие сроки. Его цель предоставлять услуги хостинга по низким ценам. Я сам купил у него три домена и оплатил виртуальный сервер на год вперёд. По своему опыту скажу, что проблем не возникало ни разу.
    1 point
  45. Огромная благодарность. Это именно то что я искал!
    1 point
  46. Это всегда делается серверными скриптами, мне кажется php для этого предпочтительней. В двух словах как делать: Нужный вам код, который вы собираетесь копировать на все страницы поместите в файл (например meny.php) который лежит в папке /php/ например, получается что его путь - /php/meny.phpи подключайте его в том месте где он вам нужен в вашей страничке строкой. <?php require($_SERVER[DOCUMENT_ROOT].'/php/meny.php');?> Но есть один нюансик, php интерпритатор обрабатывает только те файлы которые считает php скриптом, обычно это файлы с окончанием .php если не хотите переименовывать ваши странички можно сказать серверу что ваши файлы .html или .htm являются php скриптом, для этого нужно в файле .htaccess на сервере дописать AddHandler application/x-httpd-php .php .html .htm или вот так (первая попавшаяся страничка в гугле) http://www.instructing.ru/hitrosti/phpinclude.html
    1 point
This leaderboard is set to Kiev/GMT+03:00
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy