Advertisement
  1. Web Design
  2. HTML/CSS
  3. Bootstrap

Построение стартапа с PHP: Формирование главной страницы

Scroll to top
Read Time: 8 min
This post is part of a series called Building Your Startup With PHP.
Building Your Startup: Designing a RESTful API
Building Your Startup: Leveraging Bootstrap, Ajax, and jQuery

() translation by (you can also view the original English article)

Final product imageFinal product imageFinal product image
What You'll Be Creating

Этот урок является частью серии Построй свой стартап с PHP на Envato Tuts+. В этой серии я проведу вас через запуск стартапа от концепции до реального сайта, используя приложение «Планировщик встреч», как реальный пример. На каждом шагу я публикую код Планировщика встреч в виде примеров с открытым исходным кодом, на которых вы можете учиться. Я также буду затрагивать вопросы, связанные с запуском бизнеса по мере их возникновения.

Улучшаем домашнюю страницу

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

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

Хотя я являюсь менеджером программы и продукта, немного разработчиком UX и веб-разработчиком, я не являюсь опытным графическим дизайнером или гуру HTML/CSS. Я также не вкладываю внешние ресурсы в проект, поэтому мне нужно улучшать это самому.

В сегодняшнем руководстве ​​я расскажу вам, как я усилил вид домашней страницы и какие аспекты Bootstrap и CSS я использовал, чтобы обеспечить более профессиональный внешний вид. С Bootstrap вы можете сделать много, если вы копнёте немного глубже.

Если вы ещё не опробовали Meeting Planner или Simple Planner, сделайте это и запланируйте своё первое мероприятие. Я принимаю участие в комментариях ниже, поэтому скажите мне, что вы думаете! Вы также можете связаться со мной по Twitter @reifman. Мне особенно интересно, если вы хотите предложить новые функции или темы для будущих уроков.

Напоминаем, что весь код для Планировщика встреч написан на фреймворке Yii2 для PHP. Если вы хотите узнать больше о Yii2, ознакомьтесь с нашей параллельной серией Программирование на Yii2.

Текущие домашние страницы

Building Your Startup - Side by side looks at Simple Planner vs Meeting Planner home pageBuilding Your Startup - Side by side looks at Simple Planner vs Meeting Planner home pageBuilding Your Startup - Side by side looks at Simple Planner vs Meeting Planner home page

В последнем уроке ​​я упомянул о запуске Simple Planner вместе с Meeting Planner с различными цветовыми схемами и изображениями. Они выглядели неплохо, но кнопки главного продукта и регистрации не были на видном месте. Прибывали первые посетители и, прежде всего, видели фотографию.

Вот более пристальный взгляд:

Building Your Startup Bootstrap Current Home PageBuilding Your Startup Bootstrap Current Home PageBuilding Your Startup Bootstrap Current Home Page

Планирование улучшений

Building Your Startup Bootstrap Improved Home PageBuilding Your Startup Bootstrap Improved Home PageBuilding Your Startup Bootstrap Improved Home Page

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

По существу, мне нужно было сделать четыре вещи:

  1. Убедиться, что фоновое изображение отзывчивое и на нём можно применить непрозрачность (прозрачность).
  2. Создать левую колонку с прозрачной панелью, чтобы отобразить главное сообщение.
  3. Создать правую колонку, чтобы отображать панели с регистрацией, входом и уведомлением о запуске с некоторой прозрачностью.
  4. Убедиться, что видео-карусель расположена под фоновым изображением.

Давайте посмотрим каждый шаг.

Изменение фонового изображения

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

Во-первых, я создал новую таблицу стилей home.css, которая будет настроена через файл HomeAsset.php:

1
<?php
2
/**

3
 * @link http://www.yiiframework.com/

4
 * @copyright Copyright (c) 2008 Yii Software LLC

5
 * @license http://www.yiiframework.com/license/

6
 */
7
8
namespace frontend\assets;
9
10
use yii\web\AssetBundle;
11
12
/**

13
 * @author Qiang Xue <qiang.xue@gmail.com>

14
 * @since 2.0

15
 */
16
class HomeAsset extends AssetBundle
17
{
18
    public $basePath = '@webroot';
19
    public $baseUrl = '@web';
20
    public $css = [
21
        'css/site.css',
22
        'css/home.css',
23
        'css/home-video.css',
24
    ];
25
    public $js = [
26
      'js/home.js',
27
      'js/froogaloop2.min.js',
28
    ];
29
    public $depends = [
30
        'yii\web\YiiAsset',
31
        'yii\bootstrap\BootstrapAsset',
32
    ];
33
}

Файл ресурса определяет, какие CSS, JavaScript и зависимые библиотеки загружаются для каждого макета.

Вот верхняя часть home.css, задающая элемент body:

1
/* CSS used here will be applied after bootstrap.css */
2
body {
3
 -webkit-background-size: cover;
4
 -moz-background-size: cover;
5
 -o-background-size: cover;
6
 background-size: cover;
7
}

Чтобы фоновое изображение менялось динамически, я добавил тег стиля в файл макета, Home.php (через CSS нельзя этого сделать):

1
<?php
2
use yii\helpers\Html;
3
use yii\helpers\Url;
4
use yii\bootstrap\Nav;
5
use yii\bootstrap\NavBar;
6
use yii\widgets\Breadcrumbs;
7
use frontend\assets\HomeAsset;
8
use frontend\widgets\Alert;
9
10
/* @var $this \yii\web\View */
11
/* @var $content string */
12
13
HomeAsset::register($this);
14
$urlPrefix = (isset(Yii::$app->params['urlPrefix'])? $urlPrefix = Yii::$app->params['urlPrefix'] : '');
15
?>
16
<?php $this->beginPage() ?>
17
<!DOCTYPE html>
18
<html lang="<?= Yii::$app->language ?>" >
19
<head>
20
    <meta charset="<?= Yii::$app->charset ?>"/>
21
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" />
22
    <?= Html::csrfMetaTags() ?>
23
    <title><?= Html::encode($this->title) ?></title>
24
    <style type="text/css">
25
    body {
26
     background: url('./img/home/home-<?= Yii::$app->params['site']['img'] ?>.jpg') no-repeat center 30px;
27
    }
28
    </style>
29
    <?php $this->head() ?>
30
</head>
31
<body>

Это применяет выбранное фоновое изображение, определенное в последнем эпизоде ​​SiteHelper.php:

1
body {
2
     background: url('./img/home/home-<?= Yii::$app->params['site']['img'] ?>.jpg') no-repeat center 30px;
3
    }

Левая сторона сетки

Building Your Startup Bootstrap Lefthand PanelBuilding Your Startup Bootstrap Lefthand PanelBuilding Your Startup Bootstrap Lefthand Panel

Затем я создал компоновку сетки Bootstrap, чтобы отобразить левую панель:

1
<div class="site-index ">
2
  <div class="row home-top">
3
      <div class="col-md-6 col-md-offset-1">
4
        <div class="jumbotron">
5
            <h1><?php echo Yii::t('frontend','Simpler Scheduling'); ?></h1>
6
                <p class="lead">Choose times and places together. Make planning easy.</p>
7
                <div class="centered">
8
                  <p><a class="btn btn-lg btn-success" href="features"><?= Yii::t('frontend','Learn more') ?></a></p>
9
                </div>
10
          </div> <!-- end jumbo -->
11
      </div>

Я использовал смещение на один col-md-offset-1 и столбец 6-го размера col-md-6. И есть несколько других аспектов, применённых здесь.

Класс home-top для строки позволил мне применить вертикальный отступ для этих панелей. Я обнаружил, что 16% отлично мне подходит, home.css:

1
.home-top {
2
  margin-top:16%;
3
}

Путем придания панелям на главной странице небольшой непрозрачности opacity: 0.9;, фоновое изображение всё ещё немного видно, что было довольно эстетично:

1
.panel-default {
2
 opacity: 0.9;
3
}
4
5
.jumbotron {
6
    text-align: center;
7
    background-color: rgba(0,0,0,0.3);
8
    color:#fff;
9
    border-radius:5px;
10
}
11
.jumbotron .lead {
12
  color:#fff;
13
}
14
15
.jumbotron .btn {
16
    font-size: 21px;
17
    opacity:.8;
18
    margin:25px;
19
}

Также я смог задать левой панели черный цвет фона, но с использованием rgba — background-color: rgba(0,0,0,0.3);.

Значения цвета RGBA являются расширением значений цвета RGB с альфа-каналом — который определяет непрозрачность объекта. Значение цвета RGBA задается с помощью: rgba(красный, зеленый, синий, альфа). Альфа-параметр — это число между 0.0 (полностью прозрачное) и 1.0 (полностью непрозрачное). (Школа W3)

И я создал круглые границы с border-radius:5px;.

Результат позволяет видеть фоновое изображение, а так же белый текст.

Правые панели и формы

Building Your Startup Bootstrap Righthand side Panels and FormsBuilding Your Startup Bootstrap Righthand side Panels and FormsBuilding Your Startup Bootstrap Righthand side Panels and Forms

Чтобы создать правую сторону, я создал колонку col-md-3. Затем я создал две панели, наследующие ту же самую непрозрачность 0,9:

1
<div class="col-md-3 ">
2
  <div class="panel panel-default">
3
      <div class="panel-heading">
4
        <strong><?php echo Yii::t('frontend','Signup or Login to Schedule a Meeting'); ?></strong>
5
      </div>
6
      <div class="panel-body panel-auth-clients">
7
          <?php $authAuthChoice = AuthChoice::begin([
8
            'baseAuthUrl' => ['site/auth','mode'=>'signup'],
9
            'popupMode' => false,
10
        ]); ?>
11
        <?= Yii::t('frontend','Connect with any of the following services:'); ?><br /><br />
12
        <ul class="auth-clients" >
13
        <?php foreach ($authAuthChoice->getClients() as $client): ?>
14
            <li class="auth-client"><?php $authAuthChoice->clientLink($client) ?></li>
15
        <?php endforeach; ?>
16
        </ul>
17
        <?php AuthChoice::end(); ?>
18
      </div>
19
      <div class="panel-footer">
20
          Or, <?= HTML::a(Yii::t('frontend','signup using your email address'),['site/signup']); ?>
21
        </div>
22
  </div>
23
  <div class="panel panel-default">
24
    <div class="panel-heading">
25
      <strong><?php echo Yii::t('frontend','Wait for the Official Launch'); ?></strong>
26
    </div>
27
    <div class="panel-body">
28
      <?= $this->render('launch');?>
29
    </div>
30
  </div>
31
</div>

Виджет AuthClient на верхней панели отображает значки Facebook, Google и LinkedIn, о которых я рассказывал в этом предыдущем уроке.

Вертикальный отступ для видео-карусели

Building Your Startup Bootstrap Video Carousel Vertical Top MarginBuilding Your Startup Bootstrap Video Carousel Vertical Top MarginBuilding Your Startup Bootstrap Video Carousel Vertical Top Margin

Наконец, мне просто нужно было убедиться, что видео-карусель под главным изображением имеет достаточный вертикальный отступ, чтобы не накладываться на фоновое изображение. Для этого я использовал класс video-top:

1
.video-top {
2
  margin-top:23%;
3
}

Отступ в 23% хорошо смотрелся для настольных компьютеров и мобильных устройств. Вот HTML:

1
<div class="row video-top">
2
      <div class="col-md-12">
3
        <?= $this->render('_video_carousel.php',['urlPrefix'=>$urlPrefix]);?>
4
      </div>
5
  </div>

Улучшенные домашних страниц для мобильных

Вот как выглядят улучшенные главные страницы на мобильных устройствах:

Building Your Startup Bootstrap Improved Mobile Home Pages side by sideBuilding Your Startup Bootstrap Improved Mobile Home Pages side by sideBuilding Your Startup Bootstrap Improved Mobile Home Pages side by side

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

Что дальше?

Building Your Startup Multiple Domains - SimplePlannerio Home Page with Social ImageBuilding Your Startup Multiple Domains - SimplePlannerio Home Page with Social ImageBuilding Your Startup Multiple Domains - SimplePlannerio Home Page with Social Image

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

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

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

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

Я также приближаюсь к запуску эксперимента с WeFunder, основанного на внедрении новых правил софинансирования от SEC. Вы можете следить за нашим профилем там, если хотите. Я также напишу об этом в следующем уроке.

Есть свои мысли? Идеи? Отзывы? Вы всегда можете связаться со мной прямо на Twitter @reifman. Следите за предстоящими уроками здесь, в серии Создание стартапа на PHP.

Ссылки по теме

Advertisement
Did you find this post useful?
Want a weekly email summary?
Subscribe below and we’ll send you a weekly email summary of all new Web Design tutorials. Never miss out on learning about the next big thing.
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.