Ответы пользователя по тегу CSS
  • Где взять шаблоны html5 и CSS3 ?

    @bromzh
    Drugs-driven development
    Скелет для вёрстки брать тут. Лучшие рецепты для кроссбраузерных сайтов от отцов. Остальное можно самому за вечер накатать, сохранить у себя в виде некого шаблона и использовать в дальнейшем.
    Ответ написан
    1 комментарий
  • Качество специально уменьшеной картинки — самообман?

    @bromzh
    Drugs-driven development
    Когда ты пишешь width=200px, то ты просто задаёшь стиль для элемента. Естественно, что браузер не загрузит картинку меньшего размера, ведь он ничего не знает, что на "том конце". Он делает запрос, загружает данные. И загрузит он естественно картинку, размером 400х400. Потом браузер применяет стиль, т.е. уменьшает элемент img в соответствии с заданными правилами, заполняя этот элемент твоей картинкой. Таким образом, он грузит оригинал, а потом на лету его изменяет при рендере.
    Когда ты изменяшь размер картинки в графическом редакторе, ты желаешь необратимые изменения с самой картинкой. Естественно, качество её тоже изменится. И браузер будет грузить с сервера изображение уже не 400х400, а 200х200.
    Ответ написан
  • Как проверить работоспособность сайта?

    @bromzh
    Drugs-driven development
    Для тестирования фронтенда есть Selenium. У него также есть привязки ко многим нормальным языкам, так что не обязательно эти тесты на яве писать.
    Ответ написан
    Комментировать
  • На сколько разумно вставлять картинки через тег i?

    @bromzh
    Drugs-driven development
    Можно и заголовки делать с помощью , а картинки вставлять как бэкграунд к . Но зачем? У каждого тэга есть свой смысл и своя область применения. На w3c всё прописано. Иконки через i никем не стандартизированы, даже бутстрап отказался от этого.
    Ответ написан
    2 комментария
  • Как правильно делать Landing Page?

    @bromzh
    Drugs-driven development
    Дизайн делают дизайнеры, вёрстку - верстальщики. Вот дизайнер и должен думать, какие эффекты использовать и что где располагать.
    Ответ написан
    Комментировать
  • У меня есть архив с файлами шрифтов. Как их правильно подключить в style.css? Какие best practices есть?

    @bromzh
    Drugs-driven development
    1) конвертируешь шрифты тут (только надо выбрать "expert" и прописать нужные настройки, типа кирилицы и т.д.)
    2) подключаешь созданный файл
    Ответ написан
    Комментировать
  • Какой двигатель выбрать для Landing Page?

    @bromzh
    Drugs-driven development
    Если тебе нужен только 1 лэндинг, то просто пиши с нуля, подключай разные js-библиотеки (jquery, angular/knockout/etc для отображения данных), jquery-плагины, и т.д.

    Если лэндинги надо делать периодически и их будет много, то выбери сам нужный стек технологий. Если лэндинги не однотипные, то что-то универсальное готовое вряд ли существует.

    Мой стек:
    1) Grunt, bower - для быстрого равёртывания нового проекта и подключения внешних библиотек.
    2) Less - как более удобный инструмент вёрстки
    3) jQuery с плагинами (какие - зависит от проекта), normalize.css, modernizr.
    4) Github Pages - для просмотра страницы по мере разработки

    Собственно, всё сводится к написанию под себя конфига для grunt. У меня он позволяет скачивать зависимости bower'а. Далее, все внешние js и css кидаются во временную папку. Туда же кидаются мои скомпилированные css и js. Далее, если это не production, то каждый файл инжектится отдельно на html-страницу. Если production - всё сжимается до 1-го файла (т.е. на выходе будет 1 js-файл и 1 css-файл) и инжектится только 1 js и 1 css. Все изменения в конфиге bower'a, изменения в css, less и js-файлах отслеживаются. Если они изменились - то grunt автоматом запускает нужные задачи, т.е. при изменении, например, в less-файла, через пару секунд эти изменения будут видны на странице, которая открыта в браузере.
    Ответ написан
    Комментировать
  • Как прибить к нижнему правому углу родителя блок без использования height, position:absolute и скриптов?

    @bromzh
    Drugs-driven development
    Если пофиг на старые браузеры, то flexbox будет самым простым решением.
    Ответ написан
    2 комментария
  • Как сделать старт анимации JavaScript с задержкой выполнения?

    @bromzh
    Drugs-driven development
    .delay()
    Или используй анимации из GreenSock, там есть задержки для анимаций, и есть плагин, который заменяет стандартную jqery-вскую animate.
    Ответ написан
    Комментировать
  • Какая разница между одинарной и двойной кавычки в верстке?

    @bromzh
    Drugs-driven development
    Заказчик может внезапно захотеть xhtml вместо html. А у тебя кавычки у атрибутов одинарные. Реплэйс может не спасти в таком случае. Да и если твой JS будет заточен под применение одинарных кавычек для генерирования элементов, то тоже придётся много переделывать и/или экранировать.
    ИМХО, для атрибутов html лучше двойные, для языков программирования, где одинарные и двойные кавычки абсолютно идентичны, лучше брать одиночные. Тогда будет меньше коллизий и экранирования.
    Ответ написан
  • Как сделать инфо панель как на Хабре?

    @bromzh
    Drugs-driven development
    Для дочерних элементов прописываешь либо display: inline-blockлибо float: left
    Если делаешь вариант с float, то надо ещё делать clearfix, чтобы поток очистить.
    Ответ написан
    Комментировать
  • Как правильно организовать верстку контента под ajax?

    @bromzh
    Drugs-driven development
    Если надо сделать и забыть - то пофиг, и так сойдёт.
    Если это поддерживаться и развиваться будет, то освой Knockout/Angular/etc. Делаешь привязку к данным через AJAX, на клиенте сохраняешь данные в ViewModel (или ему подобное), клики связываешь с выводом попапов.
    Вот пример на Knockout:
    <script type="text/javascript">
        function PopupModel(data) {
            var self = this;
            ko.mapping.fromJS(data, {}, self);
        }
        function ViewModel(data) {
            var self = this;
            var activePopup = ko.observable(null);
            ko.mapping.fromJS(data, {}, self);
            var popUpChooser = function(popupId) {
                $.getJSON('/api/popup/' + popupId, function(data) {
                    // Получаем инфу для одного попапа
                    // JSON:
                    // {
                    //     'id': '1',
                    //     'name': 'foo',
                    //     'email': 'foo@example.com'
                    // }
                    self.activePopup(new PopupModel(data));
                })            
            }
        }
        $(function() {
            $.getJSON('/api/popup/ids/', function(data) { // получаем список Id инфы для попапов
                // JSON такого вида: { popupIds: ['1', '2', '3'] }
                ko.applyBindings(new ViewModel(data));
            });
        });
    </script>
    <div data-bind="foreach: popupsIds">
        <input type="radio" data-bind="attr: {value: $data}"/>
    </div>
    <div class="popup" data-bind="if: activePopUp"> // отображаем, только если есть активный попап
        <div data-bind="text: activePopup().name"></div>
        <div data-bind="text: activePopup().email"></div>
    </div>

    Можно вообще сразу загружать всю инфу про попапы, код немного поменяется, но смысл тот же.
    Ответ написан
  • Практическая часть изучения ЯП и web технологий?

    @bromzh
    Drugs-driven development
    Сперва реши, какая часть тебе больше нравится - фронтенд или бэкенд. Знать придётся всё, но лучше углубиться в одно направление.
    Если выбрал первое - бери готовый сайт, попытайся сверстать так же, без особого подглядывания в исходники. Потом добавляй интерактив на страницу. Потом бери какой-нибудь mvvm-фреймворк на JS и сделай одностраничное приложение. Не забывай учиться, как взаимодействовать с серверной частью. Инструменты: препроцессоры для CSS - Less/SCSS, библиотеки для JS - jQuery, Knockout, Angular, etc.
    Если хочешь заниматься бэкендом на питоне - бери и изучай какой-нибудь фреймворк, для начала подойдёт Django. Сперва делай сайт, типа бложека, новостного или магазина. Потом добавляй всякие плюшки - пагинацию, RSS, затем делай REST API, переделай сайт, чтобы он мог подгружать данные без перезагрузки страниц. После этого изучи другой фреймворк , сделай тоже самое на нём. Потом изучай асинхронные штуки, прикрути к твоему сайту чатик. Инструменты - Django/Flask как обычные веб-фреймворки, Twisted/Tornado/asyncio для асинхронных штук. ZeroMQ (или другие MQ), Celery для общения между приложениями. Неплохо научиться работать с разными видами БД: как SQL, так и NoSQL.

    Но в реальной жизни хрен знает, что тебе пригодится для работы.
    Ответ написан
    Комментировать