<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Prootime &#187; CSS</title>
	<atom:link href="http://prootime.ru/category/css/feed" rel="self" type="application/rss+xml" />
	<link>http://prootime.ru</link>
	<description>Блог человека увлекающегося Javascript, PHP, Css, Jquery ...</description>
	<lastBuildDate>Sat, 31 Mar 2012 00:44:01 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>CSS оформление select</title>
		<link>http://prootime.ru/select-css</link>
		<comments>http://prootime.ru/select-css#comments</comments>
		<pubDate>Sat, 15 Jan 2011 20:35:49 +0000</pubDate>
		<dc:creator>dzantiev</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Html]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Jquery]]></category>

		<guid isPermaLink="false">http://prootime.ru/?p=761</guid>
		<description><![CDATA[Есть наверное куча плагинов предоставляющие возможность изменения обычных select на необычные, или такие которые хотя бы отображались бы во всех браузерах одинаково. Но нам же это не интересно , сейчас попробуем сделать из обычного селекта необычный т.е. будет выглядеть примерно так: В демке представлено 4 селекта смотрим. ДЕМО ВЕРСИЯпосмотреть в действииСКАЧАТЬскачать на компьютер Вконтакте извините [...]]]></description>
			<content:encoded><![CDATA[<p>Есть наверное куча плагинов предоставляющие возможность изменения обычных select на необычные, или такие которые хотя бы отображались бы во всех браузерах одинаково. Но нам же это не интересно <img src='http://prootime.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  , сейчас попробуем сделать из обычного селекта необычный <span id="more-761"></span>т.е. будет выглядеть примерно так:</p>
<p align="center"><img src="http://prootime.ru/wp-content/uploads/2011/01/select1.png" alt="select css" title="select1" width="205" height="133" class="size-full wp-image-762" /></p>
<p>В демке представлено 4 селекта смотрим.</p>
<p><br/></p>
<div class="demo">
<a href="http://jsfiddle.net/axelru/QBHjY/21/embedded/result/" id="demo" target="blank">ДЕМО ВЕРСИЯ<br /><small>посмотреть в действии</small></a><a href="http://jsfiddle.net/axelru/QBHjY/21/" id="demo">СКАЧАТЬ<br /><small>скачать на компьютер</small></a>
</div>
<p><br/></p>
<p>Вконтакте извините я спер у вас оформление и цвета селекта <img src='http://prootime.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  .</p>
<p>Возьмем обычный select с несколькими option примерно вот:</p>
<pre class="prettyprint">
&lt;select id="ourselect1"&gt;
           &lt;option value="eee"&gt;Значение 19&lt;/option&gt;
           &lt;option value="222"&gt;Значение 18&lt;/option&gt;
           &lt;option value="444"&gt;Значение 17&lt;/option&gt;
           &lt;option value="123"&gt;Значение 16&lt;/option&gt;
           &lt;option value="122"&gt;Значение 15&lt;/option&gt;
           &lt;option value="113"&gt;Значение 14&lt;/option&gt;
           &lt;option value="124"&gt;Значение 13&lt;/option&gt;
&lt;/select&gt;
</pre>
<p>Обернем его в div с классом &#8220;sel_wrap&#8221;, в начале которого выстроим структуру нашего селекта дивами. Если представить это все дело на картинке то получится следующая картина:
</p>
<p align="center"><img src="http://prootime.ru/wp-content/uploads/2011/01/select-structure.png" alt="select-structure" title="select-structure" width="502" height="487" class="size-full wp-image-771" /></p>
<p>А код получится следующим:</p>
<pre class="prettyprint">
&lt;div class="sel_wrap"&gt;
    &lt;div class="sel_imul"&gt;
        &lt;div class="sel_selected"&gt;
            &lt;div class="selected-text"&gt;Значение 19&lt;/div&gt;&lt;div class="sel_arraw"&gt;&lt;/div&gt;
        &lt;/div&gt;
        &lt;div class="sel_options"&gt;
            &lt;div class="sel_option" value="eee"&gt;Значение 19&lt;/div&gt;
            &lt;div class="sel_option" value="222"&gt;Значение 18&lt;/div&gt;
            &lt;div class="sel_option" value="444"&gt;Значение 17&lt;/div&gt;
            &lt;div class="sel_option" value="123"&gt;Значение 16&lt;/div&gt;
            &lt;div class="sel_option" value="122"&gt;Значение 15&lt;/div&gt;
            &lt;div class="sel_option" value="113"&gt;Значение 14&lt;/div&gt;
            &lt;div class="sel_option" value="124"&gt;Значение 13&lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;
    &lt;select id="ourselect1"&gt;
        &lt;option value="eee"&gt;Значение 19&lt;/option&gt;
        &lt;option value="222"&gt;Значение 18&lt;/option&gt;
        &lt;option value="444"&gt;Значение 17&lt;/option&gt;
        &lt;option value="123"&gt;Значение 16&lt;/option&gt;
        &lt;option value="122"&gt;Значение 15&lt;/option&gt;
        &lt;option value="113"&gt;Значение 14&lt;/option&gt;
        &lt;option value="124"&gt;Значение 13&lt;/option&gt;
    &lt;/select&gt;
&lt;/div&gt;
</pre>
</p>
<p>Далее приступим к стилям. Естественно скрываем наш обычный селект, а структуру эмилирующую селект стилизуем как нам хочется:</p>
<pre class="prettyprint">
.sel_wrap{
    background:#efefef;
    margin-bottom:5px;
    padding:7px;
}
.sel_wrap select{
    display:none;
}
.sel_imul{
    width:300px;
}
.sel_imul .sel_selected{
    background:#fff;
    border:1px solid #bbb;
    padding:3px 6px;
    font-size:14px;
    font-family:Times;
    cursor:pointer;
    position:relative;
}
.sel_imul.act .sel_selected{
    background:#efefef;
}
.sel_selected .sel_arraw{
    height:100%;
    width:20px;
    background:url('http://bit.ly/gudLNa') 50% 50% no-repeat;
    position:absolute;
    top:0px;
    right:0px;
}
.sel_imul:hover .sel_selected .sel_arraw{
    background-color:#e0e0e0;
    border-left:1px solid #bbb;
}
.sel_imul.act .sel_selected .sel_arraw{
    background-color:#e0e0e0;
    border-left:1px solid #bbb;
}
.sel_imul .sel_options{
    background:#fff;
    border:1px solid #dbdbdb;
    border-top:none;
    overflow:auto;
    position:absolute;
    width:298px;
    display:none;
    z-index:10;
}
.sel_options .sel_option{
    padding:3px 4px;
    font-size:14px;
    font-family:Times;
    border:1px solid #fff;
    border-right:none;
    border-left:none;
}
.sel_options .sel_option:hover{
    border-color:#dbdbdb;
    cursor:pointer;
}
.sel_options .sel_option.sel_ed{
    background:#dbdbdb;
    border-color:#dbdbdb;
}

/*second variant*/
.sec .sel_imul{
    width:200px;
}
.sec .sel_imul .sel_selected{
    border:1px solid #C0CAD5;
}
.sel_imul.act .sel_selected{
    background:#fff;
}
.sec .sel_imul:hover .sel_selected .sel_arraw{
    background-color:#e1e8ed;
    border-left:1px solid #d2dbe0;
}
.sec .sel_imul.act .sel_selected .sel_arraw{
    background-color:#e1e8ed;
    border-left:1px solid #d2dbe0;
}
.sec .sel_imul .sel_options{
    background:#fff;
    border:1px solid #d2dbe0;
    width:198px;
}
.sec.overf .sel_imul .sel_options{
    height:100px;
}
.sec .sel_options .sel_option:hover, .sec .sel_options .sel_option.sel_ed{
    background:#587da1;
    border:1px solid #2a5883;
    color:#fff;
    cursor:pointer;
}
.sec .sel_imul .sel_selected .sel_arraw{
    background-image:url('http://vkontakte.ru/images/darr_dd_out.gif');
}

.sec.round .sel_imul .sel_selected{
    -webkit-border-radius:5px;
}
.sec.round .sel_imul .sel_selected .sel_arraw{
    -webkit-border-radius:0 5px 5px 0;
}
.sec.round .sel_imul .sel_options{
    -webkit-border-radius:0 0 5px 5px;
}
/*green*/
.sec.green .sel_imul .sel_selected{
    border-color:#FFAD99;
}
.sec.green .sel_imul:hover .sel_selected .sel_arraw,
.sec.green .sel_imul.act .sel_selected .sel_arraw{
    background-color:#FFD6CC;
    border-left:1px solid #FFAD99;
}
.sec.green .sel_options .sel_option:hover,
.sec.green .sel_options .sel_option.sel_ed{
    background:#FF9980;
    border:1px solid #FF704D;
    color:#fff;
    cursor:pointer;
}
</pre>
<p>Здесь уже стили предусматривающие работу javascript&#8217;а, и несколько типов селектов.
</p>
<p>Дальше приступим к <strong>javascript</strong>&#8216;у. Во первых сделаем так чтобы при клике на див эмулирующий select, открывался или закрывался список option&#8217;ов:</p>
<pre class="prettyprint">
$('.sel_imul').live('click', function() {

    $('.sel_imul').removeClass('act');
    $(this).addClass('act');

    if ($(this).children('.sel_options').is(':visible')) {

        $('.sel_options').hide();

    }
    else {

        $('.sel_options').hide();
        $(this).children('.sel_options').show();

    }

});
</pre>
</p>
<p>Теперь пишем событие которое будт менять значение обычного, скрытого, селекта и значение у эмулирующего селекта:</p>
<pre class="prettyprint">
$('.sel_option').live('click', function() {

    //меняем значение на выбранное
    var tektext = $(this).html();
    $(this).parent('.sel_options').parent('.sel_imul').children('.sel_selected').children('.selected-text').html(tektext);

    //активируем текущий
    $(this).parent('.sel_options').children('.sel_option').removeClass('sel_ed');
    $(this).addClass('sel_ed');

    //устанавливаем значение для селекта
    var tekval = $(this).attr('value');
    tekval = typeof(tekval) != 'undefined' ? tekval : tektext;
    $(this).parent('.sel_options').parent('.sel_imul').parent('.sel_wrap').children('select').children('option').removeAttr('selected').each(function() {
        if ($(this).val() == tekval) {
            $(this).attr('selected', 'select');
        }
    });
});
</pre>
</p>
<p>Ну еще напишем меленький код который будет закрывать селект при холостом клике, blur так зказать:</p>
<pre class="prettyprint">
var selenter = false;
$('.sel_imul').live('mouseenter', function() {
    selenter = true;
});
$('.sel_imul').live('mouseleave', function() {
    selenter = false;
});
$(document).click(function() {
    if (!selenter) {
        $('.sel_options').hide();
        $('.sel_imul').removeClass('act');
    }
});
</pre>
</p>
<p>Напишем функцию которая будет превращать из обычного селекта такой т.е. писать за нас код, назовем его <b>reselect()</b>:</p>
<pre class="prettyprint">
function reselect(select, addclass) {

    addclass = typeof(addclass) != 'undefined' ? addclass : '';

    $(select).wrap('&lt;div class="sel_wrap ' + addclass + '"/&gt;');

    var sel_options = '';
    $(select).children('option').each(function() {
        sel_options = sel_options + '&lt;div class="sel_option" value="' + $(this).val() + '"&gt;' + $(this).html() + '&lt;/div&gt;';

    });

    var sel_imul = '&lt;div class="sel_imul"&gt;\
                &lt;div class="sel_selected"&gt;\
                    &lt;div class="selected-text"&gt;' + $(select).children('option').first().html() + '&lt;/div&gt;\
                    &lt;div class="sel_arraw"&gt;&lt;/div&gt;\
                &lt;/div&gt;\
                &lt;div class="sel_options"&gt;' + sel_options + '&lt;/div&gt;\
            &lt;/div&gt;';

    $(select).before(sel_imul);

}
</pre>
<p>Здесь что то нормально не удается показать функцию, можете посмотреть ее в демке
</p>
<div class="demo">
<a href="http://jsfiddle.net/axelru/QBHjY/21/embedded/result/" id="demo" target="blank">ДЕМО ВЕРСИЯ<br /><small>посмотреть в действии</small></a><a href="http://jsfiddle.net/axelru/QBHjY/21/" id="demo">СКАЧАТЬ<br /><small>скачать на компьютер</small></a>
</div>
]]></content:encoded>
			<wfw:commentRss>http://prootime.ru/select-css/feed</wfw:commentRss>
		<slash:comments>49</slash:comments>
		</item>
		<item>
		<title>CSS хак для Google Chrome</title>
		<link>http://prootime.ru/chrome-hack</link>
		<comments>http://prootime.ru/chrome-hack#comments</comments>
		<pubDate>Sat, 18 Dec 2010 21:50:16 +0000</pubDate>
		<dc:creator>dzantiev</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Хаки]]></category>

		<guid isPermaLink="false">http://prootime.ru/?p=753</guid>
		<description><![CDATA[Очередной супер короткий пост, который будет посвящен одному единственному хаку для браузера Google Chrome, относительно новый браузер, но уже успел полюбиться многим, особенно за скорость работы. Так вот на днях мне понадобился хак для Хрома, который был найден, и я решил им поделиться с народом . Вот: @media all and (-webkit-min-device-pixel-ratio:0) { /*здесь стили для [...]]]></description>
			<content:encoded><![CDATA[<p>Очередной супер короткий пост, который будет посвящен одному единственному хаку для браузера Google Chrome, относительно новый браузер, но уже успел полюбиться многим, особенно за скорость работы. Так вот на днях мне понадобился хак для Хрома, который был найден<span id="more-753"></span>, и я решил им поделиться с народом <img src='http://prootime.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . Вот:</p>
<pre class="brush: css;">
@media all and (-webkit-min-device-pixel-ratio:0) {
  /*здесь стили для хрома*/
}
</pre>
<p>Единственное надо отметить что этот хак будет также работать и на Safari, так как у них один движок. Именно под хром так и не нашел хак, кто обладает информацией о таком хаке пишем в комментарии <img src='http://prootime.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://prootime.ru/chrome-hack/feed</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>Красивый input file</title>
		<link>http://prootime.ru/custumize-input-file</link>
		<comments>http://prootime.ru/custumize-input-file#comments</comments>
		<pubDate>Mon, 08 Nov 2010 20:13:20 +0000</pubDate>
		<dc:creator>dzantiev</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Html]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Jquery]]></category>

		<guid isPermaLink="false">http://prootime.ru/?p=742</guid>
		<description><![CDATA[Столкнулся с такой проблемой как input типа file, наверное все знают что он выглядит в разных браузерах по разному, и применять к нему какие то стили нету смыла так как они будут работать везде по разному. В общем цель сделать красивый выглядящий везде одинаково input типа file. Начнем с HTML, пытаться применить к инпуту стили [...]]]></description>
			<content:encoded><![CDATA[<p>Столкнулся с такой проблемой как input типа file, наверное все знают что он выглядит в разных браузерах по разному, и применять к нему какие то стили нету смыла так как они будут работать везде по разному. В общем цель сделать красивый выглядящий везде одинаково input типа file.<span id="more-742"></span><br />
Начнем с HTML, пытаться применить к инпуту стили даже не будем и искать Jquery плагин тоже, хотя можно было б найти наверно подходящий. Давайте просто сэмулируем внешний вид инпута, а при нажатии на симулированную кнопку будем пытаться javascript&#8217;ом открыть диалоговое окно выбора файла, а чтоб было лучше давайте расположим настоящий инпут над симулированной кнопкой &#8220;Обзор&#8221;, и сделаем его прозрачным, выглядеть это будет примерно так:<br />
<center><img src="http://prootime.ru/wp-content/uploads/2010/11/1img.jpg" alt="" title="1img" width="557" height="193" class="alignnone size-full wp-image-743" /></center><br />
Ну и разметка</p>
<pre class="prettyprint">
&lt;div class="f_imulation_wrap"&gt;
    &lt;div class="im_input"&gt;
        &lt;input type="text"/&gt;
    &lt;/div&gt;
    &lt;div class="im_button"&gt;
        &lt;span class="inptext"&gt;Обзор&lt;/span&gt;
        &lt;input type="file" id="imulated" size="30"/&gt;
    &lt;/div&gt;
&lt;/div&gt;
</pre>
<p>Теперь нужно как то расположить это правильно как я уже говорил &#8220;CSS&#8221;:</p>
<pre class="prettyprint">
.im_input{
    float:left;
}
.im_input input{
    border:1px solid #9f9f9f;
    padding:2px;
    font-size:12px;
    width:250px;
    margin-right:4px;
}
.im_button{
    width:60px;
    height:19px;
    overflow:hidden;
    background:#aeaeae;
    border:1px solid #949494;
    position:relative;
}
.im_button.act{
    background:#bfbfbf;
}
.inptext{
    font-size:13px;
    line-height:19px;
    margin-left:12px;
    position:absolute;
}
#imulated{
    width:60px;
    border:none;
    opacity:0;
    filter: alpha(opacity=0);
    padding:0px;
    margin:0px;
    position:absolute;
}
</pre>
<p>Сейчас наша штука выглядит так:<br />
<center><img src="http://prootime.ru/wp-content/uploads/2010/11/2img.jpg" alt="" title="2img" width="346" height="40" class="alignnone size-full wp-image-744" /></center><br />
В принципе все работает но при выборе файла текстовое поле слева остается пустым исправим это &#8220;Javascript&#8221;<br />
Будем при onchange настоящего инпута типа файл, менять значение текстового поля. Конечно будем использовать Jquery:</p>
<pre class="prettyprint">
$('#imulated').change(function(){

    $('.im_input input').val($(this).val());

});
</pre>
<p>Сделаем еще эффект при наведении для кнопки обзор, будем добавлять ему класс:</p>
<pre class="prettyprint">
$('#imulated').mouseover(function(){

    $('.im_button').addClass('act');
    $(this).css('cursor','pointer');

});

$('#imulated').mouseout(function(){

    $('.im_button').removeClass('act');

});
</pre>
<p>Простым Css это к сожалению не получиться потому что :hover для имулирующей кнопки не срабатывает так как над ним находится прозрачный input.<br />
Ну и последнее будем пробовать нажимать на инпут при нажатии на текстовое поле:</p>
<pre class="prettyprint">
$('.im_input input').click(function(){

    $('#imulated').trigger('click');

});
</pre>
<p>К сожалению работать эта функция будет только в хроме и в сафари так как при онклик в других браузерах на инпут типа файл не срабатывает диалоговое окно.</p>
<blockquote><p>Если вам нужно обменять валюту вам сюда -><a href="http://monitoring-obmenov.ru/">обмен валюты</a></p></blockquote>
<p>Ну и напоследок несколько видов того как он может выглядеть ото че то сероватый получился<br />
<center><img src="http://prootime.ru/wp-content/uploads/2010/11/3img.jpg" alt="" title="3img" width="346" height="140" class="alignnone size-full wp-image-745" /></center><br />
С фантазией у меня не очень так что дальше сами фантазируйте со стилями</p>
<div class="demo">
<a href="http://jsfiddle.net/axelru/yuSmP/11/" id="demo" target="blank">ДЕМО ВЕРСИЯ<br /><small>посмотреть в действии</small></a><a href="http://jsfiddle.net/axelru/yuSmP/11/" id="demo">СКАЧАТЬ<br /><small>скачать на компьютер</small></a>
</div>
]]></content:encoded>
			<wfw:commentRss>http://prootime.ru/custumize-input-file/feed</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Редактируемый список</title>
		<link>http://prootime.ru/editeble-list</link>
		<comments>http://prootime.ru/editeble-list#comments</comments>
		<pubDate>Sat, 25 Sep 2010 21:01:41 +0000</pubDate>
		<dc:creator>dzantiev</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Html]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Jquery]]></category>

		<guid isPermaLink="false">http://prootime.ru/?p=721</guid>
		<description><![CDATA[В этом уроке попробуем создать редактируемый список, то есть элементы списка можно будет перемещать вверх, вниз, а также удалять элементы списка. Внешне это все будет выглядеть примерно так: Конечно же будем использовать javascript также библиотеку jQuery, для перемещения элементов по списку. Ну а начнем как всегда с html. HTML Для начала создадим простой неупорядоченный список [...]]]></description>
			<content:encoded><![CDATA[<p>В этом уроке попробуем создать редактируемый список, то есть элементы списка можно будет перемещать вверх, вниз, а также удалять элементы списка. Внешне это все будет выглядеть примерно так:<span id="more-721"></span><br />
<center><img src="http://prootime.ru/wp-content/uploads/2010/09/img1.jpg" alt="uledit" title="img1" width="277" height="165" class="alignnone size-full wp-image-722" /></center><br />
Конечно же будем использовать javascript также библиотеку jQuery, для перемещения элементов по списку. Ну а начнем как всегда с html.</p>
<h2>HTML</h2>
<p>Для начала создадим простой неупорядоченный список с пару элементами:</p>
<pre class="prettyprint">
&lt;ul class="mylist"&gt;
	&lt;li&gt;1. Element1&lt;/li&gt;
	&lt;li&gt;2. Element2&lt;/li&gt;
	&lt;li&gt;3. Element3&lt;/li&gt;
&lt;/ul&gt;
</pre>
<p>Теперь нам надо как то структурировать наши элементы для для удобного обращения к ним через javascript, также создадим три кнопки вверх, вниз и кнопку удаления. После преобразований код элемента выглядит следующим образом:</p>
<pre class="prettyprint">
&lt;li&gt;
	&lt;span class="num"&gt;1.&lt;/span&gt;
	&lt;span class="subj"&gt;Element1&lt;/span&gt;

	&lt;div class="top"&gt;&lt;/div&gt;
	&lt;div class="bottom"&gt;&lt;/div&gt;
	&lt;div class="delete"&gt;&lt;/div&gt;
&lt;/li&gt;
</pre>
<p>Далее нужно проделать тоже самое со всеми элементами. Теперь наши элементы имеют следующую структуру:<br />
<center><img src="http://prootime.ru/wp-content/uploads/2010/09/img2.jpg" alt="editeble ul" title="editeble ul" width="600" height="200" class="alignnone size-full wp-image-723" /></center><br />
С html вроде все понятно давайте теперь приведем это все в божеский вид. Приступим к CSS.</p>
<h2>CSS</h2>
<p>Зададим списку какую нибудь ширину и расположим посередине, еще уберем отступы зададим фон в общем вот:</p>
<pre class="prettyprint">
.mylist{
    background:#eee;
    padding:0px;
    list-style:none;
    margin:0px;
    width:250px;
    margin:0px auto;
    border:1px solid #aaa;
    border-top:none;
  }
</pre>
<p>Дальше приступим к самим элементам списка, установим отступы (pdding), ну и какой нибудь эффект при наведении:</p>
<pre class="prettyprint">
.mylist li{
    border-top:1px solid #aaa;
    padding:4px 7px;
    overflow:hidden;
  }
.mylist li:hover{
    background:#bbb;
  }
</pre>
<p>Теперь уже приступим к содержимому самих элементов это два span&#8217;a и три div&#8217;a начнем со span&#8217;ов:</p>
<pre class="prettyprint">
.mylist .num{
    color:#000;
    width:30px;
    float:left;
  }
.mylist .subj{
    color:#444;
    width:150px;
    float:left;
  }
</pre>
<p>Цвет текста, ширины и float&#8217;a думаю достаточно, все таки это пост не о том как красивее оформить список <img src='http://prootime.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . Дальше приступим к div&#8217;ам , кнопкам, скроем их и будем показывать только при наведении на элемент списка, ну еще разукрасим в разные цвета чтоб они отличались, допустим кнопка вверх будет зеленым цветом, вниз &#8211; оранжевым, кнопка удаления &#8211; красным:</p>
<pre class="prettyprint">
.mylist div{
    visibility:hidden;
    cursor:pointer;
  }
.mylist li:hover div{
    visibility:visible;
  }
.mylist .top{
    height:17px;
    width:17px;
    float:left;
    background:green;
  }
.mylist .bottom{
    height:17px;
    width:17px;
    float:left;
    background:orange;
  }
.mylist .delete{
    height:17px;
    width:17px;
    float:left;
    background:red;
  }
</pre>
<p>Теперь мы имеем готовый стилизованный кое как список выглядящий вот так:<br />
<center><img src="http://prootime.ru/wp-content/uploads/2010/09/img3.jpg" alt="" title="img3" width="271" height="161" class="alignnone size-full wp-image-724" /></center><br />
Осталось написать javascript функции управления этим списком, приступим.</p>
<h2>Javascript</h2>
<p>Начнем раздел javascript чуть чуть не с javascript&#8217;a , я решил все таки вынести этот пункт сюда. Нашим кнопка следует прописать <b><i>onclck</i></b> равным функциям которые будут вызываться по нажатию на определенный тип кнопки. Вот список того кому че нужно прописывать:</p>
<ul>
<li>top &#8211; onclick=&#8221;move_top([здесь порядковый номер элемента в списке])&#8221;</li>
<li>bottom &#8211; onclick=&#8221;move_bottom([здесь порядковый номер элемента в списке])&#8221;</li>
<li>delete &#8211; onclick=&#8221;delete([здесь порядковый номер элемента в списке])&#8221;</li>
</ul>
<p>В итоге элемент, допустим второй будет выглядеть так:</p>
<pre class="prettyprint">
&lt;li class="li2"&gt;

  &lt;span class="num"&gt;2.&lt;/span&gt;
  &lt;span class="subj"&gt; Elemen2&lt;/span&gt;

  &lt;div class="top" onclick="move_top(2)"&gt;&lt;/div&gt;
  &lt;div class="bottom" onclick="move_bottom(2)"&gt;&lt;/div&gt;
  &lt;div class="delete" onclick="delete_li(2)"&gt;&lt;/div&gt;

&lt;/li&gt;
</pre>
<p>И наконец приступим к javascript&#8217;у для начала создадим функцию создания элемента входным параметрами которого будут порядковый номер элемента в списке и текст создаваемого элемента:</p>
<pre class="prettyprint">
function create_new_li(el_id,el_text){

    return '&lt;li class="li'+el_id+'"&gt;\
      \
      &lt;span class="num"&gt;'+el_id+'.&lt;/span&gt;\
      &lt;span class="subj"&gt; '+el_text+'&lt;/span&gt;\
      \
      &lt;div class="top" onclick="move_top('+el_id+')"&gt;&lt;/div&gt;\
      &lt;div class="bottom" onclick="move_bottom('+el_id+')"&gt;&lt;/div&gt;\
      &lt;div class="delete" onclick="delete_li('+el_id+')"&gt;&lt;/div&gt;\
      \
      \
    &lt;/li&gt;';  

}//end of the function create_new_li
</pre>
<p>Функция как вы заметили не создает а просто возвращает строку содержащую разметку нового элемента. Начнем написание функция которые мы прописывали для кнопок. Итак функция <b><i>move_top</i></b>:</p>
<pre class="prettyprint">
function move_top(el_id){

  if(el_id!=1){

    //узнаем ид верхнего li
    var top_li_id = el_id-1;

    //узнаем текст верхнего li
    var top_li_text = $('li.li'+top_li_id+' .subj').html();

    //удаляем верхний li
    $('li.li'+top_li_id).remove();

    //узнаем текст перемещаемого элемента
    var per_li_text = $('li.li'+el_id+' .subj').html();

    //создаем копию перемещаемого вверх элемента над ни же с другим ид
    var newli = create_new_li(top_li_id,per_li_text);
    $('li.li'+el_id).before(newli);

    //удаляем перемещаемый элемент
    $('li.li'+el_id).remove();

    //зодаем под до этого созданным элементом эелемент который был до этого над
    //перемещаемым вверх, создаем его с ид на 1 меньше
    var newli = create_new_li(el_id,top_li_text);
    $('li.li'+top_li_id).after(newli);

  }//end if

}//end of the function move_top
</pre>
<p>Вкратце как работает эта функция, она сперва удаляет элемент расположенный над перемещаемым, в данном случае вверх, и создает на его место копию своего элемента, но уже с другим порядковым номером и ид на один меньше, так как счет идет сверху вниз (ид и порядковый номер соводают точнее конец ид), затем она удаляет перемещаемый элемент и создает на его месте до этого удаленный элемент, опять же с другим ид (в этот раз на 1больше).<br />
Тперь разберемся с другой функцией, которая перемещает наоборот вниз <b><i>move_bottom</i></b>:</p>
<pre class="prettyprint">
function move_bottom(el_id){

   //узнаем количество элементов в списке
   var li_count = $('.mylist li').size();

   //проверяем не пытаемся ли мы сместить вниз последний элемент
   if(el_id!=li_count){

     //узнаем порядковый номер нижнего элемента
    var bot_li_id = el_id+1;

    //узнаем текст элемента расположенного под перемещаемым
    var bot_li_text = $('li.li'+bot_li_id+' .subj').html();

    //удаляем елемент расположенный под перемещаемым
    $('li.li'+bot_li_id).remove();

    //узнаем текст перемещаемого элемента
    var per_li_text = $('li.li'+el_id+' .subj').html();

    //создаем копию перемещаемого вниз элемента под ним же с другим ил +1
    var newli = create_new_li(bot_li_id,per_li_text);
    $('li.li'+el_id).after(newli);

    //удаляем перемещаемый элемент
    $('li.li'+el_id).remove();

    //создаем над созданным элементом копию элемнета котрый был расположен под
    //перемещаемым элементом
    var newli = create_new_li(el_id,bot_li_text);
    $('li.li'+bot_li_id).before(newli);

   }//end if

}//end function move_bottom
</pre>
<p>В принципе эта функция делает то же самое что и предыдущая только наоборот, даже описвать ниче не надо <img src='http://prootime.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> , комментариев тоже думаю достаточно.<br />
Ну и последняя фукция для кнопки удаления элемента <b><i>delete</i></b>:</p>
<pre class="prettyprint">
function delete_li(el_id){

  //узнаем количество элементов в списке
  var li_count = $('.mylist li').size();

  //если елемент не последний пересоздаем нижние элементы
  //с другими ид
  if(el_id!=li_count){

    //узнаем количество элементов после удаляемого
    var dif = li_count - el_id;

    //удаляем удаляемый элемент
    $('li.li'+el_id).remove();

    //копмруем порядковый номер удоля
    var count = el_id;

    //проходим циклом под элементам расположенныым под удаленным
    //и пересоздаем их
    for(i=1;i<=dif;i++){

      //узнаем порядковый номер следующего элемента
      var next_el = count*1 + 1;

      //узнаем текст следующего элемента
      var next_li_text = $('li.li'+next_el+' .subj').html();

      //пересоздаем элемент
      var newli = create_new_li(count,next_li_text);
      $('li.li'+next_el).before(newli);

      //удаляем элемент
      $('li.li'+next_el).remove();

      count++
    }

  }
  //если элемент последний просто удоляем его
  else{

    //удаляем элемент
    $('li.li'+el_id).remove();

  }//end else

}//end function delete_li
</pre>
<p>Функция сперва проверяет последний ли проверяемы элемент или нет, если последний просто удаляем его а если не последний удаляем элемент и пересоздаем нижние элементы с новыми порядковыми номерами.<br />
<a href="http://stavkisport.ru/">Прогнозы на спорт</a><br />
Вот и все вот и tutorial'у конец <img src='http://prootime.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . Смотрим тестируем комментируем -></p>
<div class="demo">
<a href="http://jsbin.com/adeco3/2" id="demo" target="blank">ДЕМО ВЕРСИЯ<br /><small>посмотреть в действии</small></a><a href="http://prootime.ru/demos/uledit/uledit.rar" id="demo">СКАЧАТЬ<br /><small>скачать на компьютер</small></a>
</div>
]]></content:encoded>
			<wfw:commentRss>http://prootime.ru/editeble-list/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CSS хаки для IE</title>
		<link>http://prootime.ru/css-hacks</link>
		<comments>http://prootime.ru/css-hacks#comments</comments>
		<pubDate>Sun, 12 Sep 2010 13:50:29 +0000</pubDate>
		<dc:creator>dzantiev</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Html]]></category>

		<guid isPermaLink="false">http://prootime.ru/?p=715</guid>
		<description><![CDATA[В этом маленьком уроке хочу показать вам как написать CSS стили которые будут работать только в IE6, IE7 или IE8. Эти хаки, которые я вам покажу, очень полезны особенно при появлении проблем с кроссбраузерностью. Никому не секрет что IE очень часто, криво отображает сайты которые во всех остальных браузерах работают нормально. Существует несколько видов CSS [...]]]></description>
			<content:encoded><![CDATA[<p>В этом маленьком уроке хочу показать вам как написать CSS стили которые  будут работать только в IE6, IE7 или IE8. Эти хаки, которые я вам покажу, очень полезны особенно при появлении проблем с кроссбраузерностью. Никому не секрет что IE очень часто, криво отображает сайты которые во всех остальных браузерах работают нормально<span id="more-715"></span>. Существует несколько видов CSS хаков, начнем с самых распространенных условных комментарий.</p>
<h2>Условные комментарии</h2>
<p>Условные комментарии работают только на IE под Windows для других браузеров это обычные HTML комментарии и они их игнорируют. Структура условных комментариев следующая:</p>
<pre class="brush: html;">
&lt;!--[if условие]&gt; HTML &lt;![endif]--&gt;
</pre>
<p>Условие в комментариях можно поставить довольно токи гибкое. Вот список операторов которые можно использовать в условии:</p>
<ul>
<li>! &#8211; отрицание</li>
<li>lt &#8211; меньше</li>
<li>gt &#8211; больше</li>
<li>lte &#8211; меньше или равно</li>
<li>gte &#8211; больше или равно</li>
</ul>
<p>Примерно так их надо использовать:</p>
<pre class="prettyprint">
&lt;!--[if gte IE 6]&gt;
	HTML код расположенный здесь будет работать только для браузеров IE6 и выше соответственно IE7, IE8
&lt;![endif]--&gt;
</pre>
<p>Наверное вы заметили что в списке нет оператора равно, а он и не нужен так как можно просто указать версию браузера в условии код между комментариями будет работать только для этого браузера:</p>
<pre class="prettyprint">
&lt;!--[if IE 6]&gt;
	HTML код расположенный здесь будет виден только для IE 6
&lt;![endif]--&gt;
</pre>
<p>Чаще всего условные комментарии используют для подключения стилей для определенного браузера, вот)). С условными комментариями вроде все. Далее рассмотрим хаки которые пишутся внутри самих стилей путем добавления звездочек и все такое.</p>
<h2>Хаки для IE6</h2>
<p>Первый способ это добавление знака подчеркивания(_) перед свойством тем самым это свойство будет восприниматься только IE6. Например так:</p>
<pre class="prettyprint">
body{
    _background:#ooo;
}
</pre>
<p>Второй способ добавление следующего кода вот этого *html перед селекторами тем самым теперь уже все свойства становятся видны для IE6 и ниже. Примерно так:</p>
<pre class="prettyprint">
*html body{
    background:#000;
}
</pre>
<h2>Хаки для IE7</h2>
<p>Для IE7 существует большое количество хаков все даже наверное не получиться рассмотреть, потому что я их все и не знаю <img src='http://prootime.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Ну начнем с хака который похож на последний рассмотренный хак для IE6, полоучается он путем добавления *+html перед селектором. Пример:</p>
<pre class="prettyprint">
*+html body{
    background:#000;
}
</pre>
<p>Следующий хак будет виден не только  IE7 , а наоборот всем современным браузерам кроме IE7 хак опять же добавляется в начало селектора. Пример:</p>
<pre class="prettyprint">
html>/**/body {
    background:#000;
}
</pre>
<p>Следующий хак опять же добавляется перед селектором после чего свойства работают только для IE7, но на мой взгляд он немножко громоздкий *:first-child+html вот собственно что нужно добавить перед селектором. Пример:</p>
<pre class="prettyprint">
*:first-child+html body{
    background:#000;
}
</pre>
<p>Хак который рассмотрим далее будет работать в IE7 и во всех современных браузерах, наверное такое тоже иногда бывает нужно <img src='http://prootime.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . Пример:</p>
<pre class="prettyprint">
html>body {
    background:#000;
}
</pre>
<p>Ну и последний хак для ie7, добавляем перед свойством звездочку и все чики пуки:</p>
<pre class="prettyprint">
body {
    *background:#000;
}
</pre>
<h2>Хак для IE8</h2>
<p>Для IE8 встречался только с одним хаком, не знаю может и существует другие если попадется обязательно дополню статью. Собственно хак:</p>
<pre class="prettyprint">
body {
 background: #000\0/;
}
/*свойство следует добавлять в последнюю очередь*/
</pre>
<p>Вот и все вроде как, если кто знаком еще с какими то хаками пишем в комментарии <img src='http://prootime.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://prootime.ru/css-hacks/feed</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Создание lightbox как в Facebook</title>
		<link>http://prootime.ru/facebook-like-lightbox</link>
		<comments>http://prootime.ru/facebook-like-lightbox#comments</comments>
		<pubDate>Sun, 05 Sep 2010 09:53:58 +0000</pubDate>
		<dc:creator>dzantiev</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Html]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Jquery]]></category>

		<guid isPermaLink="false">http://prootime.ru/?p=697</guid>
		<description><![CDATA[В этом уроке попробуем создать всплывающее окно(lightbox) как в Facebook, в котором можно будет размещать не только картинки но и любой другой контент, кто не видел фесбуковкий лайтбокс снизу показано: Будем конечно же использовать javascript как и в любых других lightbox&#8217;ах, но начнем мы с HTML и CSS. HTML &#038; CSS Для начала создадим div [...]]]></description>
			<content:encoded><![CDATA[<p>В этом уроке попробуем создать всплывающее окно(lightbox) как в Facebook, в котором можно будет размещать не только картинки но и любой другой контент, кто не видел фесбуковкий лайтбокс снизу показано:<span id="more-697"></span><br />
<center><img src="http://prootime.ru/wp-content/uploads/2010/09/Facebook-Pages-Popup-Box.jpg" alt="" title="Facebook-Pages-Popup-Box" width="510" height="314" class="alignnone size-full wp-image-704" /></center><br />
Будем конечно же использовать javascript как и в любых других lightbox&#8217;ах, но начнем мы с HTML и CSS.</p>
<h2>HTML &#038; CSS</h2>
<p>Для начала создадим div который покроет все окно, нужно для того чтобы задняя часть лайтбокса была неактивной, также мы сможем сделать ее темнее, ну это уже по желанию. Создаем:</p>
<pre class="prettyprint">
&lt;div id="gogo_overly"&gt;&lt;/div&gt;
</pre>
<p>Указываем для этого div&#8217;a следующие стили</p>
<pre class="prettyprint">
height:100%;
width:100%;
opacity:0.5;
position:fixed;
top:0;
z-index:100;
</pre>
<p>Тоесть указываем диву 100% ширину и высоту, фиксированное позиционирование чтоб при скроллинге он не съезжал, и указываем 100ый z-index можно было поставить и поменьше но для надежности 100 <img src='http://prootime.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  z-index помогает делать все остальные элементы у которых z-index меньше 100 неактивными точнее они будут активными но будут расположены нашим дивом и не будут кликабельными, а активными будут только те элементы у которых z-index больше 100 , а это будут элементы нашего лайтбокса&#8217;.<br />
Дальше собственно приступаем к созданию самого лайтбокса HTML будет примерно следующим- это четыре вложенных дива первые два для позиционирования по центру так удобней <img src='http://prootime.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  третий для эффекта прозрачных границ мы же хотим как в Facebook так как сами границы прозрачными не получиться седлать создаем этот третий див который будет больше последнего четвертого дива, и будет иметь прозрачный фон в итоге получиться такой эффект, ну и последний четвертый див в котором будет располагаться весь нужный контент. Естественно все дивы имеют разные ид:</p>
<pre class="prettyprint">
&lt;div id="gogo_wrap"&gt;
&lt;div id="gogo_box" class="gogobox" style="top:125px; width:522px;"&gt;
		&lt;div id="gogo_contant"&gt;
			&lt;div id="gogo_last_cont"&gt;
				&lt;h2 id="gogo_head"&gt;Загаовок лайтбокса&lt;/h2&gt;
				&lt;div id="gogo_must_change"&gt;
				Здесь будет контент
&lt;/div&gt;
&lt;div id="gogo_close_panel"&gt;
&lt;button name="close-gogo_box" id="close-gogo_box" onclick="close_gogo_box();"&gt;Закрыть&lt;/button&gt;
&lt;/div&gt;
			&lt;/div&gt;
		&lt;/div&gt;
	&lt;/div&gt;
&lt;/div&gt;
</pre>
<p>Стили для дива с ид gogo_box вытащили наружу для того чтобы в дальнейшем нам было удобней управлять шириной и расположением лайтбокса через javascript, ну это все потом, а сейчас приступим к CSS. Ну для первых двух дивов которые мы как я говорил создали для позиционирования указываем следующие стили:</p>
<pre class="prettyprint">
#gogo_wrap{
	height:0;
	left:0;
	overflow:visible;
	position:absolute;
	top:0;
	width:100%;
	z-index:101;
}
#gogo_box{
	height:0;
	margin:auto;
	overflow:visible;
	position:relative;
}
</pre>
<p>Далее стилизуем следующий див, а это див с id gogo_contant он должен иметь скругленные углы и прозрачный серый фон:</p>
<pre class="prettyprint">
#gogo_contant{
	-moz-border-radius:8px;
	-webkit-border-radius:8px;
	-border-radius:8px;
	background:none repeat scroll 0 0 rgba(163, 163, 163, 0.7);
	padding:10px;
}
</pre>
<p>Как видно мы указали 8 пиксельное скругление углов, и сделали прозрачный фон, а padding нужен для того чтобы в дальнейшем он был больше следующего дива и получился эффект прозрачных границ в нашем случае границы будут шириной 10px. Далее преходим к стилизации остальных элементов нашего lightbox&#8217;а. Самое главное нужно указать для следующего дива непрозрачный, белый фон:</p>
<pre class="prettyprint">
#gogo_last_cont{
	background:#fff;
}
h2#gogo_head{
	background:#829ACE;
	font-size:16px;
	font-weight:normal;
	padding:4px 6px;
	color:#fff;
	border-bottom:1px solid #333;
}
#gogo_close_panel{
	text-align:right;
	height:30px;
	border-top:1px solid #ccc;
	margin-top:4px;
}
button#close-gogo_box{
	border:1px solid #333;
	padding:3px;
	margin:3px 5px 3px 3px;
	background:#4B6EB9;
}
button#close-gogo_box:hover{
	color:#E6E6E6;
	cursor:pointer;
}
</pre>
<p>Вот и все со стилизацией мы закончили, в итоге у нас получилось то что показано снизу на картинке.<br />
<center><img src="http://prootime.ru/wp-content/uploads/2010/09/light-1.jpg" alt="" title="light-1" width="543" height="113" class="alignnone size-full wp-image-705" /></center></p>
<h2>Javascript</h2>
<p>Теперь давайте сделаем так чтобы эта вся штука появлялась по нажатию на что нибудь, допустим кнопку:</p>
<pre class="prettyprint">
&lt;button id="show_gogo_box"&gt;Открыть gogo_box&lt;/button&gt;
</pre>
<p>Теперь давайте сделаем функцию которая будет создавать на нашей странице наш lightbox для этого будем использовать Jquery подключаем его, допустим с гугловсого архива:</p>
<pre class="prettyprint">
&lt;script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.js" type="text/javascript" language="javascript"&gt;&lt;/script&gt;
</pre>
<p>Вот подключили, начинаем писать функцию сделаем ее чуточку гибкой так сказать, добавим возможность передавать функции заголовок и будущий контент содержащийся в лайтбоксе. Выглядит наша функция вот так:</p>
<pre class="prettyprint">
function create_gogo_box(title,contant){
		$("body").append('&lt;div id="gogo_wrap"&gt;\
			&lt;div id="gogo_box" class="gogobox" style="top:125px; width:522px;"&gt;\
				&lt;div id="gogo_contant"&gt;\
					&lt;div id="gogo_last_cont"&gt;\
						&lt;h2 id="gogo_head"&gt;'+title+'&lt;/h2&gt;\
						&lt;div id="gogo_must_change"&gt;\
						'+contant+'\
						&lt;/div&gt;\
						&lt;div id="gogo_close_panel"&gt;\
							&lt;button name="close-gogo_box" id="close-gogo_box" onclick="close_gogo_box();"&gt;Закрыть&lt;/button&gt;\
						&lt;/div&gt;\
					&lt;/div&gt;\
				&lt;/div&gt;\
			&lt;/div&gt;\
		&lt;/div&gt;\
		&lt;div id="gogo_overly"&gt;&lt;/div&gt;');
	}
</pre>
<p>Далее делаем так чтоб при клике на кнопку которую мы создали до этого, а она была с ид show_gogo_box, вызывалась наша функция:</p>
<pre class="prettyprint">
$('#show_gogo_box').click(function(){

	create_gogo_box('Здесь заголовок','Здесь контэнт')}

	);
</pre>
<p>Вот и все теперь осталось написать функцию для удаления лайтбокса со страницы, называться она должна close_gogo_box так как мы уже прописали ее для нашей кнопки, пишем:</p>
<pre class="prettyprint">
function close_gogo_box(){
	$('#gogo_wrap').remove();
	$('#gogo_overly').remove();
	}
</pre>
<p>Ну а вот так он будет выглядеть с картинкой:<br />
<center><img src="http://prootime.ru/wp-content/uploads/2010/09/screen2.jpg" alt="" title="screen2" width="541" height="378" class="alignnone size-full wp-image-708" /></center><br />
Вот теперь точно все.</p>
<div class="demo">
<a href="http://prootime.ru/demos/gogo-box" id="demo" target="blank">ДЕМО ВЕРСИЯ<br /><small>посмотреть в действии</small></a><a href="http://prootime.ru/demos/gogo-box/gogo-box.rar" id="demo">СКАЧАТЬ<br /><small>скачать на компьютер</small></a>
</div>
]]></content:encoded>
			<wfw:commentRss>http://prootime.ru/facebook-like-lightbox/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Создание календаря средствами PHP и CSS</title>
		<link>http://prootime.ru/calendar-php</link>
		<comments>http://prootime.ru/calendar-php#comments</comments>
		<pubDate>Fri, 27 Aug 2010 11:25:52 +0000</pubDate>
		<dc:creator>dzantiev</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Html]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://prootime.ru/?p=510</guid>
		<description><![CDATA[Сейчас мы попробуем сделать простенький календарь для сайта или еще для чего нибудь, не знаю ). Календарь будет не совсем простым можно будет переключатся между месяцами, а текущий день будет выделен среди других дней также другим цветом(красным) будут выделены выходные, правда только воскресения субботы я чето не стал выделять, ну это не важно. Так как [...]]]></description>
			<content:encoded><![CDATA[<p>Сейчас мы попробуем сделать простенький календарь для сайта или еще для чего нибудь, не знаю ). Календарь будет не совсем простым можно будет переключатся между месяцами, а текущий день будет выделен среди других дней также другим цветом(красным)<span id="more-510"></span> будут выделены выходные, правда только воскресения субботы я чето не стал выделять, ну это не важно.<br />
Так как календарь будет переключатся между месяцами мы должны это как то передавать например методом GET т.е. через url адрес. Также напишем для календаря простенькие CSS чтоб можно было смотреть)) так это календарь удобней всего оформить его в виде таблицы. Внешне календарь будет выглядеть примерно так:<br />
<center><img src="http://prootime.ru/wp-content/uploads/2010/06/witht-css.jpg" alt="cakendar witht-css" title="witht-css" width="600" class="alignnone size-full wp-image-521" /></center><br />
На PHP мы создадим две переменные $calendar_head и $calendar_body соответственно в $calendar_head мы будем записывать html код верхней части календаря т.е. название месяца, дни недели и две ссылки по краям для выбора месяца. А в $calendar_body будем сохранять остальной код то есть таблицу дней недели. Ниже на скрине показано:<br />
<center><img src="http://prootime.ru/wp-content/uploads/2010/06/witht-css-metki.jpg" alt="" title="witht-css-metki" width="600" height="232" class="alignnone size-full wp-image-526" /></center><br />
Теперь рассмотрим сам php код:</p>
<pre class="prettyprint">
// проверяем передали ли нам месяц и год
if(isset($_GET["ym"])){

	$year  = (int)substr($_GET["ym"], 0, 4);
	$month = (int)substr($_GET["ym"], 4, 2);

}
else{ // иначе выводить текущие месяц и год

	$month = date("m", mktime(0,0,0,date('m'),1,date('Y')));
	$year  = date("Y", mktime(0,0,0,date('m'),1,date('Y')));

}

$skip          = date("w", mktime(0,0,0,$month,1,$year)) - 1; // узнаем номер дня недели
if($skip < 0){
	$skip = 6;
}
$daysInMonth   = date("t", mktime(0,0,0,$month,1,$year));	// узнаем число дней в месяце
$calendar_head = '';	// обнуляем calendar head
$calendar_body = '';	// обнуляем calendar boday
$day = 1;	// для цикла далее будем увеличивать значение

for($i = 0; $i < 6; $i++){ // Внешний цикл для недель 6 с неполыми

	$calendar_body .= '&lt;tr&gt;';	// открываем тэг строки
	for($j = 0; $j < 7; $j++){	// Внутренний цикл для дней недели

		if(($skip > 0)or($day > $daysInMonth)){ // выводим пустые ячейки до 1 го дня ип после полного количства дней

			$calendar_body .= '&lt;td class="none"&gt;&nbsp;&lt;/td&gt;';
			$skip--;

		}
		else{

			if($j == 0)	// если воскресенье то омечаем выходной
				$calendar_body .= '&lt;td class="holiday"&gt;'.$day.'&lt;/td&gt;';
			else{	// в противном случае просто выводим день в ячейке
				if ((date(j)==$day)&#038;&#038;(date(m)==$month)&#038;&#038;(date(Y)==$year)){//проверяем на текущий день
					$calendar_body .= '&lt;td class="today"&gt;'.$day.'&lt;/td&gt;';
				}
				else{
					$calendar_body .= '&lt;td class="day"&gt;'.$day.'&lt;/td&gt;';
				   }
				 }
			$day++; // увеличиваем $day
		}

	}
	$calendar_body .= '&lt;/tr&gt;'; // закрываем тэг строки
}

// заголовок календаря
$calendar_head = '
  &lt;tr&gt;
	&lt;th colspan="2"&gt;&lt;a href="?ym='.date("Ym", mktime(0,0,0,$month-1,1,$year)).'"&gt;&laquo; Пред&lt;/a&gt;&lt;/th&gt;
  	&lt;th colspan="3"&gt;'.date("F, Y", mktime(0,0,0,$month,1,$year)).'&lt;/th&gt;
  	&lt;th colspan="2"&gt;&lt;a href="?ym='.date("Ym", mktime(0,0,0,$month+1,1,$year)).'"&gt;След &raquo;&lt;/a&gt;&lt;/th&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;th&gt;Понедельник&lt;/th&gt;
    &lt;th&gt;Вторник&lt;/th&gt;
    &lt;th&gt;Среда&lt;/th&gt;
    &lt;th&gt;Четверг&lt;/th&gt;
    &lt;th&gt;Пятница&lt;/th&gt;
    &lt;th&gt;Суббота&lt;/th&gt;
    &lt;th&gt;Воскресенье&lt;/th&gt;
  &lt;/tr&gt;';
</pre>
<p>Я думаю здесь уже нечего объяснять комментариев кажется достаточно, единственно я бы хотел пояснить почему 6 строк ведь недель в месяце всего четыре так вот, так как мы месяц начинаем выводить не с понедельника, то есть месяц не всегда начинается с понедельника, у нас появляются неполные недели и посчитав максимальное количество неполных и полных недель вы получите шесть недель вот поэтому и шесть). Но так как 6 недель встречаются не очень часто, то последняя строка в таблице чаще всего будет пустой.<br />
Далее осталось написать HTML код и вывести в нужных местах $calendar_head и $calendar_body, ну и прописать CSS стили. Рассмотрим содержание тега &lt;body&gt;:</p>
<pre class="prettyprint">
&lt;!-- таблица для вывода календаря --&gt;
&lt;table id="calendar" width="710" border="1" cellspacing="0" cellpadding="5"&gt;
	&lt;thead&gt;
		&lt;?php echo $calendar_head; ?&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
		&lt;?php echo $calendar_body; ?&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;!-- таблица для вывода календаря --&gt;
</pre>
<p>Как видим календарь состоит полностью из таблицы заголовка и тела. Теперь наш календарь выглядит примерно аот так:<br />
<center><img src="http://prootime.ru/wp-content/uploads/2010/06/without-css.jpg" alt="calendar without css" title="without-css" width="600" class="alignnone size-full wp-image-529" /></center><br />
То есть осталось прописать CSS стили, ну примерно вот такие:</p>
<pre class="prettyprint">
body{
	margin:0 auto;
	width:800px;
	padding:10px;
}
#calendar{
	border:0px;
}
#calendar tbody tr{
	height:40px;
}
#calendar td{
	width:80px;
	border:0px;
	border:solid 1px #99FF99;
	font-size:22px;
	text-align:center;
}
#calendar th{
	background-color:#4DDBFF;
	border:solid 1px #00CCFF;
	color:#ffffff;
}
#calendar td.none{
	border:0px;
}
#calendar td.holiday{
	background-color:#FF6633;
	border-color:#FF531A;
	color:#94E4FF;
}
.day{
	background-color:#CCFFCC;
	color:#00B32D;
}
#calendar td.today{
	background-color:#FFFF99;
	border-color:#FF531A;
}
</pre>
<p>Ну вот и все теперь календарь выглядит примерно так:<br />
<center><img src="http://prootime.ru/wp-content/uploads/2010/06/witht-css.jpg" alt="cakendar witht-css" title="witht-css" width="600" class="alignnone size-full wp-image-521" /></center><br />
Весь исходный код можете посмотреть <a href="http://gist.github.com/443457" target="blank">здесь</a></p>
<div class="demo">
<a href="http://prootime.ru/demos/calendar" id="demo" target="blank">ДЕМО ВЕРСИЯ<br /><small>посмотреть в действии</small></a><a href="http://prootime.ru/demos/calendar/calendar.rar" id="demo" target="blank">СКАЧАТЬ<br /><small>скачать на компьютер</small></a>
</div>
]]></content:encoded>
			<wfw:commentRss>http://prootime.ru/calendar-php/feed</wfw:commentRss>
		<slash:comments>19</slash:comments>
		</item>
		<item>
		<title>Как работает CSS позиционирование</title>
		<link>http://prootime.ru/css-position</link>
		<comments>http://prootime.ru/css-position#comments</comments>
		<pubDate>Tue, 03 Aug 2010 10:51:07 +0000</pubDate>
		<dc:creator>dzantiev</dc:creator>
				<category><![CDATA[CSS]]></category>

		<guid isPermaLink="false">http://prootime.ru/?p=656</guid>
		<description><![CDATA[Конечно позиционирование является одним из самых полезных инструментов дизайнеров. Однако существует несколько понятий в позиционировании которые могут помешать начинающим в его освоении. Что такое позиционирование Когда браузер открывает вашу страницу, он начинает читать элементы (дивы, параграфы, заголовки и т.д.) в порядке появления в HTML разметке страницы. Позиционирование это естественный способ организации отображения элементов. Существует четыре [...]]]></description>
			<content:encoded><![CDATA[<p>Конечно позиционирование является одним из самых полезных инструментов дизайнеров. Однако существует несколько понятий в позиционировании которые могут помешать начинающим в его освоении.<span id="more-656"></span></p>
<h2>Что такое позиционирование</h2>
<p>Когда браузер открывает вашу страницу, он начинает читать элементы (дивы, параграфы, заголовки и т.д.) в порядке появления в HTML разметке страницы. Позиционирование это естественный способ организации отображения элементов. Существует четыре типа позиционирования: static, relative, absolute и fixed.</p>
<h2>По умолчанию все элементы имеют позиционирование static</h2>
<p>Все элементы по умолчанию имеют статическим позицию. Статическое позиционирование означает, что каждый элемент расположен в естественном порядке.</p>
<h2>Относительное позиционирование (relative)</h2>
<p>Применение относительного позиционирования само по себе не имеет какой либо заметной разницы в том как элементы отображаются на странице. Но теперь вы можете переместить элемент с его нормального положения использую такие CSS свойства как: top, left, bottom и right.</p>
<pre class="brush: css;">
.relativeDiv{
	/*
		Сдвигаем div наверх и влево
		с его нормального места:
	 */
	position:relative;
	top:-50px;
	left:-100px;
}
</pre>
<blockquote><p><a href="http://mikser.name/">Блог о Drupal</a></p></blockquote>
<h2>Фиксированное позиционирование (fixed)</h2>
<p>Добавляя position:fixed в CSS стили элемента, он принимает позицию относительно окна браузера, то есть при прокрутке страницы элемент будет стоять на фиксированной позиции. Это позволяет показывать панели инструментов, панели навигации которые будут расположены на фиксированных местах при прокрутке страницы.</p>
<pre class="brush: css;">
.fixedDiv{
	/*
		Фиксируем div снизу в 20px
		от окна браузера:
	 */
	position:fixed;
	right:20px;
	bottom:20px;
}
</pre class="brush: css;">
Единственным недостатком этого позиционирования является то что оно не поддерживается старыми браузерами такими как IE6.
<h2>Абсолютное позиционирование (absolute)</h2>

Абсолютно позиционированный элемент отображается на относительно документа, или родительского элемента с позиционированием отличным от статического. Вы сможете применять к элементу top, left, bottom и right CSS свойства для для более точного позиционирования. Это позволяет центрировать дивы горизонтально и вертикально.
<pre class="brush: css;">
.parentDiv{
	/*
		Располагаем div в 50px справа и в 90px
		сверху от родительского элемента
	 */
	position:absolute;
	right:50px;
	top:90px;
}
</pre>
<p>Используя эти свойства позиционирования вы сможете создать страницы любого типа. Также использую такое CSS свойство как z-index вы сможете менять параметры наложения элементов.</p>
<div class="demo">
<a href="http://prootime.ru/demos/cssposition" id="demo" target="blank">ДЕМО ВЕРСИЯ<br /><small>посмотреть в действии</small></a><a href="http://prootime.ru/demos/cssposition/cssposition.rar" id="demo">СКАЧАТЬ<br /><small>скачать на компьютер</small></a>
</div>
]]></content:encoded>
			<wfw:commentRss>http://prootime.ru/css-position/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Красивая форма с использованием HTML5 и CSS3</title>
		<link>http://prootime.ru/html-form</link>
		<comments>http://prootime.ru/html-form#comments</comments>
		<pubDate>Mon, 05 Jul 2010 13:06:34 +0000</pubDate>
		<dc:creator>dzantiev</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Html]]></category>

		<guid isPermaLink="false">http://prootime.ru/?p=588</guid>
		<description><![CDATA[Стандартные формы обычно выглядят не очень, если не использовать CSS. Сейчас попробуем сделать форму использую новые технологии то есть HTML5 и CSS3. Обещаю вам что прочитав эту статью вы захотите украсить свои формы комментариев там или еще че нить че у вас не украшено, форму поиска например. Вот то что мы получим в итоге: HTML [...]]]></description>
			<content:encoded><![CDATA[<p>Стандартные формы обычно выглядят не очень, если не использовать CSS. Сейчас попробуем сделать форму использую новые технологии то есть HTML5 и CSS3. Обещаю вам что прочитав эту статью вы захотите украсить свои формы комментариев там или еще че нить че у вас не  украшено, форму поиска например.<span id="more-588"></span><br />
Вот то что мы получим в итоге:<br />
<center><img src="http://prootime.ru/wp-content/uploads/2010/07/final-form.jpg" alt="final-form" title="final-form" width="454" height="772" class="alignnone size-full wp-image-596" /></center></p>
<h3>HTML</h3>
<p>Как видно на картинке будем делать форму для оплаты какового нибудь товара.Начнем с html разметки. Форма будет разделена на три логические секции это:<br />
1. Личная инфомация о покупателе<br />
2. Адрес покупателя<br />
3. Информация о кредитной карточке<br />
Как я уже говорил будем использовать нововведения HTML5, в данном случае будем использовать новые атрибуты для input&#8217;ов для создания более удобной формы и как меньшего использования классов и идентификаторов.:<br />
1. <b>email</b> &#8211; для поля email&#8217;а<br />
2. <b>tel</b> &#8211; для поля телефона<br />
3. <b>number</b> &#8211; для поля кредитной карточки и капчи<br />
4. <b>required</b> &#8211; для обязательных полей<br />
5. <b>autofocus</b> &#8211; для автоматического фокуса после загрузки страницы<br />
В HTML5 ввели большое число новых атрибутов для input&#8217;ов и для форм в целом, можете посмотреть их <a href="http://www.w3.org/TR/html5/forms.html">зедсь</a><br />
Каждая секция будет находится в отдельном <b>fieldset</b>&#8216;е. Также используем упорядоченный список для группировки всех пар <b>label/input</b>. Это позволит нам более легко стилизавать форму. В итоге должно получиться следующее:<br />
<center><img src="http://prootime.ru/wp-content/uploads/2010/07/alpha-form.jpg" alt="alpha-form" title="alpha-form" width="367" height="661" class="alignnone size-full wp-image-599" /></center><br />
А вот его разметка, с которой мы будем дальше работать:</p>
<pre class="prettyprint">
  &lt;form id=payment&gt;
  &lt;fieldset&gt;
	  &lt;legend&gt;Your details&lt;/legend&gt;
	  &lt;ol&gt;
		  &lt;li&gt;
			  &lt;label for=name&gt;Name&lt;/label&gt;
			  &lt;input id=name name=name type=text placeholder="First and last name" required autofocus&gt;
		  &lt;/li&gt;
		  &lt;li&gt;
			  &lt;label for=email&gt;Email&lt;/label&gt;
			  &lt;input id=email name=email type=email placeholder="example@domain.com" required&gt;
		  &lt;/li&gt;
		  &lt;li&gt;
			  &lt;label for=phone&gt;Phone&lt;/label&gt;
			  &lt;input id=phone name=phone type=tel placeholder="Eg. +447500000000" required&gt;
		  &lt;/li&gt;
	  &lt;/ol&gt;
  &lt;/fieldset&gt;
  &lt;fieldset&gt;
	  &lt;legend&gt;Delivery address&lt;/legend&gt;
	  &lt;ol&gt;
		  &lt;li&gt;
			  &lt;label for=address&gt;Address&lt;/label&gt;
			  &lt;textarea id=address name=address rows=5 required&gt;&lt;/textarea&gt;
		  &lt;/li&gt;
		  &lt;li&gt;
			  &lt;label for=postcode&gt;Post code&lt;/label&gt;
			  &lt;input id=postcode name=postcode type=text required&gt;
		  &lt;/li&gt;
		  &lt;li&gt;
			  &lt;label for=country&gt;Country&lt;/label&gt;
			  &lt;input id=country name=country type=text required&gt;
		  &lt;/li&gt;
	  &lt;/ol&gt;
  &lt;/fieldset&gt;
  &lt;fieldset&gt;
	  &lt;legend&gt;Card details&lt;/legend&gt;
	  &lt;ol&gt;
			  &lt;li&gt;
			  &lt;fieldset&gt;
				  &lt;legend&gt;Card type&lt;/legend&gt;
				  &lt;ol&gt;
					  &lt;li&gt;
						  &lt;input id=visa name=cardtype type=radio&gt;
						  &lt;label for=visa&gt;VISA&lt;/label&gt;
					  &lt;/li&gt;
					  &lt;li&gt;
						  &lt;input id=amex name=cardtype type=radio&gt;
						  &lt;label for=amex&gt;AmEx&lt;/label&gt;
					  &lt;/li&gt;
					  &lt;li&gt;
						  &lt;input id=mastercard name=cardtype type=radio&gt;
						  &lt;label for=mastercard&gt;Mastercard&lt;/label&gt;
					  &lt;/li&gt;
				  &lt;/ol&gt;
			  &lt;/fieldset&gt;
		  &lt;/li&gt;
		  &lt;li&gt;
			  &lt;label for=cardnumber&gt;Card number&lt;/label&gt;
			  &lt;input id=cardnumber name=cardnumber type=number required&gt;
		  &lt;/li&gt;
		  &lt;li&gt;
			  &lt;label for=secure&gt;Security code&lt;/label&gt;
			  &lt;input id=secure name=secure type=number required&gt;
		  &lt;/li&gt;
		  &lt;li&gt;
			  &lt;label for=namecard&gt;Name on card&lt;/label&gt;
			  &lt;input id=namecard name=namecard type=text placeholder="Exact name as on the card" required&gt;
		  &lt;/li&gt;
	  &lt;/ol&gt;
  &lt;/fieldset&gt;
  &lt;fieldset&gt;
	&lt;button type=submit&gt;Buy it!&lt;/button&gt;
  &lt;/fieldset&gt;
  &lt;/form&gt;
</pre>
<h3>CSS</h3>
<p>Перед началом стилизации нашей формы нужно сбросить некоторые стили что бы все браузеры открывали одинаково:</p>
<pre class="prettyprint">
html, body, h1, form, fieldset, legend, ol, li {
	margin: 0;
	padding: 0;
	}

body {
	background: #ffffff;
	color: #111111;
	font-family: Georgia, "Times New Roman", Times, serif;
	padding: 20px;
	}
</pre>
<p>Далее будем стилизовать элементы формы которые находятся вне секций <b>fildset</b></p>
<pre class="prettyprint">
form#payment {
	background: #9cbc2c;
	-moz-border-radius: 5px;
	-webkit-border-radius: 5px;
	-khtml-border-radius: 5px;
	border-radius: 5px;
	counter-reset: fieldsets;
	padding: 20px;
	width: 400px;
	}
</pre>
<p>Теперь уберем границы с <b>fieldset</b>&#8216;ов и добавим снизу небольшой отступ. Используя псевдо класс :last-of-type уберем отступ с последнего <b>fieldset</b>&#8216;а.</p>
<pre class="prettyprint">
form#payment fieldset {
	border: none;
	margin-bottom: 10px;
	}

form#payment fieldset:last-of-type {
	margin-bottom: 0;
	}
</pre>
<p>Следующее что мы сделаем это стилизуем наши <b>legend</b>&#8216;ы седлаем их жирными и применим к ним светло синий <b>text-shadow</b> :</p>
<pre class="prettyprint">
form#payment legend {
	color: #384313;
	font-size: 16px;
	font-weight: bold;
	padding-bottom: 10px;
	text-shadow: 0 1px 1px #C1F7FF;
	}
</pre>
<p>Наши <b>legend</b> выглядят так скажем нормально, но как к ним добавить индикаторы того сколько шагов имеет наша форма? Вместо того чтобы вручную добавлять шаг к каждому <b>legend</b> мы можем использовать автоматически генерирующийся контент.<br />
Чтобы добавить счетчик к элементу, мы должны использовать или <b>:before</b> или <b>:after</b>. Будем следовать следующим шагам:<br />
1. Создадим счетчик использую свойство <b>counter-reset</b> для элемента <b>form</b><br />
2. Вызываем счетчик со свойством <b>content</b><br />
3. С помощью свойства <b>counter-increment</b> увеличиваем счетчик на 1</p>
<pre class="prettyprint">
form#payment > fieldset > legend:before {
	content: "Шаг " counter(fieldsets) ": ";
	counter-increment: fieldsets;
	}
</pre>
<p>Сейчас нам нужно изменить стили <b>legend</b> которая является частью <b>radio</b> группы, сделаем его похожим на <b>label</b>:</p>
<pre class="prettyprint">
form#payment > fieldset > legend:before {
	content: "Шаг " counter(fieldsets) ": ";
	counter-increment: fieldsets;
	}
</pre>
<p>Теперь стилизуем наш список, добавим некоторое скругление углов и прозрачность для фона и границ. Так как мы используем RGB цвета, мы должны добавить исключения для тех браузеров которые не поддерживают их:</p>
<pre class="prettyprint">
form#payment ol li {
	background: #71b8ff;
	background: rgba(255,255,255,.3);
	border-color: #c6e3ff;
	border-color: rgba(255,255,255,.6);
	border-style: solid;
	border-width: 2px;
	-moz-border-radius: 5px;
	-webkit-border-radius: 5px;
	-khtml-border-radius: 5px;
	border-radius: 5px;
	line-height: 30px;
	list-style: none;
	padding: 5px 10px;
	margin-bottom: 2px;
	}

form#payment ol ol li {
	background: none;
	border: none;
	float: left;
	}
</pre>
<p>Осталось стилизовать элементы <b>label</b>, <b>input</b> и <b>button</b><br />
Все <b>label</b> должны выглядеть одинаково, кроме <b>label</b>&#8216;а который прописан для элементов <b>radio</b>. Выравняем их по левому краю и придадим ширину.<br />
Для кнопок выбора кредитной карточки добавим иконки как фон. Для большей удобности формы добавим добавим <b>cursor:pinter</b> для рабио баттоонов при наведении мышки <b>:hover</b> то есть при наведении на радио кнопке курсор будет меняться на руку.</p>
<pre class="prettyprint">
form#payment label {
	float: left;
	font-size: 13px;
	width: 110px;
	}

form#payment fieldset fieldset label {
	background:none no-repeat left 50%;
	line-height: 20px;
	padding: 0 0 0 30px;
	width: auto;
	}

form#payment label[for=visa] {
	background-image: url(visa.gif);
	}
form#payment label[for=amex] {
	background-image: url(amex.gif);
	}
form#payment label[for=mastercard] {
	background-image: url(mastercard.gif);
	}

form#payment fieldset fieldset label:hover {
	cursor: pointer;
	}
</pre>
<p>Теперь стилизуем все <b>input</b> кроме инпутов типа <b>radio</b> для этого используем псевдо класс исключения <b>:not()</b>. С его помощью мы можем прописать стили для всех инпутов и исключить инпуты типа <b>radio</b>.</p>
<pre class="prettyprint">
form#payment input:not([type=radio]),
form#payment textarea {
	background: #ffffff;
	border: none;
	-moz-border-radius: 3px;
	-webkit-border-radius: 3px;
	-khtml-border-radius: 3px;
	border-radius: 3px;
	font: italic 13px Georgia, "Times New Roman", Times, serif;
	outline: none;
	padding: 5px;
	width: 200px;
	}

form#payment input:not([type=submit]):focus,
form#payment textarea:focus {
	background: #eaeaea;
	}

form#payment input[type=radio] {
	float: left;
	margin-right: 5px;
	}
</pre>
<p>Осталось поменять <b>button</b>. Добавим к его тексту тень, и сделаем какой нить эффект при наведении.</p>
<pre class="prettyprint">
form#payment button {
	background: #62C5FF;
	border: none;
	-moz-border-radius: 20px;
	-webkit-border-radius: 20px;
	-khtml-border-radius: 20px;
	border-radius: 20px;
	color: #ffffff;
	display: block;
	font: 18px Georgia, "Times New Roman", Times, serif;
	letter-spacing: 1px;
	margin: auto;
	padding: 7px 25px;
	text-shadow: 0 1px 1px #C1F7FF;
	text-transform: uppercase;
	}

form#payment button:hover {
	background: #8BE0FF;
	cursor: pointer;
	}
</pre>
<p>Вот и все. Форма будет выглядеть одинаково не во всех браузерах так не все браузеры поддерживают все своиства которые мы здесь использовали.</p>
<div class="demo">
<a href="http://prootime.ru/demos/html-form" id="demo" target="blank">ДЕМО ВЕРСИЯ<br /><small>посмотреть в действии</small></a><a href="http://prootime.ru/demos/html-form/form.rar" id="demo" target="blank">СКАЧАТЬ<br /><small>скачать на компьютер</small></a>
</div>
]]></content:encoded>
			<wfw:commentRss>http://prootime.ru/html-form/feed</wfw:commentRss>
		<slash:comments>26</slash:comments>
		</item>
		<item>
		<title>Выделение заглавных букв</title>
		<link>http://prootime.ru/php-the-first-letter-capitalized</link>
		<comments>http://prootime.ru/php-the-first-letter-capitalized#comments</comments>
		<pubDate>Thu, 24 Jun 2010 15:26:50 +0000</pubDate>
		<dc:creator>dzantiev</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Html]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://prootime.ru/?p=561</guid>
		<description><![CDATA[Выделение первых букв используют очень многие дизайнеры, они могут иметь другой шрифт, другой цвет, или даже быть картинкой вместо буквы. В этом уроке мы попытаемся выделить первые буквы параграфов использую HTML разметку, CSS стили, а затем попробуем автоматизировать процесс с помощью PHP функции. HTML Для того чтобы выделить первую букву параграфа, мы должны обернуть его [...]]]></description>
			<content:encoded><![CDATA[<p>Выделение первых букв используют очень многие дизайнеры, они могут иметь другой шрифт, другой цвет, или даже быть картинкой вместо буквы. В этом уроке мы попытаемся выделить первые буквы параграфов использую HTML разметку, CSS стили, а затем попробуем автоматизировать процесс с помощью PHP функции.<span id="more-561"></span></p>
<blockquote><p>HTML</p></blockquote>
<p>Для того чтобы выделить первую букву параграфа, мы должны обернуть его в специальный HTML элемент к которому мы затем сможем применять некоторые CSS стили. Для этого я собираюсь использовать простой <strong>span</strong> элемент с классом <strong>initialcap</strong>. Результат будет выглядеть примерно так:</p>
<pre class="brush: html;">
<span class="initialcap">П</span>ервая буква текст текст текст, ...
</pre>
<p>Только не повторяйте букву после <strong>span</strong>&#8216;a</p>
<blockquote><p>
CSS</p></blockquote>
<p>Пришло время для написания CSS стилей, но для начала условимся что наш параграф имеет размер шрифта 14 пикселей, и высоту строки в 18 пикселей.<br />
1.Сдвинем нашу первую букву влево, что бы  весь текст параграфа обтекал его</p>
<pre class="brush: css;">
span.initialcap{
    float: left;
}
</pre>
<p>2. Применим к нему размер шрифта 40 пикселей и высоту строки в 35 пикселей, чтобы буква отличалась от остального текста.</p>
<pre class="brush: css;">
span.initialcap{
    float: left;

    font-size: 40px;
    line-height: 35px;
}
</pre>
<blockquote><p><a href="http://realcode.ru/">Каталог исходников.</a></p></blockquote>
<p>3. Ну и применим к нашей букве шрифт <strong>Serif</strong>, синий цвет и добавим маленькое пространство справа.</p>
<pre class="brush: css;">
span.initialcap{
    float: left;

    font-size: 40px;
    line-height: 35px; 

    font-family: Georgia, "Times New Roman", Times, serif;
    color: #2583ad; /* синий */
    padding-right: 5px;
}
</pre>
<blockquote><p>Автоматизация</p></blockquote>
<p>Ну а теперь последний этап урока  автоматизация всего того что мы делали с помощью конечно же PHP. Вы же не будете каждый раз вручную прописывать <strong>span</strong> с классом. Эта функция поможет этого не делать:</p>
<pre class="brush: php;">
function wpguy_initial_cap($content){

    $searchfor = '/&gt;(&lt;a [^&gt;]+&gt;)?([^&lt;s])/';

    $replacewith = '&gt;$1&lt;span class="initialcap"&gt;$2&lt;/span&gt;';

    $content = preg_replace($searchfor, $replacewith, $content, 1);

    return $content;
}
</pre>
<p>Поясним как работает функция. Во первых ей нужно передать контент в котором нужно выделить первую букву, функция находит ее благодаря регулярным выражениям и оборачивает ее в наш <strong>span</strong> с классом <strong>initialcap</strong>, ну и возвращает обратно уже отформатированный контент.<br />
Для того чтобы воспользоваться этой функцией на своем сайте нужно просто при выводе контента проводить через эту функцию, не забыв перед этим прописать стили.</p>
]]></content:encoded>
			<wfw:commentRss>http://prootime.ru/php-the-first-letter-capitalized/feed</wfw:commentRss>
		<slash:comments>22</slash:comments>
		</item>
	</channel>
</rss>

