Фиксированный (липкий) блок при прокрутке

Небольшой код на JavaScript позволяет сделать на странице фиксированный/липкий(sticky) блок

function getTopOffset(e) { 
    var y = 0;
    do { y += e.offsetTop; } while (e = e.offsetParent);
    return y;
}
var block = document.getElementById('fixblock'); /* fixblock - значение атрибута id блока */
if ( null != block ) {
    var topPos = getTopOffset( block );

    window.onscroll = function() {
  var scrollHeight = Math.max( document.documentElement.scrollHeight, document.documentElement.clientHeight),

      // высота рекламного блока
      blockHeight = 450,

      // высота подвала
      footerHeight =  250, 

      // считаем позицию, до которой блок будет зафиксирован 
      stopPos = scrollHeight - blockHeight - footerHeight; 

  var newcss = (topPos < window.pageYOffset) ? 
      'margin-left: 25px; top: 5px; position: fixed;' : 'position:static;';

  if ( window.pageYOffset > stopPos ) 
      newcss = 'position:static;';

  block.setAttribute( 'style', newcss );
    }
}

 

 

Нормализация CSS

Добиться одинаковости отображения сайтов различными браузерами можно двумя способами:

1. Стереть все стили(которые используются в браузерах по умолчанию) и далее с чистого листа писать новые — так называемый резет;
2. Нормализовать стили — сделать похожим отображение большинства элементов html, сохраняя полезные свойства браузеров и не обнуляя их.

Хороший код нормализации CSS который используют Twitter, GitHub, Guardian, Bootstrap, Pure и др. это Normalize.css

Это хорошая основа для написания собственных стилей..или просто как дополнение для коссбраузерности уже существующих стилей.

Выполнение PHP через Cron

Для выполнения php скрипта по расписанию, можно использовать Cron. Для этого нужно внести изменения в таблице Crontab. В системе на FreeBSD таблицы находятся в var/cron/tabs/

Внесение следующей строчки:

*/1 * * * * /usr/local/bin/php -q /home/user/data/www/mysite.ru/mysctypt.php

делает автоматическое выполнение скрипта mysctypt.php каждую минуту (*/1 ).
/usr/local/bin/php -q — путь до интерпретатора php с параметром -q, чтобы не выводить http-заголовки.

Регулярные выражения. Справка.

Справочные данные для создания регулярных выражений.

^ — Начало строки
$ — Конец строки
. — Любой символ кроме переводов строки (без параметра /…/s)
[ … ] — Любой из перечисленного набора символов. Внутри квадратных скобок не работают другие операторы, но можно пользоваться метасимволами. С помощью дефиса можно указывать наборы символов: от первого до последнего. Например, [a-f] означает любую букву из числа a, b, c, d, e, f.
[^ … ] — Ни один из перечисленного набора символов. Внутри квадратных скобок не работают другие операторы, но можно пользоваться метасимволами. С помощью дефиса можно указывать наборы символов: от первого до последнего. Например, [^0-9] означает любой символы, кроме 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.

( … ) — Сгруппировать символы в один паттерн и запомнить
| — Предыдущий или следующий паттерн (логическое «ИЛИ»)
* — Ноль или больше раз
+ — Один или больше раз
? — 0 или 1 раз предыдущая маска
{n} — Повторять n раз
{n,} — Повторять n или больше раз
{n,m} — Повторять от n до m раз
?#N — Это оператор «просмотра назад». N — число символов для просмотра.
?~N — Отрицание просмотра назад.
?= — Просмотр вперед.
?! — Отрицание просмотра вперед.

i — не различать строчные и заглавные буквы.

Регулярные выражения. Справка.

Специальные символы в HTML

При верстке иногда приходится использовать специальные символы типа: значек копирайта &#169;, или значек неразрывного пробела &nbsp; и т.д. В этом посте хочу показать все специальные символы html. Таблица 1 содержит символы латиницы; Таблица 2 содержит специальные символы; Таблица 3 содержит математические символы и греческие буквы. Специальные символы в HTML

Перевод WordPress на новый хостинг

Блог на WordPress очень просто перевести на новый хостинг. Все что нужно:
1) скопировать по FTP все папки на новый хостинг (с учетом существующих прав chmod);
2) Сделать дамп существующей базы данных MySQL. В PhpMyAdmin вкладка экспорт. Сохранить его на диск.
3) Импортировать дамп базы в новую базу данных. В PhpMyAdmin вкладка импорт.
4) Отредактировать config.php. Исправив название Базы данных, Пароль и имя пользователя.
5) Исправить записи DNS у регистратора домена. Все.