азы css — CSS Guru http://starhack.ru Верстка сайтов, использование CSS, Javascript, jQuery, веб-разработка Wed, 03 May 2017 12:37:56 +0000 ru-RU hourly 1 https://wordpress.org/?v=5.7.7 Firefox, button and flexbox http://starhack.ru/firefox-button-and-flexbox/ http://starhack.ru/firefox-button-and-flexbox/#respond Mon, 23 May 2016 10:59:50 +0000 http://starhack.ru/?p=993 Читать далее Firefox, button and flexbox]]> Как интересно! Если вы хотите красиво расположить внутри кнопки несколько элементов, используя чудную технологию flexbox, то вас может ждать неприятный сюрприз. Внутри элемента button в Firefox 46.0.1 (в других не проверял) flexbox не работает :(
Как это хотелось бы видеть и как это выглядит в Хроме и даже в �?Е11:
flexbox внутри button в Хроме
�? как это в Firefox:
flexbox внтури кнопки в Firefox

See the Pen eZqEGy by Sergey Kirichenko (@oknechirik) on CodePen.

P.S. Для себя эту проблему решил, обернув содержимое кнопки div’ом.
P.P.S. �? баг есть такой.

Update: проблема решена в Firefox 52!!!

]]>
http://starhack.ru/firefox-button-and-flexbox/feed/ 0
Скрол, что не останавливается http://starhack.ru/skrol-chto-ne-ostanavlivaetsya/ http://starhack.ru/skrol-chto-ne-ostanavlivaetsya/#respond Thu, 26 Nov 2015 11:41:57 +0000 http://starhack.ru/?p=966 Если вы хотите, чтобы на устройствах с тачскрином скроллинг не останавливался, когда вы прекращаете скролить (отрываете палец от экрана), а продолжался ещё некоторое время, используйте свойство -webkit-overflow-scrolling.

У него есть два значения: auto и touch. �? если вам нужно описанное выше поведение, используйте значение touch.

.box {
    -webkit-overflow-scrolling: touch;
}
]]>
http://starhack.ru/skrol-chto-ne-ostanavlivaetsya/feed/ 0
О сколько нам открытий чудных :) http://starhack.ru/o-skolko-nam-otkrytij-chudnyx/ http://starhack.ru/o-skolko-nam-otkrytij-chudnyx/#respond Tue, 09 Sep 2014 07:45:53 +0000 http://starhack.ru/?p=926 Только что узнал о замечательном псевдоэлементе ::-ms-clear. Он задаёт стиль кнопки для очистки текстового поля в браузерах семейства IE.
P.S. Не является стандартом.

]]>
http://starhack.ru/o-skolko-nam-otkrytij-chudnyx/feed/ 0
Flexbox и растягивание вложенных элементов на всю ширину родителя http://starhack.ru/flexbox-i-rastyagivanie-vlozhennyx-elementov-na-vsyu-shirinu-roditelya/ http://starhack.ru/flexbox-i-rastyagivanie-vlozhennyx-elementov-na-vsyu-shirinu-roditelya/#comments Tue, 19 Aug 2014 13:34:38 +0000 http://starhack.ru/?p=916 Если хотите, чтобы вложенные элементы, так сказать flex-items, заняли всю ширину родителя (если у вас flex-direction: row) или по высоте (если flex-direction: column), пропишите им свойство flex-grow, отличное от 0 (нуля), что задано по умолчанию.
P.S. Flexbox нереально крут :) Очень удобный инструмент для создания разметки. Вовсю стал его использовать только недавно.

]]>
http://starhack.ru/flexbox-i-rastyagivanie-vlozhennyx-elementov-na-vsyu-shirinu-roditelya/feed/ 2
Retina и фоновые картинки http://starhack.ru/retina-i-fonovye-kartinki/ http://starhack.ru/retina-i-fonovye-kartinki/#respond Mon, 18 Aug 2014 08:17:26 +0000 http://starhack.ru/?p=914 Читать далее Retina и фоновые картинки]]> Вопрос уже достаточно изученный, но до недавнего времени мне не приходилось подстраиваться под ретину. Самый простой рецепт это использовать такую запись:

@media only screen and (min--moz-device-pixel-ratio: 2),
only screen and (-o-min-device-pixel-ratio: 2/1),
only screen and (-webkit-min-device-pixel-ratio: 2),
only screen and (min-device-pixel-ratio: 2) {
    .class {
        background-image: url(retina_image);
    }
}

Вероятно я не был внимателен, читая этот рецепт. Оказалось, что недостаточно подпихнуть ретине картинку с удвоенным разрешением. Обязательным является прописывание свойства background-size. Например, так:

@media only screen and (min--moz-device-pixel-ratio: 2),
only screen and (-o-min-device-pixel-ratio: 2/1),
only screen and (-webkit-min-device-pixel-ratio: 2),
only screen and (min-device-pixel-ratio: 2) {
    .class {
        background-image: url(retina_image);
        background-size: contain;
    }
}

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

background-size: 100px 100px;

Как-то так:)

]]>
http://starhack.ru/retina-i-fonovye-kartinki/feed/ 0
Bootstrap и универсальный селектор * http://starhack.ru/bootstrap-i-universalnyj-selektor/ http://starhack.ru/bootstrap-i-universalnyj-selektor/#respond Sat, 26 Oct 2013 11:47:53 +0000 http://starhack.ru/?p=854 Читать далее Bootstrap и универсальный селектор *]]> Есть в CSS универсальный селектор. Он позволяет выбрать все элементы на странице или же все элементы, вложенные в какой-либо другой, например:

* {
margin: 0;
padding: 0;
}

Эта запись обнуляет все отступы у всех элементов на странице. �?ли же так:


.classname * {
    color: red;
}

Так мы задаем красный цвет всем элементам, вложенным в блок с классом classname.
Первый вариант раньше был весьма популярен для глобального так называемого reset’а.
Но у универсального селектора есть недостаток — низкая производительность. �? сейчас не рекомендуется использовать такой селектор. Для reset’а стилей в браузерах сейчас принято использовать различные варианты, например такой, как используется в шаблоне html5boilerplate.
Каково же было мое удивление обнаружить вот такую запись


*,
*:before,
*:after {
  -webkit-box-sizing: border-box;
     -moz-box-sizing: border-box;
          box-sizing: border-box;
}

в очень популярном сейчас фреймворке, как Bootstrap. Мало того, что здесь использован универсальный селектор, так здесь ещё происходит глобальная перезагрузка боксовой модели CSS. На моей практике необходимость переключать боксовую модель возникала не очень часто и для весьма ограниченного набора элементов. В Bootstrap же без этого правила не будет работать даже их сетка (grid).
Я уважаю опыт и знания разработчиков Bootstrap и последнее время часто использую их наработки, но в этом случае я совершенно с ними не согласен. �? настоятельно не рекомендую использовать это стилевое правило.
Лучшим вариантом было бы добавить в таблицу стилей отдельные классы, например:


.border-box {
  -webkit-box-sizing: border-box;
     -moz-box-sizing: border-box;
          box-sizing: border-box;
}
.border-box__before:before {
  -webkit-box-sizing: border-box;
     -moz-box-sizing: border-box;
          box-sizing: border-box;
}
.border-box__after:after {
  -webkit-box-sizing: border-box;
     -moz-box-sizing: border-box;
          box-sizing: border-box;
}
.border-box__all,
.border-box__all:before
.border-box__all:after {
  -webkit-box-sizing: border-box;
     -moz-box-sizing: border-box;
          box-sizing: border-box;
}

Я намеренно разделил правила на отдельные классы, потому как не всегда будет необходимость обрабатывать элементы и псевдо-элементы одинаково.
В общем, я сильно удивлен решением разработчиков Bootstrap.
P.S. Справедливости ради отмечу, что на стартовой странице Bootstrap’а указана эта особенность фреймворка.

]]>
http://starhack.ru/bootstrap-i-universalnyj-selektor/feed/ 0
CSS3 selectors. Частный случай http://starhack.ru/css3-selectors-chastnyj-sluchaj/ http://starhack.ru/css3-selectors-chastnyj-sluchaj/#respond Sun, 01 Sep 2013 09:29:22 +0000 http://starhack.ru/?p=834 Читать далее CSS3 selectors. Частный случай]]> Люблю, знаете ли, селекторы в CSS3. Позволяют делать очень удобные штуки.
Вот, например, есть блок с иконками, расстояния между которыми не одинаковые (лого соц.сетей). Можно было бы каждой иконке дать свой класс, чтобы регулировать расстояния. Но я воспользовался селектором, проверяющим наличие строки в атрибуте элемента, а именно:

E[foo*="bar"]

Я проверял атрибут SRC у тега IMG для иконки Фейсбука, назвав иконку fb.png. Получилось что-то в этом роде:

img[src*="/assets/i/ico/fb.png"]

Таким образом, не имея доступа в шаблон, есть возможность с легкостью менять отображение документа. Для, собственно, CSS и предназначен)

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

]]>
http://starhack.ru/css3-selectors-chastnyj-sluchaj/feed/ 0
Файрфокс и Input type = file http://starhack.ru/firefox-i-input-type-file/ Wed, 26 Jan 2011 21:00:24 +0000 http://starhack.ru/?p=573 Крик души просто. Ну почему input type="file" в файрфоксе сколько его помню не реагирует на указание размера через стили, только через атрибут size самого элемента input. WTF!

]]>
Еще раз про inline-block (коротко) http://starhack.ru/eshhe-raz-pro-inline-block-korotko/ http://starhack.ru/eshhe-raz-pro-inline-block-korotko/#comments Wed, 26 Jan 2011 21:00:02 +0000 http://starhack.ru/?p=473 Читать далее Еще раз про inline-block (коротко)]]> Сегодня в очередной раз задали вопрос: как кроссбраузерно реализовать свойство inline-block. Для этого воспользуюсь хаком для IЕ 6 и 7 версий. Это необходимо, так как IЕ этих версий не понимает inline-block для блочных элементов, таких как DIV, LI, UL, а только для строчных (например:A, SPAN). Буду предельно краток.

.someclass{
    display: inline-block;
}

.someclass{
    //display: inline;/*магия IЕ*/
}

�?менно вот так: в таблице стилей должны присутствовать обе записи. Если же вы предпочитаете условные комментарии, то вторая запись должна быть вынесена в стили для IЕ.
Работает в IЕ6+, ФФ3+, Опера (даже не знаю с какой версии), Хром, Сафари, далее — везде).
Для ФФ2 нужен костыль.

]]>
http://starhack.ru/eshhe-raz-pro-inline-block-korotko/feed/ 4
Правильная сокращенная запись шрифта http://starhack.ru/ie7-i-probely-v-css/ http://starhack.ru/ie7-i-probely-v-css/#respond Thu, 24 Dec 2009 07:44:24 +0000 http://starhack.ru/?p=523 Читать далее Правильная сокращенная запись шрифта]]> �?спользовал на корпоративном сайте краткую запись правила для шрифта:


body {
    font: 81.25%/1.5 Arial, Helvetica, sans-serif;
}

На работе LINUX (не умею готовить, и потому дико не люблю), потому работаю в Хроме (быстрее) и Файрфоксе (полезнее). VMWare умерла, а восстанавливать лень, потому проверяю в IЕ (благо основные посетители нашего сайта не IЕ-пользователи, хотя 25% немало, но можно смотреть иногда сквозь пальцы на мелкие баги в IЕ) от случая к случаю. �? вот тут смотрю и вижу в IЕ7 дефолтные шрифты. Это был IЕ8 в режиме IЕ7. Причем встроенный тулбар показывает, что шрифт применяется какой-надо. Но на странице ни фига не Arial. Оказалось все просто. В Eclipse есть возможность отформатировать код (хоть и не совсем удачная реализация). �? в какой-то момент случайно я отформатировал CSS. �? это форматирование добавило кучу пробелов и переносов строк, в том числе и перед значением LINE-HEIGHT. Получилось вот так:


body {
    font: 81.25%/ 1.5 Arial, Helvetica, sans-serif;
}

�? IЕ7 перестал понимать это правило. А мне уже стали проедать мозг из других отделов: «Что за жуткий шрифт на сайте стал?» Так что вот. Мораль обычная: аккуратность, аккуратность и еще раз аккуратность. Как обычно, диавол  прятался в мелочах.

]]>
http://starhack.ru/ie7-i-probely-v-css/feed/ 0