Статьи

CSS, вертикальное выравнивание текста с Flexbox

Люди уже давно летают в космос, но до сих пор не умеют нормально выравнивать текст по вертикали в CSS.

Казалось бы, во времена таблиц и ячеек это было легко, присваиваешь атрибуту valign значение middle и в ячейке текст выровнен. Затем пришли эти, так любимые всеми div-ы и пришлось начать использовать костыли. Но время, вроде как, не стоит на месте и скоро всех нас ждет радость и облегчение – мы начнем использовать Flexbox.

Как же выравнять блоки по вертикали? Все просто:

HTML:

<div class="flexbox-wrapper">
    <div>Lorem ipsum dolor sit...</div>
    <div>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed ad rem redeamus; Quamquam non negatis nos intellegere quid sit voluptas, sed quid ille dicat. Non quam nostram quidem, inquit Pomponius iocans; Laelius clamores sofòw ille so lebat Edere compellans gumias ex ordine nostros.</div>
</div>

CSS:

.flexbox-wrapper {
    display: -webkit-flex;
    display: -ms-flex;
    display: flex;
    -webkit-align-items: center;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
}

.flexbox-wrapper > div {
  width: 50%;
}

Ну и ДЕМО для порядка.

26 января 2015
33 тыс.
1 мин

Как заработать на мобильных фотографиях

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

Со временем снимков становится много, при этом каждый кажется шедевром. Если ощущение важности каждого кадра не покидает, то можно попробовать продавать эти фотографии.

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

23 января 2015
4.9 тыс.
4 мин

Умные часы Pebble Steel

Дали мне тут попользовать часы умные. Те самые Pebble, которые громко звенели на Kickstarter и собрали какую-то безбожную сумму денег на производство. Мне в тесты попала вторая модель, за названием Pebble Steel. Почему Steel, я так и не понял, ремешок-то кожаный, хотя вариант с металлическим ремешком также имеется.

20 января 2015
5 тыс.
6 мин

Тбилиси, Грузия

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

31 декабря 2014
5.1 тыс.
3 мин

Кутаиси, Грузия

Грузия - одна из немногих стран бывшего Советского Союза, не имеющая финансовой зависимости от России. Это отражается на многих факторах жизни. Это также являлось одной из предпосылок моего посещения этой страны.

30 декабря 2014
4.2 тыс.
3 мин

Кто еще страдает из-за правительства

За 20 лет непонятной экономической политики мы (граждане Беларуси) уже не первый раз сталкиваемся с ситуацией, когда правительство громко заявляет, а, на самом деле, все эти заявления выглядят как пук в воду. Вот и на этот раз, нам обещали светлое будущее и твердый рубль, а теперь под видом 30-процентного налога прячут девальвацию белорусского рубля.

Почему это беспокоит именно меня? Да потому, что моя зароботная плата привязана к курсу доллара. Если бы курс вырос на 30 процентов, я бы не обратил на это внимания, но а теперь моя зарплата в реальном долларовом эквиваленте стала на 30 процентов меньше.

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

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

21 декабря 2014
3.5 тыс.
1 мин

Минск в конце 1980-х – начале 1990-х

Полазил в интернете и нашел чуть-чуть снимков Минска 80-х – 90-х годов. Очень интересно на самом деле.

13 декабря 2014
16.5 тыс.
16 сек

Что не так у tut.by и «дневников солдата»

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

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

Если внимательно читать стаьи, то можно заметить, что вместе с Антоном Суряпиным (автором дневников) в части иногда присутствует фотограф тутбая. Становится понятно, что написание этих статей было согласовано с начальством воинской части, а те в свою очередь получили согласие из Министерства обороны. А это значит, что будут предприняты все меры, чтобы журналист не увидел той настоящей армии, которая существует в нашей стране.

Могу точно сказать, что он не увидит:

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

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

07 декабря 2014
3.6 тыс.
1 мин

Всплывающие подсказки на CSS

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

Многие для такого рода функцилнала используют различные JavaScript библиотеки. Но зачем? Достаточно только CSS с псевдо-элементами и использования значения аттрибутов в них.

Сразу скажу, что поддержка у всех этих фич есть, начиная с Internet Explorer 8.

Теперь код.

<abbr 
    data-title="Белорусская Федерация Компьютерного Спорта" 
    class="popover">
        БФКС
</abbr>

В данном примере я использовал тэг abbr, но использовать можно абсолютно любой, какой вам нравится.

В аттрибуте data-title хранится текст всплывающей подсказки, а класс popover необходим для написания стилей.

abbr {
  font: 16px 'Trebuchet MS';
  border-bottom: 1px dashed #666;
}
.popover {
  position: relative;
}
.popover:after {
  display: inline-block;
  font-size: 8px;
  content: '?';
  vertical-align: top;
  margin-left: 10px;
}
.popover:before {
  display: none;
  position: absolute;
  left: 0;
  top: 100%;
  background-color: #000;
  color: #fff;
  content: attr(data-title);
  padding: 5px;
  border-radius: 4px;
}
.popover:hover:before{
  display: block;
}

Здесь внимания заслуживает только вот этот псевдо-элемент .popover:before, а конкретнее строка content: attr(data-title). В не мы указываем, что хотим, чтобы содержимым content нашего :before было значение аттрибута data-titleattr(data-title);

05 декабря 2014
4.9 тыс.
1 мин

JavaScript: изображения в base64, имея только url

Периодически возникает необходимость дать пользователю работать с веб-сайтом / веб-аппом без интернета. Тут на помощь разработчику приходят всякие браузерные хранилища: localStorage, WebSQL, IndexedDB. И если хранить текстовую информацию легко, то как быть с изображениями? Зачастую из API приходит только ссылка на фотографию или картинку. Один из способов конвертировать изображение в base64 и хранить это код, вставляя его потом в аттрибут src нашего тега img. Вот небольшая функция, которая делает такую конвертацию:

function saveImage(url) {
    var img = document.createElement("img");
    img.src = url;
    img.onload = function() {
        var key = encodeURIComponent(url),
            canvas = document.createElement("canvas");

        canvas.width = img.width;  
        canvas.height = img.height;  
        var ctx = canvas.getContext("2d");  
        ctx.drawImage(img, 0, 0);
        localStorage.setItem(key, canvas.toDataURL("image/png"));
    }
}

Она конвертирует изображения в base64-код, используя canvas, затем сохраняет его в localStorage с ключем key. key – это наш адрес изображения (url). Теперь в любой момент мы можем достать нашу картинку из локального хранилища и показать пользователю. Интернет для этого не нужен.

18 ноября 2014
10.4 тыс.
1 мин