HTML и CSS

Создание тянущейся шапки с логотипом (для начинающих)

Создание “резиновой” шапки с логотипом (для начинающих)

Доброго времени суток, уважаемые читатели. Вчера вечером, мне написал в аську один человек, который попросил помочь ему с шапкой сайта. Перед ним стояла задача: сделать шапку с тянущимся фоном (резиновую) и чтобы посередине был размещён какой-то логотип. Конечно же, я не мог отказать человеку в помощи и поэтому пишу данный пост с примерами реализации такой шапки.

Подробнее →

HTML и CSS

Прозрачность средствами css (для начинающих)

Прозрачность средствами css (для начинающих)

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

Чтобы сделать полупрозрачный элемент на фоне, например, какого-либо рисунка, можно использовать PNG-прозрачность, но данный способ не подходит для Интернет, поскольку изображения PNG-24 почти не сжимаются и имеют достаточно большой вес, а не все пользователи Рунета живут в центральной части и имеют высокоскоростной доступ в сеть. Как же быть в таком случае, чтобы угодить всем? Можно сделать взять фоновый рисунок, а затем наложить на него слой в графическом редакторе, слой сделать полупрозрачным, а затем сохранить полученное изображение в формате JPEG с приемлемой степенью сжатия. Этот метод подойдёт для небольшого блока фиксированных размеров, а если у нас большой блок с контентом, который ещё и динамически изменяется, то данный метод опять отпадает из-за большого веса изображений (при условии хорошо качества) и не возможности растягивать их. В таком случае у нас один выход, как и при использовании не прозрачного фона для блоков с динамически изменяющимися параметрами – полупрозрачность через использование каскадных таблиц стилей (CSS).

С помощью CSS прозрачность делает очень просто, достаточно к стилю элемента добавить всего 3 строки.

filter:alpha(opacity=100);  /* Здесь непрозрачность указывается в процентах (указывается только числовое значение). */
-moz-opacity:1;  /* Здесь в сотых долях от единицы. 1 = 100% не прозрачный блок. 0.5 (обязательно через точку – ни каких запятых) = 50% не прозрачности т.е. полу прозрачный. */
opacity: 1; /* Аналогично предыдущей строки */

Если честно, то достаточно только третей строки, но, к сожалению, не все браузеры поддерживают стандарты, поэтому для старых браузеров мы добавляем первые две строки. Первая для Internet Explorer, а вторая для старых версий Moziila, третья поддерживается всеми современными браузерами. Как видите, всё очень просто, но здесь есть одна хитрость – прозрачность передаётся «по наследству» от родительского контейнера, ко всем контейнерам внутри него (назовём их, дочерними).

«Унаследование» прозрачности вы можете наблюдать на картинке в начале статьи. К тому же, «унаследованную» прозрачность нельзя убрать, даже если установить для отдельного элемента 100% непрозрачность. Чтобы обмануть браузер, в прямом смысле, и сделать не прозрачный элемент внутри прозрачного, придётся создать 2 блока, один сделать полупрозрачным, а другой оставить «как есть», а затем с помощью CSS «заставить» браузер отобразить один поверх другого. Этот способ не слишком удобный, но есть ещё один – о нём я расскажу в следующем посте.

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

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

HTML и CSS

Использование тэга span для форматирования текста

Использование тэга span для форматирования текста Что же это за тэг такой, <span>? Данный тэг необходим для форматирования элементов. Он не является блочным элементом и позволяет, например, изменить стиль для одного слова. Его можно использовать внутри блочных элементов (<p>,<table>,<div>). Span поддерживается всеми известными браузерами (ну ещё бы он не поддерживался каким-либо браузером — стыд и позор :lol:)

Приступим к самому форматированию текста. В html это требует лишь пару символов кода, а всё остальное – чистый css. Хотя, можно прописать стили в html-коде, но это не хорошо, т.к. «нагружает» страницу лишним кодом, поэтому стили надо выносить в отдельный файл. Поскольку <span> это тэг для форматирования, то большая часть статьи будет о изучении и синтаксисе CSS.

Итак, дан текст: «Шел Грека через реку, видит Грека в реке рак, сунул грека руку в реку
рак его за руку цап…». Наши задачи:

  1. Придать словам «река» и «рак» синий цвет шрифта.
  2. Выделить жирным имя героя, без использования тэгов strong или b
  3. Изменить фон  и цвет глаголов, при наведении на них курсора мыши.

Задачи трудные, но это только на первый взгляд. На самом деле всё очень просто. Для начала «окружим» эти слова тэгом <span>. Должно получиться что-то, типа <span>рак</span>. Затем, необходимо присвоить класс к каждому тэгу span. У нас имеется 3 задачи, поэтому нам надо будет ко всем тэгам span присвоить один из трёх соответствующих классов, которые мы назовём, к примеру, “color” (1 задание), ”hero” (2 задание) и ”glagol” (3 задание). Пример присвоения классов к тэгу span — <span class=”color”>рак</span>. Всё, с html покончено, далее будет только CSS.

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

Итак, ранее мы создали 3 класса для каждой задачи. Теперь будем создавать стили для каждого их классов. Ниже я приведу отрывок кода с комментариями, где вы без труда разберётесь с синтаксисом CSS и не только. Небольшая шпаргалка: поскольку селекторы бывают разных типов, то они могут иметь одинаковые имена (Например, класс «color» и айди «color»), поэтому нам надо «сообщить» браузеру какой именно элемент нам нужен – для этого перед названием элемента ставятся специальные символы (без пробелов): «#» — перед айди, «.» — перед классом и ничего не ставиться перед названием тэга (например, span {} – этот стиль будет применяться для всех тэгов span, встречающихся в документе).

.color { /*Название селектора. В данном случае он называется «color.*/

Color:  #0000ff; /*Задаём тексту синий цвет. Color – свойство, а #ffff00 – параметры свойства.*/

}

.hero {

Font-weight: bold; /* Делаем текст жирным.*/

}

.glagol:hover { /*Дополнительное свойство селектора :hover позволяет задать стиль для данного элемента, который будет отображаться при наведении мыши на элемент.*/

Background: #eeeeee; /*Задаём фоновый цвет.*/

Color:  #666666;

}

Сохраняем написанные стили, запускаем html-файл в браузере и радуемся результату. Если вы всё сделали правильно, то вы увидите то же самое, что и на картинке к данной статье. А если у вас что-то не работает, то посмотрите исходники и найдите свои ошибки.

__________________

Украшать веб-страницы мы научились, теперь пора украшать свою девушку . Тут вместо CSS вам придётся использовать свадебные платья и прочие украшения, например ювелирные.

JavaScript и jQuery

Меню с эффектом наложения на jQuery

Меню с эффектом наложения на jQuery В этом уроке мы создадим простое меню, которое будет выделяться из всей страницы, при наведении на него курсора мыши, затемняя всю остальную часть страниц, при этом само меню будет оставаться незатемнённым, а под-меню будет будет «выезжать» из-под него. «Этот эффект мы воссоздадим используя jQuery.

Разметка

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

<div class="oe_wrapper">
	<div id="oe_overlay" class="oe_overlay"></div>
	<ul id="oe_menu" class="oe_menu">
		<li>
			<a href="">Collections</a>
			<div>
				<ul>
					<li class="oe_heading">
						Summer 2011
					</li>
					<li><a href="#">Milano</a></li>
					...
				</ul>
				<ul>
					...
				</ul>
				<ul>
					...
				</ul>
			</div>
		</li>
		<li>
			<a href="">Projects</a>
			<div style="left:-111px;">
				...
			</div>
		</li>
		<li>
			<a href="">Fragrances</a>
			<div style="left:-223px;">
				<ul class="oe_full">
					<li class="oe_heading">
						Fashion Fragrances
					</li>
					<li><a href="#">De?lure</a></li>
					<li><a href="#">Violet Woman</a></li>
					<li><a href="#">Deep Blue for Men</a></li>
					<li><a href="#">New York, New York</a></li>
					<li><a href="#">Illusion</a></li>
				</ul>
			</div>
		</li>
		<li><a href="">Events</a>
			<div style="left:-335px;">
				...
			</div>
		</li>
		<li><a href="">Stores</a>
			<div style="left:-447px;">
				...
			</div>
		</li>
	</ul>
</div>

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

Стили

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

Начнём со слоя наложения, который будет затемнять остальную часть страницы.

.oe_overlay{
	background:#000;
	opacity:0;
	position:fixed;
	top:0px;
	left:0px;
	width:100%;
	height:100%;
}

Позиция данного слоя является фиксированной т.е. он всегда будет на экране монитора, вне зависимости от прокрутки страницы.

Главное меню будет иметь следующий стиль:

ul.oe_menu{	
	list-style:none;
	position:relative;
	margin:30px 0px 0px 40px;
	width:560px;
	float:left;
	clear:both;
}

«Прижимаем» меню к левому краю, оставляя отступ 40 пикселей слева и 30 сверху. Теперь рассмотрим следующий очень важный момент — позиционирование элементов списка.

ul.oe_menu > li{
	width:112px;
	height:101px;
	padding-bottom:2px;
	float:left;
	position:relative;
}

Элементы списка будут позиционироваться относительно, что даёт нам возможность иметь элементы меню, позиционирование которых будет задаваться в абсолютных координатах.

Заголовок главного меню мы превращаем из простого текста в контейнер с текстом. Он будет иметь следующий стиль:

ul.oe_menu > li > a{
	display:block;
	background-color:#101010;
	color:#aaa;
	text-decoration:none;
	font-weight:bold;
	font-size:12px;
	width:90px;
	height:80px;
	padding:10px;
	margin:1px;
	text-shadow:0px 0px 1px #000;
	opacity:0.8;
}
ul.oe_menu > li > a:hover,
ul.oe_menu > li.selected > a{
	background:#fff;
	color:#101010;
	opacity:1.0;
}

В нашем JavaScript коде мы добавим класс «hovered» на элементы главного меню, благодаря чему, при наведении курсора мыши на элемент, фон элемента будет сменяться на белый:

.oe_wrapper ul.hovered > li > a{
	background:#fff;
	text-shadow:0px 0px 1px #FFF;
}

Сделаем под-меню невидимыми, так как они показываются только при наведении курсора мыши на тот или иной элемент главного меню:

ul.oe_menu div{
	position:absolute;
	top:103px;
	left:1px;
	background:#fff;
	width:498px;
	height:180px;
	padding:30px;
	display:none;
}

Затем зададим стиль для ссылок внутри списков под-меню.

ul.oe_menu div ul li a{
	text-decoration:none;
	color:#222;
	padding:2px 2px 2px 4px;
	margin:2px;
	display:block;
	font-size:12px;
}
ul.oe_menu div ul li a:hover{
	background:#000;
	color:#fff;
}

Так как мы будем показывать одновременно только одну подменю, то сделаем так, чтобы оно занимало всё пространство по длине главного меню.

ul.oe_menu div ul.oe_full{
	width:100%;
}

Если же внутри под-меню у нас не один список, то мы задаём им ширину в 150 пикселей, что позволяет нам разместить до трёх списков в один ряд.

ul.oe_menu li ul{
	list-style:none;
	float:left;
	width: 150px;
	margin-right:10px;
}

И наконец, выделим заголовок под меню особым стилем:

li.oe_heading{
	color:#aaa;
	font-size:16px;
	margin-bottom:10px;
	padding-bottom:6px;
	border-bottom:1px solid #ddd;
}

Работу со стилями мы закончили. Теперь перейдём к созданию эффектов с помощью javascript фреймворка jQuery.

Javascript

Основная идея заключается в том, чтобы затемнить всю страницу, за исключением меню. Слой наложения всегда будет поверх страницы, но под меню, потому, что в html-коде он идёт после всего, но раньше меню. К тому же, здесь нам помогает свойство z-index задающее положение элементов по оси z (направленна к нам, относительно плоскости монитора).

Начнём с того, что зарезервируем некоторые элементы.

var $oe_menu		= $('#oe_menu');
var $oe_menu_items	= $oe_menu.children('li');
var $oe_overlay		= $('#oe_overlay');

Когда мы наводим курсор мыши на один из элементов главного меню, то к соответствующему элементу присваиваются классы «selected» и «slided». В этот момент один соответствующий слой под-меню выезжает, а остальные остаются невидимыми, для этого мы даём очень большое значение свойству z-index данного слоя. Когда мы убираем курсор мыши с элемента главного меню, то класс «selected» снимается с данного элемента.

$oe_menu_items.bind('mouseenter',function(){
	var $this = $(this);
	$this.addClass('slided selected');
	$this.children('div').css('z-index','9999').stop(true,true).slideDown(200,function(){
		$oe_menu_items.not('.slided').children('div').hide();
		$this.removeClass('slided');
	});
}).bind('mouseleave',function(){
	var $this = $(this);
	$this.removeClass('selected').children('div').css('z-index','1');
});

Класс «selected» необходим для оформления, а вспомогательный, в данном случае, класс «slided» лишь для идентификации элемента, находящегося в данный момент времени в раскрытом состоянии.

После наведения курсора мыши на меню, мы устанавливаем прозрачность слоя наложения равной 60% и добавляем класс «hovered» на контейнер для меню, что устанавливает на всё меню в целом белый фон.

$oe_menu.bind('mouseenter',function(){
	var $this = $(this);
	$oe_overlay.stop(true,true).fadeTo(200, 0.6);
	$this.addClass('hovered');
}).bind('mouseleave',function(){
	var $this = $(this);
	$this.removeClass('hovered');
	$oe_overlay.stop(true,true).fadeTo(200, 0);
	$oe_menu_items.children('div').hide();
})

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

Демонстрация работы | Скачать.

Данная статья является моим переводом с обработкой статьи с сайта tympanus.net.
______________________
Если вы любите посидеть вконтакте, то наверняка вы уже слышали фразы в свою сторону типа: «Опять ни черта не делал — весь день вконтакте онлайн!». Тогда вам в помощь статусы про обман — специальный скрипт для Opera 9, позволяющий сидеть вконтакте offline.

PHP

Постраничный вывод записей из БД

Постраничный вывод записей из БД Невозможно представить себе сайт (не визитную карточку) с большим количеством информации и чтобы вся эта информация хранилась в виде отдельных статических страниц, а не выводилась из базы данных динамическим образом. Однако, бывает что необходимо вывести большое количество записей, но в таком случае страница становиться очееень большой в высоту, что как минимум неудобно.

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

Предположим: нам надо вывести из таблицы «news» все записи, разбив их на страницы по 20 новостей на каждой, если это потребуется.

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

Добавлено: Итак, начнём с подключения к базе данных, ведь именно с ней мы и будем работать в дальнейшем.

$link=mysql_connect("localhost","user","password"); // Подключаемся к серверу БД расположенном по адресу localhost используя логин user и пароль password.
mysql_select_db("dbname"); // Подключаемся к базе данных с именем "dbname"

Для начала, нам необходимо проверить, запросил ли пользователь какую-либо определённую страницу или нет. Номер запрашиваемой страницы будет передаваться в переменной «page», передаваемой методом get.

if(isset($_GET['page'])) { $page=$_GET['page']; } else { $page="0"; }

Затем, мы делаем запрос в базу данных, где просим вернуть 20 записей, начиная с определённой записи. Этой самой определённой записью, будет запись, которая является первой записью на странице, и её номер будет определяться как: номер страницы минус единица и умноженный на количество записей на страницу. Например: первая запись на третьей странице будет иметь номер 2*20=40, при условии вывода по 20 записей на страницу.

$query=mysql_query("SELECT * FROM news ORDER BY id DESC LIMIT ".($page*20).",20");

Далее используя цикл while() выводим на экран необходимую нам информацию в необходимом виде. Эту часть кода я опишу кратко и очень условно.

while($news=mysql_fetch_array($query)) {
        echo "<strong>".$news['title']."</strong><p>".$news['messaage']."</p>";
}

Всё, часть задачи мы решили: вывели на экран определённое количество записей, начиная с определённой записи. Теперь осталась ещё одна задача: сделать возможность навигации по страницам. Для этого нам надо узнать, сколько всего записей имеется в таблице. Сделаем это таким образом.

$q=mysql_query("SELECT * FROM news");

Зная количество записей мы можем определить сколько страниц у нас будет. Для этого мы разделим общее количество записей на количество записей, выводимых на одной странице, а затем полученное число (скорее всего дробное) мы округлим до целого в бОльшую сторону.

$numpages=ceil(mysql_num_rows($q)/20);

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

if($numpages > 1) {
	if($page!=0) { echo "<a href=\"/index.php?page=0\">Первая</a> "; }
	for($i=0;$i<$numpages;$i++) {
		if($page != $i) { echo "<a href=\"/index.php?page=".$i."\">".($i+1)."</a> "; }
		else { echo "<strong><a href=\"/index.php?page=".$i."\">".($i+1)."</a></strong> "; }
	}
	if($page!=($numpages-1)) { echo "<a href=\"/index.php?page=".($numpages-1)."\">Последняя</a>"; }
}
	echo "<a href=\"/index.php?gotopage=$numpagess\">Последняя</a>";
}

Во второй и седьмой строках кода, представленного выше, мы выводим постоянные ссылки на первую и последнюю страницы соответственно. В третьей строке мы задаём цикл от единицы до n-1, где n — количество страниц. В теле данного цикла (4-5 строчки) мы выводим ссылку на каждую страницу, с указанием номера данной страницы, предварительно проверив, является ли ссылка, ссылкой на текущую страницу. Если условие выполняется, то ссылка выделяется жирным шрифтом. Проще говоря, мы выделяем жирным ссылку на ту страницу, на которой пользователь находиться в данный момент.

Добавлено: Теперь нам остаётся лишь закрыть соединение с базой данных и очистить память, от теперь уже ненужной информации. В первой строке представленного ниже кода, мы очищаем память от массива данных, содержащегося в переменной $query — это все наши записи из базы данных. Во второй строке, мы закрываем соединение с базой данных.

mysql_free_result($query);
mysql_close($link);

Вот и всё, как видите, ни чего сложного здесь нет. Требуется лишь немного смекалки и небольших знаний php.

Удачи вам, в ваших разработках!
________________
Отдохните от работы и потратьте пару часов своего свободного времени на лучшие игры различных жанров и направлений: от одиночных стрелялок и симуляторов, до многопользовательских ролевых и стратегических игр.

Новости

Итоги уходящего 2010 года

Итогди уходящего 2010 года Вот и ещё один год прошёл. Как же быстро летит время. 5 декабря моему блогу исполнилось 2,5 года, а кажется, что свою первую запись я сделал этим летом, а не в 2008.

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

Это интересно!

Удивительное утро

Кто все эти люди? О_о Третий месяц Я живу и учусь в Питере, лишь на выходные уезжая домой. Уже казалось привык к новому городу, к его трудностям и неудобствам, по сравнению с родным небольшим городком. Уже почти не мучает голод днём ;-), привык к постоянной спешке, толкотне, пробкам или длинным пешим «прогулкам», вместо «езды» на наземном транспорте, но то, с чем я столкнулся сегодня утром меня сильно удивило и немного даже испугало.

Сегодня утром, как обычно, выйдя из дома я направился прямиком к станции метро Пионерская, до которой мне идти около 25 минут. Включив плеер, с множеством свеже-закаченной музыки, быстро добрался до метро, сел на поезд и поехал к универу.

Университет расположен рядом со станцией метро Горьковская, до которой мне ехать по этой же ветке всего-лишь 3 остановки, поэтому не напрягаясь и даже не думая о том, чтобы попытаться найти место в вагоне метро я спокойно поехал. Поезд подъезжал к нужной станции и когда мой предпоследний вагон выехал из тоннеля на станцию, то все, и я в том числе ужаснулись и в то же время дико удивились:  вся станция была полностью забита эмигрантами из ближних азиатский республик и их было настолько много, что для того, чтобы выйти из вагона метро и добраться до эскалатора (около 30 метров) пришлось изрядно потолкаться.

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

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

Выбравшись из толпы и чуть-чуть отойдя, я развернулся и увидел, что масштаб столпотворения оказывается гораздо бОльшим, чем я думал. Причиной этого утреннего «происшествия» стал мусульманский праздник Курбан Байрам и огромнейшая красивейшая мечеть, расположенная в считанных метрах от метро (ссылка на большое фото в конце поста).

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

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

з.ы.ы. Посмотреть фотографию мечети в большом размере можно здесь.

Жизнь

Будь компетентным в своём деле

Будь компетентным в своём деле Доброго времени суток, друзья. Уже четыре недели я живу в Санкт-Петербурге. Для тех, кто не в курсе, раньше я жил в городе Сосновый Бор, что в 60км от Питера. К новому городу я уже привык, все возникшие проблемы решены, теперь можно вернуться к ведению блога и прочим увлечениям.

На прошлой неделе у меня случилась неприятная ситуация. Мой знакомый попросил кинуть ему на счёт мобильного телефона небольшую сумму — всего лишь 50 рублей. Переведя 50 вмр на его номер мобильного я заметил, что случайно ошибся одной цифрой номера, а следовательно деньги ушли незнакомому человеку. Не приятная ситуация, но всё-же я пообещал кинуть денег, поэтому кинул ещё раз, но уже 100 раз проверив написание номера. На второй раз деньги дошли, получил от друга «спасибо» и обещание вернуть эту сумму при первой встрече.

50 рублей — не велика потеря, но всё-же, было бы гораздо приятнее, если бы эти деньги ушли знакомому человеку, а не незнакомцу. Я стал думать, как можно вернуть эти деньги на свой номер мобильного или же на номер друга. Первая мысль была — позвонить в справочную оператора, благо у друга такой же оператор, как и у меня. В справочной автоответчик сказал, что необходимо либо обратить в один из офисов, либо позвонить ещё раз и дождаться ответа оператора.

Я решил зайти в офис т.к. такие вещи лучше решать в «живую», да и офис оказался в 100 метрах от станции метро, с которой я каждый день езжу на учёбу и обратно, т.е. специально ехать куда-либо мне не придётся, я просто по пути домой зайду в офис.

Зашёл в офис, объяснил проблему, что кидал деньги на счёт мобильного через веб-мани и ошибся при наборе номера. У меня спросили, насколько цифр я ошибся. Я ответил: «на одну». Попросили чек. Я ещё раз объяснил проблему и сказал, что чека нет т.к. пополнял электронными деньгами. Немного подумав, мне сказали, что они помочь не смогут и порекомендовали позвонить оператору.

Вечерком, был сделан звонок оператору. Опять объяснил проблему, опять спросили наличие чека, ещё раз объяснил проблему и объяснил ситуацию с чеком. В ответ получил: «Извините, но без чека мы ни чем не можем вам помочь». Я положил трубку и стал смеятся. :lol:

После общения с двумя девушками (оператор и в офисе), я сделал для себя вывод, что девушки в серъёз думают, что пополнить счёт мобильного телефона можно только двумя способами в мире: через терминал или же непосредственно в офисе. О веб-мани и электронных деньгах они слышали впервые т.к. постоянно просили чек. Вернуть деньги опять не получилось.

Помог один способ, о котором мне подсказали родители — отправил смску на этот номер, куда случайно положил деньги, с просьбой вернуть деньги т.к. ошибся номером. На моё удивление — этот способ сработал. Данный человек положил мне на счёт 50 рублей и даже уведомил по смс, что пополнил мой баланс. ;-)

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

HTML и CSS

Как создать эффект свечения с CSS3

Как создать эффект свечения с CSS3 Это очень простой способ добавления эффекта свечения на контент с помощью такого свойства ccs3, как «бросить тень». Данный способ займёт у вас очень малое количество времени из-за мизерного количества кода, а следовательно и практически не увеличивает вес страницы и не увеличивает время загрузки. Для него не нужны ни какие графические файлы, всё работает на «голом» css.
Подробнее →

Блогосфера

Эстафета: «Поисковые Засосы»

Эстафета: Поисковые ЗасосыДоброго времени суток! После долгого моего отсутствия, я вновь пишу в свой блог. Ну а что такого? Жара кончилась, сразу появилось огромное желание побыть на природе, чему я и поддался, полностью забыв о блоге. :lol: Ну ни чего страшного. Лето скоро кончиться, гулять и расслабляться времени совсем не будет, поэтому буду больше времени уделять блогу. Ладно, перейдём к сути поста. Подробнее →