CSS3 настолько мощная штука, что некоторые неправильно называют такие вещи как animate.css библиотеками, а я взял и повторил это.
|
Ну если таким образом трактовать, то и табурет вполне можно называть столом. :) Это как с чей-то легкой руки назвали обычный слой ранжируемый поверх всех с затенением остального и прочей хренью модальным окном, что к окну, а тем более модальному диалогу, не имеет вообще никакого отношения. И бывают и путаницы из-за такой вольности, когда "а" и "в" не понимают друг друга во время диалога. В JS есть три модальных диалога - alert, confirm и promt, плюс в IE существуют еще два - showModalDialog и showModelessDialog, все остальное чушь полнейшая, как бы их кто-то не называл, хоть супер модальные, от этого они ими не станут. Более близкое по смыслу к библиотеке, это набор js-функций и т.п. подключаемых, а css, это правила стилей, равно как, например, в подключаемом json описание опций, конфигураций и пр.
В скриптовых языках к библиотекам "прижился" термин модули, а в РНР их называют расширениями, хотя это чистой воды библотеки написанные на С, Delphi и прочих. Для Win платформы они имеют расширения .dll, для Unix .so. Те что прописаны в php.ini загружаются в процессе сборки, но можно вызвать и динамически функцией dl(). |
Эти штатные модальные окна настолько убогие, что приходится писать свои "ранжируемые поверх всех с затенением остального". Поэтому и стали их так называть. Я бы назвал такой слой аля-модальное окно ))
|
Цитата:
|
Цитата:
The user cannot switch to the opener window until the modal dialog is closed. Вот поэтому не тянут. |
Цитата:
|
Цитата:
Цитата:
Цитата:
Так что когда вы откроете localhost:8080 в Google Chrome, и вы будете использовать DevTools для изменения CSS сайта, то при включенных рабочих пространствах, изменения CSS, которые вы вносите в DevTools, сохраняются в исходном коде вашего opencart проекта. (localhost:8080 — это как пример, на самом деле может быть любой адрес) Самый простой способ добавить папку проекта в рабочее пространство — открыть в Chrome DevTools панель Sources и перетащить туда папку. (https://youtu.be/DJfdjdlSJho?t=56) Цитата:
Цитата:
Цитата:
Если вы хотите, чтобы cart был экземпляром класса Cart, то вы можете сделать так... function Cart() { throw new TypeError("Illegal constructor"); } Object.defineProperty(Cart, Symbol.hasInstance, { value: instance => cart === instance }); Cart.prototype = cart; Cart.prototype.constructor = Cart; /* долгожданное наследование */ class SuperCart extends Cart { myNewMethod() {} } /* теперь вместо cart используйте myCart */ const myCart = Object.create(SuperCart.prototype); // > cart instanceof Cart // < true // > myCart instanceof Cart // < true // > myCart.add // < ƒ (product_id, quantity)Но действительно ли вам нужен класс в данном случае? Вы исходили из ложной предпосылки, что cart — класс, а на деле это — объект типа Object. Цитата:
Object.assign(cart, { myNewMethod: function() {} }); Цитата:
Цитата:
Цитата:
Цитата:
На самом деле уже с 2007 года существует «CSS Snapshot» (т.е. «снимок» состояния CSS) — периодически обновляемый документ (https://w3.org/TR/css), один из разделов которого называется — «Официальное определение CSS». Цитата:
Цитата:
«Модальное» и «блокирующее выполнение скриптов» — это не одно и тоже. «Модальное» означает поверх всего остального, предотвращение взаимодействия с остальным. Таким образом, например, диалоги jQuery UI являются модальными, но они не блокируют выполнение скриптов. Почему window.showModalDialog был объявлен устаревшим? В общем, идея реализации диалогового окна в браузере была действительно хорошей идеей, но window.showModalDialog было плохой реализацией, изобилующей проблемами. Модальное диалоговое окно, созданное при помощи showModalDialog, содержит полноценный документ HTML, а не фрагмент кода. На самом деле это просто два совершенно разных окна, взаимодействующих друг с другом. Но в основном это просто добавляет ненужную сложность, усложняет реализацию браузера и вносит ряд ошибок. Хотя важно, чтобы модальные диалоги не позволяли пользователю взаимодействовать с исходным окном, нет никаких причин, по которым ему нельзя разрешать взаимодействовать с другими вкладками или встроенными элементами управления браузера (назад/вперёд, избранное, адресная строка и пр.) Что использовать взамен? Спецификация HTML 5.3 представляет элемент <dialog>, который используется для отображения диалогов, включая модальные. Элемент <dialog> представляет часть приложения, с которой пользователь может взаимодействовать, чтобы выполнить определённую задачу — диалоговое окно. На данный момент диалоговые окна полностью поддерживаются в Chrome и Opera, в Firefox — частичная поддержка под флагом, а остальные — нет (решается при помощи полифила, но что тебе стоит потребовать у разработчиков твоего любимого браузера все доделать?) <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <!-- polyfill --> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/dialog-polyfill/0.5.0/dialog-polyfill.min.css"> <script src="https://cdnjs.cloudflare.com/ajax/libs/dialog-polyfill/0.5.0/dialog-polyfill.min.js"></script> <script> if("showModal" in document.createElement('dialog') === false) new MutationObserver(function(mutationsList, observer) { mutationsList.forEach(function(mutation) { mutation.addedNodes.forEach(function(node) { if(node.tagName === "DIALOG" && "showModal" in dialog === false) dialogPolyfill.registerDialog(node); }); }); }).observe(document.documentElement, { childList: true, subtree: true }); </script> <!-- end of polyfill --> </head> <body> <button id="button">open modal dialog</button> <dialog id="dialog"> <form method="dialog"> <h1>Hi!</h1> <p>I am a modal dialog.</p> <button>Close me</button> </form> </dialog> <script> button.addEventListener("click", event => { dialog.showModal(); }); </script> </body> </html> |
Malleys, скучно? :)
Цитата:
Цитата:
За модальное окно, спасибо конечно, но оно мне ... ей богу, без обиды, мне даже прочесть это некогда, тут без них проблем своих хватает. :) |
Malleys, я потом, как освобожусь, почитаю чего там вместо модального. ;)
|
Почему showModalDialog плох как и другое от мелксофта, это известная притча во языцех, только ленивый об этом еще не сказал. :)
Цитата:
А вот <dialog>, это интересно. |
Часовой пояс GMT +3, время: 01:12. |