Pixel perfect верстка

Pixel perfect версткаДобрый день, друзья. На днях со мной связался Дима Шулешов и предложил мне тему для интересной статьи (Дима, привет!). Ну для меня - интересной и актуальной, надеюсь и вам тоже, кому-нибудь пригодиться. Это несколько строчек кода, которые помогут вам верстать landing page в точности с макетом.

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

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

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

Первым делом, как это часто бывает, подключаем библиотеку jQuery:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>

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

Теперь, давайте пропишем несколько тегов внутри нашего проекта. У меня это выглядит так:

pixel perfect верстка

<div id="p">Pixel Perfect</div>
<div class="" id="pp" style="opacity: 0;"></div>

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

.p {
    background: url(../images/maket.jpg) no-repeat; /* Ваш макет */
            width: 1255px;/* ширина макета */
            height: 750px;/* высота макета*/
            left: calc(50% - 627.5px);/* второе значение - половина, от ширины макета*/
            position: absolute;
            top: 0;
            opacity: 0.4 !important;
            transition: .3s;
            z-index: 97;
}

Вот 4 параметра, которые сопровождаются комментарием и нужно заменить на свои. Все - просто!

Теперь, давайте зададим стили для кнопки. Если вам принципиален внешний вид, то редактируйте, а так, можно оставить как есть.

#p {
        position: fixed;
        left: 0;
        top: 0;
        width: 200px;
        height: 75px;
        background: #c36c2c;
        z-index: 99;
        cursor: pointer;
        text-align: center;
        font-size: 25px;
        line-height: 0px;
        color: #c36c2c;
        left: -150px;
        vertical-align: middle;
        font-weight: 700;
        transition: .3s
    }

    #p:hover {
        left: 0;
        line-height: 80px;
        background: #88d3c2;
    }

Ну и осталось добавить реакцию на клик по кнопке. Будем просто добавлять/удалять класс и менять прозрачность блока с макетом на фоне:

$(document).ready(function () {
	$('#p').click(function () {
	$('#pp').toggleClass('p')
});});

8 комментариев

  1. Павел

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

    1. Дима

      После первого фонового изображения ничего уже не будет тогда видно((

    2. Степан

      А что, прозрачность не помогает?

  2. Михаил

    А видео нет.

    1. dimadv7

      Спасибо, поправил

    2. Степан

      не туда написал)

  3. Игорь

    Подскажите, а какой редактор на скриншоте?

    1. dimadv7

      Брекетс (Brackets) - brackets.io

Добавить комментарий