2010-12-01

Семантический CSS

Если вы когда либо занимались HTML версткой, то вам наверняка доводилось  слышать от клиентов фразы типа: "сделай эту надпись больше", "этот заголовок должен быть красным",  все синие заголовки сделать светлее" и т. п...
Подобные задачи наиболее часто приходится решать HTML верстальщику при работе с текстом. Само собой разумеется, все эти задачи должны рещаться использованием стилей — хороший верстальщик будет использовать внешние стили прописанные в CSS файле, плохой - нагородит кучу inline стилей.

Когда-то, когда я был студентом, я подрабатывал версткой газет. При верстке печатных изданий у тебя есть фиксированный набор стилей, которые ты и можешь использовать. Что характерно, именно строгость стиля и делает внешний вид издания стильным и профессиональным. Кроме этого, профессиональные издания сделаны так, чтобы было проще сначала создать стиль a потом многократно его использовать, это гораздо удобнее, чем постоянно задавать, размер, цвет, выравнивание, кернинг, трекинг, гарнитуру и еще десятки параметров, которые могут изменяться у текста.

Кстати, в Microsoft Word, почему-то, используется прямо противоположный подход — там проще изменить атрибуты самого текста, чем стиля на котором этот текст основан. С каждой новой версией панель инструментов в этой программе увеличивается и увеличивается, вынуждая разработчиков придумывать все новые способы, чтобы уместить на экране все больше и больше кнопочек форматирования. Они даже изобрели новый вид меню, которое назвали "Меда-Лента" (правильно да?). Но с введением нового интерфейса дело еще более ухудшилось. Поэтому, редактирование документов в этом редакторе частенько вызывает приступ острой зубной боли у людей которым довелось поработать в профессиональных программах.

В это же самое время, профессиональные программы верстки часто вообще не имеют панелей инструментов освобождая освободившееся место под собственно документ. Например, интерфейс известного пакета QuarkXpress спроектирован таким образом, чтобы в нем практически невозможно было НЕ пользоваться стилями, тоесть нельзя было работать так как многие привыкли работать в Microsoft Word.

Каскадные таблицы стилей еще более удобны для форматирования текста чем стили текстовых редакторов, в них одному куску текста можно назначать одновременно несколько разных стилей. Одно время я так увлекся бестабличной версткой, что почти позабыл о основном назначении каскадных таблиц - форматировать текст.

На деле, для форматирования текстов нужно совсем немного стилей:

- стили для заголовков h1, h2, h3, h4
- стили для тегов форматирования: b, i, em
- стили для выделения теста цветом: .red, .blue, .gray, .green
- стили для эффектов форматирования: .bold, .italic, .higlight
- стили для выделения размером: .small, .big, .bigger, .smaller
- вспомогательные стили для форматирования: .left, .right, .center, .middle

Речь идет именно о стилях форматирования, стили текста по умолчанию для элеметов body table ul td и других я в этом посте не рассматриваю.
 
В принципе, этого набора стилей хватает чтобы получить большое количество различных текстовых стилей. Остальные эффекты можно получить комбинируя эти стили между собой.

Допустим, нам нужно сделать слово в тексте красным и полужирным:

Это <b class="red">слово</b> будет полужирным.

Или нам потребовался нестандартный заголовок H2 выровненный по правому краю и зеленого цвета:

<h2 class="right green">Заголовок H2</h2>

Конечно, указанный список стилей является неполным, каждый может дополнить его как желает нужным, но практика показывает — в большинстве случаев такого набора достаточно для решения большинства задач возникающих во время верстки.

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

 

Оставить комментарий

 
  2010-11-11

Как узнать действующее значение стиля

При помощи объекта style можно узнать только явно заданные значения стилей, однако в большинстве случев необходимо знать не явно заданные а действующие значения стилей.

В Internet Explorer для этого можно воспользоваться свойстом currentStyle
var elem1 = document.getElementById("elemId");
alert(elem1.display);
(см. http://msdn.microsoft.com/en-us/library/ms535231%28v=VS.85%29.aspx) в браузерах на Mozilla можно использовать window.getComputedStyle(el)
var elem1 = document.getElementById("elemId");
var style = window.getComputedStyle(elem1, null);
alert(style.getPropertyValue("display"))
(см. https://developer.mozilla.org/en/DOM%3awindow.getComputedStyle)
Насчет HTML и Opera не уверен, но думаю там также как и у Mozilla.

 

Оставить комментарий

 
  2010-10-24

Как смонтировать и отмонтировать ISO образ диска

Чтобы смонтировать ISO образ:

sudo mkdir /media/iso
sudo modprobe loop
sudo mount file.iso /media/iso/ -t iso9660 -o loop

Чтобы отмонтировать ISO образ:

sudo umount /media/iso/

 

отсюда

 

Коментариев: 2

 
  2010-10-24

Странная ошибка в PHP

В Ubuntu при очередном обновлении время от времени стала появляться следующая ошибка:

ps_files_cleanup_dir: opendir(/var/lib/php5) failed: Permission denied (13) in /your/file/here on line 30

Ошибка тем более странная, что появляется в одном случае из тысячи, но все равно довольно неприятная.

Однако, лечение оказалось довольно простым:

Откройте php.ini (обычно он расположен в /etc/php5/apache2/php.ini)
и убедитесь что в нем есть следующая строка:

session.gc_probability= 0

Если ее нет - просто добавьте, если значение не 0 - поставьте в 0.

После такого лечения проблема должна исчезнуть.

Upd. На одной из моих машинок проблема таким способом так и не вылечилась, я не понял в чем дело и просто поставил права 777 на папку /var/lib/php5/

 

Оставить комментарий

 
  2010-10-12

Как сделать папку смонтированную через sshfs видимой через Samba

SSHFS удобнейшая штука если нужно сделать так чтобы часть файловой системы удаленного компьютера была видна как локальная папка. Однако пользователям Windows остается только облизываться - ничего такого, насколько мне известно, там нет. Если у вас есть несколько компьютеров (пусть даже виртуальных) на одном из которых установлен Ubuntu то еще не все потеряно, можно расшарить папку подмонтированную через SSHFS как сетевую папку в Windows.

Спасибо J Wynia за подробную инструкцию как это сделать:

(если вы уже установили и используете sshfs то шаги 1-2 можно пропустить)

1. устанавливаем sshfs

> sudo apt-get install sshfs

2. добавляем себя в группу fuse

> sudo adduser your-username fuse

3. открываем файл /etc/fuse.conf и снимаем комментарий со следующей строчки:

user_allow_other

4. создаем папочку в которой будет монтировать удаленную файловую систему:

> sudo mkdir /mnt/folder_to_mount
> sudo chown your-username /mnt/folder_to_mount

4. Теперь осталось только подмонтировать папку:

> sshfs username@remoteserver.ru:/var/www/html /mnt/folder_to_mount -o allow_other

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

> fusermount -u /mnt/folder_to_mount
 

 

Коментариев: 2

 
  2010-10-01

Цветное подчеркивание средствами CSS

Случайно обнаружил способ как сделать цветное почеркивание для текста средствами CSS:

Текст с цветным подчеркиванием!

При этом это не бордер, а именно подчеркивание - можно заметить, что подчеркивание проходит гораздо ближе к тексту чем бордер и иногда пересекается с нижними глифами шрифта.

Сама идея проста до безобразия - делаем красный текст с подчеркиванием, затем у вложенного спана переопределяем текст на черный:

<p style="text-align: center; font-size: 1.5em; color: red; text-decoration: underline;">    <span style="color: black;">Текст с цветным подчеркиванием!</span> </p>
 

Оставить комментарий

 
  2010-09-20

Вертикальный текст в HTML

Как я уже писал, в HTML совершенно нет возможности размещать текст по-вертикали. Правда, сильно ограниченные возможности присутствуют в Internet Explorer, правда, у этого способа я обнаружил один баг — при предварительном просмотре печати текст оказывается зеркально отраженным, видимо, второй фильтр не применяется.

Хотелось бы найти универсальный способ отображать вертикальный текст по-вертикали во всех браузерах и по возможности без глюков. Как говорится если нельзя, но очень хочется, то можно.

Создал небольшой скрипт для отображения текста по-вертикали. Код получился сравнительно небольшим. Скрипт использует VML под IE и SVG под остальными браузерами.

Внешний вид полностью настраивается при помощи CSS и Javascript. Здесь можно скачать архив, а здесь увидеть как это работает в живую.

Выложенный пример тестировался на IE6-IE7, Firefox2, Google Crome, Opera и Safary.

 

Коментариев: 6

 
  2010-09-06

Как смотировать сетевую папку на Windows машине в Ubuntu

В линуксе можно очень удобно монтировать сетевые ресурсы как локальные папки. Допустим у вас есть ресурс \\COMPUTER-NAME\folder1\folder2\folder3. Мы хотим обращаться к нему как к локальной папке localfolder:

> sudo /sbin/mount.cifs //COMPUTER-NAME/folder1/folder2/folder3 localfolder

Обратите внимание что \\ нужно заменить на // как и все обратные слеши на прямые.
 

 

Оставить комментарий

 
  2010-09-08

Как скопировать CD в Ubuntu

Для начала создаем образ диска:

> dd if=/dev/cdrom of=cd.iso

как альтернатива, также, работают комманды вида:

> cp /dev/cdrom cd.iso
или
> cat /dev/cdrom > cd.iso

Чтобы записать полученный iso на диск, открываем папку, содержащую образ в файловом менеджере, щелкаем правой кнопкой мыши на файле с образом cd.iso, выбираем "Записать на диск" и дожидаемся конца прожига.

 

Оставить комментарий

 
  2010-09-04

Как вернуть нормальное расположение кнопкам в Ubuntu 10.04

Поставил Ubuntu 10.04. Новая версия мне определенно понравилась, исчезли некоторые глюки при работе с Virtual Box.

Единственное, что привело меня в недоумение (и, как показал поиск в сети не только меня) это расположение кнопок закрытия окна - они теперь в левом верхнем углу, к счастью есть инструкция как это быстро исправить:

1. Жмем Alt-F2 и в появившемся окне вводим "gconf-editor"

2. В вызванном редакторе выбираем раздел "apps", затем "metacity" затем "general", выбираем переменную button_layout и заменяем старое значение на "menu:minimize,maximize,close". Нажатие на кнопку ОК мгновенно меняет расположение кнопок на привычное.

(рецепт отсюда)

 

Оставить комментарий