Вернулся в реал (off)
Чегой-то делаю

Грузим Твиттер...

теги

"Отрицательная" резиновая верстка

12.01.2010

Думаю многие, кто верстает, сталкивался с проблемой округления процентов при верстке резиновых сайтов. Учитывая, что только firefox третьей версии может вменяемо округлить, то проблема достаточно критична.

Спросите о чем я говорю? Ну например вам надо сделать меню-вкладки, пять штук, шириной по 20% от ширины контентной части. Думаете у вас просто так это получится? Фигушки. При наличии “лишних” пикселей, которые не вписываются по габаритам в эти 20%, они будут округляться. И каждый это сделает по-своему. Опера тупо их отбросит. ИЕ логикой не отличается, поэтому пикселей будет либо меньше чем надо, либо больше.

Пришлось мне воевать с таким проектом… Проблему решал через JS. Но это некошерный костыль.

Но способ есть (жаль что на тот проект нельзя повесить, ибо верстка уже вся готова, а переверстывать после кого-то мне жутко влом).

Недавно нарвался на статью (ссылку потерял), где показывался вариант верстки на “супер” отрицательных отступах. Предупреждаю – прежде чем применять такой способ – хорошенько обдумайте сетку сайта….

Итак приступим.

Имеем:

<div id="first">
	<ul>
		<li class="t1">tab</li>
		<li class="t2">tab</li>
		<li class="t3">tab</li>
		<li class="t4">tab</li>
		<li class="t5">tab</li>
	</ul>
	<div class="content">
		<p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr.</p>
	</div>
</div>

И стили к нему:

* {padding:0;margin:0;border:none;}
body {background: #363228;color: #8f866e;font: normal 62.5% Verdana, Arial, Helvetica, sans-serif;padding: 20px 50px;}
h2 {clear:both;font-size:2.2em;padding: 30px 0;}
ul {zoom:1;} /* for ie */
ul li {float:left;width:20%;padding:10px 0;text-align:center;font-size:1.8em;list-style:none;}
.t1{background:#eee}
.t2{background:#ddd}
.t3{background:#ccc}
.t4{background:#bbb}
.t5{background:#aaa}
.content {background:#fff;clear:both;padding: 30px 0}
.content p {margin: 0 30px 15px 30px;font-size:1.3em;}

В результате в разных брузерах табы либо меньше ширины, либо больше (в зависимости от разрешения).

Теперь чиним

#first {width:20%;margin:auto;}
#first ul {float:left;width:500%;margin-left:-200%;}
#first .content {width:500%;margin-left:-200%;}
* html #second ul {margin-left:auto;} /* for ie6 */
* html #second .content {margin-left:auto;} /* for ie6 */

И ура… все поровнялось.

Что мы в итоге сделали? Мы на начальном этапе сделали округление “левых” пикселей, задав ширину основного контейнера в 20%. А дальше просто вложенные элементы подогнали до нужной нам ширины и выдвинули отрицательным отступом в нужное нам место :). Естесно ИЕ6 нас послал и отрицательным отступом выкинул наш контент к черту на кулички, но без онного поставил как надо. Поэтому, сугубо для ИЕ6, две строчки отменяющие отрицательный отступ слева.

Уж простите если качество написания не сильно понятно, не мастак я много писать :).

Работающий пример можно посмотреть ТУТ .

Если хочется онлайн чат

07.12.2009

Появилась идея на один из своих сайтов повесить “онлайн консультации”. Использовать платное ПО ну ооочень накладно. Стоит оно некисло. Плюс хотелось чтото простое и через джаббер (мне удобнее как-то так). Сервисы с такими условиями есть, но стоят тоже вагон денег. А еще хотелось и дизайн под себя заточить… Неделя поисков и мук. Результат ниже.

  • Регистрируемся на libraryh3lp.com;
  • получаем JID типа live@libraryh3lp.com;
  • Настраиваем внешний вид самого чата (по умолчанию аскетичен и мне не поравился) и получаете адрес вашего чата;
  • Настраиваем жабер клиент;
  • Регистрируем транспорт от http://presence.jabberfr.org/ (будет использовать как статус на сайте).

Далее шаманим уже у себя на сайте…

1. Вывод кнопки

<p class="chat">
	<a href="http://libraryh3lp.com/chat/live@libraryh3lp.com">
		<img class="hide" id="online" src="/img/on.gif" title="Консультация on-line" />
		<img class="hide" id="offline" src="/img/off.gif" title="Консультация on-line" />
	</a>
</p>

2. Проверка статуса (status.php)

<?php
$url = 'http://presence.jabberfr.org/"тут ваш иди полученный на presence.jabberfr.org"/text-en-us.txt';
$content = file_get_contents($url);
if(!empty($content)) {
	if($content == "Available") {
		$result = 'online';
	}else{
		$result = 'offline';
	}
}else{
	$result = 'hz';
}
echo json_encode($result);
?>

3. jQuery для динамического изменения кнопки статуса

function checkStatus(){
	$.getJSON("./status.php",function(data){
		if(data) {
			if(data.status != 'error') {
				if(data == 'online') {
					$('#online').fadeIn("slow");
					$('#offline').fadeOut("slow");
				}else{
					$('#online').fadeOut("slow");
					$('#offline').fadeIn("slow");
				}
			}else{
				$('#error').removeClass('hide').html(data.message);
			}
		}
	});
}

Ну вот кажется и все… Для более приятного внешнего вида я создал файлик с графический оформлением и в нем iframe с чатом. Ссылка с кнопки соответственно на этот файлик.

Сайтобзор без слов #none

03.12.2009

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

Следуя моде решил и у себя на блоге замутить что-то подобное. Но… Никакой перепечатки с других блогов. Никакой определенной тематики обзора. Никакого описания. Просто сайты, которые я посчитал для себя чем-либо интересными.

Так что, если интересно, ждите… Скоро будет :).

Gravatar без проблем

09.01.2009

Сегодня была анонсирована полезняшка для jQuery – плагин Gravatar. Никакого программирования, наворотов и прочего. Просто интегрируется в виде обыного html с использованием контента элемента :). Клевая штучка. Мне понравилась. Задумался о переходе на неё.

Домашняя страница

Демонстрация

Высокомерие

08.10.2008

Вот задался сегодня вопросом – с какой радости люди, не зная ничего о собеседнике, считают что он, собеседник, заочно хуже их?

Предыстория долгая, но суть такова – во время телефонного разговора с директором энной дизайнерской конторы звучит фраза: “Мы серьезная компания, а не какой-то фрилянсер”.

Емаё… Товарищи. Да откуда вам знать что это за фрилянсер и кто он есть? Вы сайты делаете? Так и все делают… Я знаю кучу офигенно класных дизайнеров-фрилянсеров до которых многим конторам как до седых волос. Так почему они упорно считают, что заведомо круче? Не понимаю.

Оперирование крутизной созданных сайтов меня вообще убило. Да мы делали тем, а вот ещё тем… Мол понимаете – клиенты серьезные. Ха три раза. А я принимал участие, пусть и небольшое, в делопроизводстве сайта отелю “Европа” (межпрочим единственному пятизвездочному в Беларуси). И что из этого? Медаль чтоль повесить на грудь?

Смотришь на эти понты и так смешно становится, что начинаешь жалеть таких людей.

Вызивиг

21.02.2008

В который раз убедился, что визивиг на сайте – это зло.

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

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

Уже и объясняешь, что и как надо делать, и кнопку “очистить стили” показываешь – п о ф и г у.

Убейте того, кто придумал визивиг.

Lorem ipsum dolor

07.02.2008

Частенько, многие разработчики, при создании макета или верстке, сталкиваются с итуацие набивки “рыбного” контента.

Так называемые “бла бла бла” не прокатят, так как создают жескую ритмичность текста и не позволяют адекватно воспринять оформление странички.

Я предпочитаю использовать “Lorem ipsum dolor…”. Во-первых это связный, неритмичный текст. Во-вторых – его не надо набивать руками, так как существует куча генераторов и утилит. Вот о некоторых из вариантов генерации такого текста я и поведаю (может кому пригодится).

Dummy Text Generator.
Он-лайн сервис с кучей настроек для генерации текста. Есть вариант выбора разных источников и текстов. Один из лучших что я встречал. Минус в том, что приходится торчать в инете.

LoremIpsum Content Generator
Расширение для любимого многими файрфокса. Спартанский интерфейс, минимум настроек. Сугубо лично – худший в обзоре. Упомянул только потому, что идет как расширение к браузеру, что само по себе необычно.

PSPad
Отличнейший текстовый редактор. Многие собственно в нем и верстают. Имеет встроенный бредогенератор. При наличии словарей позволяет выбрать язак бреда :).

Notepad++
Мой выбор :). Именно эта программка и является моим инструментом для верстки. Нет у неё никакого модуля генерации контента. Да и нафига он ей :). Ведь есть модуль снипетов QuickText. Если потратить немного времени и настроить его на свой вкус – цены не будет :) Написал “lorem”, нажал нужное сочетание клавиш, бах – а у тя обзац бреда :).

Думаю, что на сегодня хватит.

Что касается личного мнения – то наиболее функциональным (но не скажу, что самым удобным) оказался он-лайн сервис, открывший сегодняшний обзор.

В общем сами смотрите сами, что удобнее. _

Клоны в сети или "Web 2.0"

30.11.2007

Ну что же, деточки, расскажу я вам страшную сказку :). А может и не страшную.

Все, небось, знают, или слышали, что такое Web 2.0. Но споры об этом идут постоянно. Я не собираюсь разводить диспут, что же это такое, а всего лишь повозмущаюсь о таком понятии как “дизайн в стиле 2.0”.

Если так посмотреть, то на что становится похожим сеть? Массовое засилье градиентиков, эффекта стекла и отражения. Сайты становятся похожи один на другой, с минимальными отличиями.

Я не спорю, используя, так называемые, 2.0 приемы, можно получить действительно классный дизайн и вид сайта. Но в большинстве случаев, создатели как-то не утруждают себя изобретением оригинальности.

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

В итоге мы получаем однообразный, скучный, в отношении внешнего вида, интернет. И это грустно.

Совет дизигнерам – почитайте книжки Курта Клонингера [lab404.com]. Пусть они и давно изданы, и попытались потерять актуальность в период, когда каждый воротил, что хотел, но теперь это снова становится актуальным :).

О новых окошках

16.02.2007

Возвращаясь к вопросу о открытии новых окошек при клике на ссылку.

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

Следовательно и такое понятие как “target” отпадает :).

Но тем не менее периодически приходится это пользовать... Например для непереубедимых клиентов :).

Валидный "target"

10.02.2007

Как известно девелоперам, на данный момент такой параметр как target=”_blank” не является валидным по спецификации XHTML. Данный момент каждый обходит по своему.

На мой взгляд наиболее простым и гибким вариантом является небольшой скриптик:

function externalLinks() {
  if (!document.getElementsByTagName) return;
  var anchors = document.getElementsByTagName("a");
  for (var i=0; i<anchors.length; i++) {
    var anchor = anchors[i];
    if (anchor.getAttribute("rel") == "external") {
      anchor.target = "_blank";
      anchor.className = "out";
    }
  }
}
window.onload = externalLinks;

И сответственно ссылка должна иметь вид:

<a href="url" rel="external" class="out">Ссылка</a>

Но при этом мы содаём класс в css ( a.out ), и навешиваем на него стиль, который нам нравится. У меня например это иконка :)

Аксиома вебдева

08.02.2007

Выведена новая аксиома разработки:

Любой менеджер по определению является злейшим врагом и тормозом любого разработчика.

Аксиома самодостаточна и доказательства не требует.

Для чего людям сайты?

21.12.2006

Объясните мне непонятливому.
Контора заказала сайт. Два месяца парила мозг. Сделано три, абсолютно разных макета. Все три сверстаны. Месяц назад сайт запущен, настроен и все прилагающееся.... А в итоге сегодня захожу – дизайн от одного из их сайтов, движок убит... В общем всё что я делал – коту под хвост.

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

cssblast

08.10.2006

Сегодня совершенно случайно обноружил свой сайт в галерее cssblast.ru … Хм... я его туда не добавлял О_о .. Странно однако.

Лебедев (наболело)

09.08.2005

Все знают, кто такой Артемий Лебедев. Естественно... Такого и не знать. НО... Блин... зачем же о нём орать везде и всюду. Такое ощущение, что он гуру веб-дизайна и законодатель моды. Сколько я раз натыкался на случае когда этим человеком потакают других. Сам не раз с этим сталкивался.

Теперь ближе к реалиям...

Ситуция первая.
На одном форуме чел выложил свою новую работу на заценку. И что вы думаете? Ну использовал он белый штрихкод на красном фоне как оформительский элемент (кстати очень неплохо), что из этого? Хорошо и ладно. Так нет же... Нашёлся умник, который стал обвинять в плагиате, что мол у лебедева логотип на сайте так сделан... Ё-маё... Он что? Патент на использование такого сочетания элементов получил? Или что? Нифига не понимаю.

Ситуация вторая.
Уже на другом форуме идёт обсуждение под какое разрешение монитора надо точить сайты. Ну есть там человек – ярый фанат фиксированной ширины. Ну и т него звучит фраза типа: “... или рейдузный дизайн аля лебедев” (примерная цитата). Аналогично... Я спрашиваю, он что? изобрёл такую верстку? На что получаю ответ, что мол он когда-т сам такое заявлял... Во блин.. приехали... Он что? Изобрёл понятие 100% ширины? Он что? Писал спецификации и участвовал в разработке html? Оч я в этом сомневаюсь.

Ситуация третья.
На своём сайте студии я новые работы представляю на главной как три расположенных в ряд логотипа. И тут же меня ткнули сайтом Лебедева, что мол я у него спионерил... Благо что хоть один человек осознав глупость такого заявления вступился, что я использовал аналогичную модульную сетку. Спасибо ему огромное – не все ещё попали под “лебедевщину”.

Ситуация четвертая.
Опять же на моём сайте используется высокая шапка. И тут у меня спросили, что мол я под Лебедева кошу. Он дескать такое любит. Да мне насрать с большой колокольни, что он любит и как у него.

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

Я Делаю Сайты