medium

Делаем страницу «О себе» на Бутстрапе

Если ты можешь сделать страницу о себе, ты можешь сделать всё.

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

Работать над страницей будем в таком порядке: сначала определим, что мы хотим сказать людям, а потом обернём всё в код. Любой другой сайт делается по этой же схеме — прежде чем расчехлять HTML, надо подумать над содержимым.

Можно ли без страницы?

Собственную страницу можно сделать и на конструкторе сайтов, не заморачиваясь с вёрсткой и стилями. Но так каждый может. Это всё равно что жить на съёмной квартире — что тебе хозяева разрешили, то и можно. А вот сделать собственный сайт — это как построить собственный дом. Настоящие программисты делают собственные сайты.

О чём будем писать

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

Михаил Максимов

Я преподаю информатику с 2008 года, когда предмет ещё назывался ИКТ. Начинал со школы, учил детей разбираться в программировании и сдавать ЕГЭ на 90 баллов и выше. За два года вывел нашу школу на второе место в районе по олимпиадам по информатике. Вёл два класса коррекции — пятый и одиннадцатый — и знаю, как объяснить основы теории вероятности даже тем, кто не хочет ничему учиться. 

В 2012 защитил кандидатскую диссертацию по обучению информатике детей с недостатком внимания и стал внештатным преподавателем РГСУМ им. Макаренко. Параллельно с этим веду курсы по программированию «IDDQD» и записываю подкаст «Прогрокаст» с аудиторией 25 000 человек. 

Мои научные работы

А вот тут поставим ссылки на вымышленные работы этого преподавателя

Как связаться

Телефон: +7 (123) 456-78-90

Почта: mihailmaximov@gmail.com

Скайп:  mihailmaximov

Телеграм: @mihailmaximov

Вёрстка текста

За основу возьмём стандартный шаблон с Бутстрапом. В этой статье мы спрячем его под стрелочку, чтобы не занимать много места, но если интересно пройти весь путь с нами — скопируйте этот код и повторяйте за нами.

<!DOCTYPE html>
<html>
<!-- служебная часть -->

<head>
  <!-- заголовок страницы -->
  <title>Михаил Максимов — преподаватель информатики</title>
  <!-- настраиваем служебную информацию для браузеров -->
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <!-- загружаем Бутстрап -->
  <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css"
    integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
  <style type="text/css">
  </style>
  <!-- закрываем служебную часть страницы -->
</head>

<body>
  <!-- тут будет наша страница -->
</body>
<!-- конец всей страницы -->

</html>

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

<div class="container">
  <div class="row">
    <div class="col-12">
      <!-- содержимое контейнера -->
    </div>
  </div>
</div>

Сначала сверстаем заголовок всей страницы — для этого используем тег <h1>...</h1>. Если между двумя этими тегами поместить текст, браузер поймёт, что это заголовок, и сделает его побольше. Скажем контейнеру, что содержимое при любом размере пусть занимает всю ширину макета, и вставим в него наш текст:

<div class="container" >
  <div class="row">
    <div class="col-12">
      <h1>Михаил Максимов</h1>
    </div>
  </div>
</div>

Добавим новый контейнер и поместим в него описание на два абзаца, за которые отвечает тег <p>...</p>. Посмотрим, что получилось:

<div class="container">
  <div class="row">
    <div class="col-12">
      <p>Я преподаю информатику с 2008 года, когда предмет ещё назывался ИКТ. Начинал со школы, учил детей разбираться в
        программировании и сдавать ЕГЭ на 90 баллов и выше. За два года вывел нашу школу на второе место в районе по
        олимпиадам по информатике. Вёл два класса коррекции — пятый и одиннадцатый — и знаю, как объяснить основы теории
        вероятности даже тем, кто не хочет ничему учиться.</p>
      <p>В 2012 защитил кандидатскую диссертацию по обучению информатике детей с недостатком внимания и стал внештатным
        преподавателем РГСУМ им. Макаренко. Параллельно с этим веду курсы по программированию «IDDQD» и записываю
        подкаст «Прогрокаст» с аудиторией 25 000 человек.</p>
    </div>
  </div>
</div>

Фотография человека

Добавим фото героя, чтобы было интереснее. За это отвечает тег <img src="адрес_картинки">. В нашем случае тег будет выглядеть так:

<img src="https://thecode.media/wp-content/uploads/2019/07/sq_me.jpg" >

Фотографию поставим справа от текста так, чтобы экран как бы делился на 2 части: слева текст, справа фото. Заодно настроим так, чтобы на маленьких устройствах каждый из них растягивался на всю ширину экрана. Чтобы так сделать, нужно добавить блок с фото в тот же контейнер с абзацами и настроить колонки в каждом блоке:

<div class="container" >
  <div class="row">
    <div class="col-12 col-sm-12 col-md-6 col-lg-6 col-xl-6">
      <!-- тут 2 абзаца текста из прошлого примера -->
    </div>
    <div class="col-12 col-sm-12 col-md-6 col-lg-6 col-xl-6">
      <img src="https://thecode.media/wp-content/uploads/2019/07/sq_me.jpg" >
    </div>
  </div>
</div>

По умолчанию браузер показывает картинки в полном размере, и это выглядит некрасиво. Добавим в стили ограничение по размеру для картинки, чтобы она не вылезала за границы блока, и заодно настроим параметры заголовка и текста:

img {
  max-width: 100%;
  max-height: 100%;
}
h1 {
  font-size: 50px;
  margin-top: 30px;
  margin-bottom: 20px;
}
p {
  font-size: 18px;
}

Раздел страницы: научные работы

Подзаголовок сделаем тегом <h2>...</h2> в отдельном контейнере:

<div class="container" >
  <div class="row">
    <div class="col-12">
      <h2>Мои научные работы</h2>
    </div>
  </div>
</div>

Чтобы подзаголовок не слипался с остальным содержимым, добавим в раздел со стилями отступы для заголовка h2 сверху и снизу:

h2{
      margin-top: 40px;
      margin-bottom: 20px;
    }

Теперь сделаем список научных работ так, чтобы на больших экранах он занимал 4 колонки, на средних — 2, а на телефонах занимал весь макет по ширине. Заодно сделаем список в виде ссылок, чтобы можно было по названию перейти к каждой работе. Ссылки оформляются тегом

<a href="адрес_ссылки">текст_ссылки</a>

<a href="https://thecode.media/baboolya/">Задача о бабушке и помидорах</a>

Оформим таким образом наш список научных работ в отдельном контейнере:

<div class="container">
  <div class="row">
    <div class="col-12 col-sm-12 col-md-6 col-lg-3 col-xl-3">
      <p><a href="http://thecode.local/baboolya/">Задача про бабушку и помидоры</a></p>
      <p><a href="http://thecode.local/electrician/">Хитрый электрик</a></p>
    </div>
    <div class="col-12 col-sm-12 col-md-6 col-lg-3 col-xl-3">
      <p><a href="http://thecode.local/le-timer/">Как сделать свой таймер-напоминалку</a></p>
      <p><a href="http://thecode.local/sublime-one-love/">Почему Sublime Text — это круто</a></p>
    </div>
    <div class="col-12 col-sm-12 col-md-6 col-lg-3 col-xl-3">
      <p><a href="http://thecode.local/est-tri-shkatulki/">Поговорим о Якубовиче</a></p>
      <p><a href="http://thecode.local/content-manager/">Как стать контент-менеджером</a></p>
    </div>
    <div class="col-12 col-sm-12 col-md-6 col-lg-3 col-xl-3">
      <p><a href="http://thecode.local/batareyki-besyat/">Задача про сторожа и фонарик</a></p>
      <p><a href="http://thecode.local/variables/">О названиях функций</a></p>
    </div>
  </div>
</div>

Контакты

Осталось добавить контактную информацию — тоже в своём контейнере. Смотрите: мы положили тег со ссылкой внутри тега абзаца — так можно.

<div class="container">
  <div class="row">
    <div class="col-12">
      <h2>Контакты для связи</h2>
    </div>
  </div>
</div>
<div class="container">
  <div class="row">
    <div class="col-12">
      <p>Телефон: +7 (123) 456-78-90</p>
      <p>Почта: <a href="mailto: mihailmaximov@gmail.com">mikemaximov@gmail.com</a></p>
      <p>Скайп: mihailmaximov</p>
      <p>Телеграм: @mihailmaximov</p>
    </div>
  </div>
</div>

Смотрим на результат и заодно проверяем адаптивность:

<!DOCTYPE html>
<html>
<!-- служебная часть -->

<head>
  <!-- заголовок страницы -->
  <title>Михаил Максимов — преподаватель информатики</title>
  <!-- настраиваем служебную информацию для браузеров -->
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <!-- загружаем Бутстрап -->
  <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css"
    integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
  <style type="text/css">
    img {
      max-width: 100%;
      max-height: 100%;
    }

    h1 {
      font-size: 50px;
      margin-top: 30px;
      margin-bottom: 20px;
    }

    h2 {
      margin-top: 40px;
      margin-bottom: 20px;
    }

    p {
      font-size: 18px;
    }
  </style>
</head>

<body>
  <div class="container">
    <div class="row">
      <div class="col-12">
        <h1>Михаил Максимов</h1>
      </div>
    </div>
  </div>
  <div class="container">
    <div class="row">
      <div class="col-12 col-sm-12 col-md-6 col-lg-6 col-xl-6">
        <p>Я преподаю информатику с 2008 года, когда предмет ещё назывался ИКТ. Начинал со школы, учил детей разбираться
          в программировании и сдавать ЕГЭ на 90 баллов и выше. За два года вывел нашу школу на второе место в районе по
          олимпиадам по информатике. Вёл два класса коррекции — пятый и одиннадцатый — и знаю, как объяснить основы
          теории вероятности даже тем, кто не хочет ничему учиться.</p>
        <p>В 2012 защитил кандидатскую диссертацию по обучению информатике детей с недостатком внимания и стал
          внештатным преподавателем РГСУМ им. Макаренко. Параллельно с этим веду курсы по программированию «IDDQD» и
          записываю подкаст «Прогрокаст» с аудиторией 25 000 человек.</p>
      </div>
      <div class="col-12 col-sm-12 col-md-6 col-lg-6 col-xl-6">
        <img src="http://thecode.local/wp-content/uploads/2019/07/sq_me.jpg">
      </div>
    </div>
  </div>
  <div class="container">
    <div class="row">
      <div class="col-12">
        <h2>Мои научные работы</h2>
      </div>
    </div>
  </div>
  <div class="container">
    <div class="row">
      <div class="col-12 col-sm-12 col-md-6 col-lg-3 col-xl-3">
        <p><a href="http://thecode.local/baboolya/">Задача про бабушку и помидоры</a></p>
        <p><a href="http://thecode.local/electrician/">Хитрый электрик</a></p>
      </div>
      <div class="col-12 col-sm-12 col-md-6 col-lg-3 col-xl-3">
        <p><a href="http://thecode.local/le-timer/">Как сделать свой таймер-напоминалку</a></p>
        <p><a href="http://thecode.local/sublime-one-love/">Почему Sublime Text — это круто</a></p>
      </div>
      <div class="col-12 col-sm-12 col-md-6 col-lg-3 col-xl-3">
        <p><a href="http://thecode.local/est-tri-shkatulki/">Поговорим о Якубовиче</a></p>
        <p><a href="http://thecode.local/content-manager/">Как стать контент-менеджером</a></p>
      </div>
      <div class="col-12 col-sm-12 col-md-6 col-lg-3 col-xl-3">
        <p><a href="http://thecode.local/batareyki-besyat/">Задача про сторожа и фонарик</a></p>
        <p><a href="http://thecode.local/variables/">О названиях функций</a></p>
      </div>
    </div>
  </div>
  <div class="container">
    <div class="row">
      <div class="col-12">
        <h2>Контакты для связи</h2>
      </div>
    </div>
  </div>
  <div class="container">
    <div class="row">
      <div class="col-12">
        <p>Телефон: +7 (123) 456-78-90</p>
        <p>Почта: <a href="mailto: mihailmaximov@gmail.com">mikemaximov@gmail.com</a></p>
        <p>Скайп: mihailmaximov</p>
        <p>Телеграм: @mihailmaximov</p>
      </div>
    </div>
  </div>
</body>
<!-- конец всей страницы -->

</html>

Это самый простой способ создать страницу о себе на чистом HTML, которая сразу будет адаптивной. Но есть ещё один способ сделать похожее: использовать конструкторы сайтов. Про них — в следующей статье.

Получите ИТ-профессию
В «Яндекс Практикуме» можно стать разработчиком, тестировщиком, аналитиком и менеджером цифровых продуктов. Первая часть обучения всегда бесплатная, чтобы попробовать и найти то, что вам по душе. Дальше — программы трудоустройства.
Начать карьеру в ИТ
Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию
Еще по теме
medium