Bootstrap: возможно ли создать шаблон, который можно будет импортировать на каждую новую страницу веб-сайта? - PullRequest
0 голосов
/ 23 мая 2019

Я использую Bootstrap для создания личного сайта / блога.Я новичок в этой среде и в веб-разработке в целом, поэтому я был бы признателен за некоторые советы.Я хотел бы, чтобы любая новая страница, которую я добавлял, имела такой же макет: боковое навигационное меню занимало 3 столбца, а содержимое занимало 9 оставшихся. В небольшом формате каждая из них заняла бы все 12 столбцов.Я хотел бы создать этот шаблон, потому что, если я решу однажды изменить свой макет сайта, мне не нужно будет просматривать каждый отдельный файл, чтобы сделать это.Так есть ли способ создать шаблон и импортировать его на каждую страницу?

Я гуглил его, но, похоже, ничего не нашел в нем.Мне кажется, что это очень очевидная особенность, поэтому я решил, что найду что-нибудь, но не смог.

Вот моя страница

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Intro</title>
    <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">
    <link rel="stylesheet" type="text/css" href="../main.css">
    <link rel="stylesheet" type="text/css" href="template.css">
</head>
<body>
    <!-- Top navbar -->
    <nav class="navbar navbar-expand-md">
        <a class="navbar-brand" href="#">Logo</a>
        <button class="navbar-toggler navbar-dark" type="button" data-toggle="collapse" data-target="#main-navigation">
            <span class="navbar-toggler-icon"></span>
        </button>
        <div class="collapse navbar-collapse" id="main-navigation">
            <ul class="navbar-nav">
                <li class="nav-item">
                    <a class="nav-link" href="#">Home</a>
                </li>
                <li class="nav-item">
                    <a class="nav-link" href="#">About</a>
                </li>
                <li class="nav-item">
                    <a class="nav-link" href="#">Contact</a>
                </li>
            </ul>
        </div>
    </nav>

    <!-- Main body of page -->
    <div class="container-fluid">
        <div class="row">
            <!-- Sidebar -->
            <div class="col-lg-3 col-md-3 col-sm-12" id="sideBar">
                <h4 class="feature-title">Table of Contents</h4>
                <div class="panel-group">
                    <div class="panel panel-default">
                        <div class="panel-heading">
                            <h4 class="panel-title"><a data-toggle="collapse" href="#collapse1">Introduction</a></h4>
                        </div>
                        <div id="collapse1" class="panel-collapse collapse">
                            <ul class="list-group">
                                <li class="list-group-item">One</li>
                                <li class="list-group-item">Two</li>
                                <li class="list-group-item">Three</li>
                            </ul>
                        </div>
                        <div class="panel-heading">
                            <h4 class="panel-title"><a data-toggle="collapse" href="#collapse2">Fundamentals</a></h4>
                        </div>
                        <div id="collapse2" class="panel-collapse collapse">
                            <ul class="list-group">
                                <li class="list-group-item">One</li>
                                <li class="list-group-item">Two</li>
                                <li class="list-group-item">Three</li>
                            </ul>
                        </div>
                        <div class="panel-heading">
                            <h4 class="panel-title"><a data-toggle="collapse" href="#collapse3">Software</a></h4>
                        </div>
                        <div id="collapse3" class="panel-collapse collapse">
                            <ul class="list-group">
                                <li class="list-group-item">One</li>
                                <li class="list-group-item">Two</li>
                                <li class="list-group-item">Three</li>
                            </ul>
                        </div>
                    </div>
                </div>
            </div>

            <!-- Page Contents -->
            <div class="col-lg-9 col-md-9 col-sm-12" id="main">
                <h3 class="feature-title">Introduction</h3>
                <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque interdum quam odio, quis placerat ante luctus eu. Sed aliquet dolor id sapien rutrum, id vulputate quam iaculis.</p>
                <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque interdum quam odio, quis placerat ante luctus eu. Sed aliquet dolor id sapien rutrum, id vulputate quam iaculis.</p>
                <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque interdum quam odio, quis placerat ante luctus eu. Sed aliquet dolor id sapien rutrum, id vulputate quam iaculis.</p>
                <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque interdum quam odio, quis placerat ante luctus eu. Sed aliquet dolor id sapien rutrum, id vulputate quam iaculis.</p>
                <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque interdum quam odio, quis placerat ante luctus eu. Sed aliquet dolor id sapien rutrum, id vulputate quam iaculis.</p>
                <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque interdum quam odio, quis placerat ante luctus eu. Sed aliquet dolor id sapien rutrum, id vulputate quam iaculis.</p>
                <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque interdum quam odio, quis placerat ante luctus eu. Sed aliquet dolor id sapien rutrum, id vulputate quam iaculis.</p>
            </div>
        </div>
    </div>

    <!--- Script Source Files -->
    <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
    <script src="../main.js"></script>
    <script src="template.js"></script>
    <script src="https://use.fontawesome.com/releases/v5.5.0/js/all.js"></script>
</body>

Мне бы хотелось, чтобы навигационная панель и боковая панель оставались одинаковыми на всех моих страницах.Это просто содержимое страницы (id = "main"), которое будет меняться в теле.Кроме того, я хотел бы изменить заголовок страницы (в заголовке).Есть ли способ сделать эту переменную?Другая причина, по которой я предпочел бы сделать это таким образом, заключается в том, что оглавление будет меняться по мере добавления новых страниц, поэтому мне не нужно каждый раз просматривать каждый файл для изменения оглавленияновая страница.

Я ценю помощь.Спасибо

Редактировать: вот CSS для template.css

#main {
  transition: margin-left .5s;
  padding: 20px;
}

#sideBar {
  background: black;
  padding: 20px;
}

.list-group-item {
  background: black;
}

.list-group-item:hover {
  color: green;
}

1 Ответ

2 голосов
/ 23 мая 2019

К вашему сведению: Согласно моим советам, вы должны использовать несколько хороших языков сценариев / программирования, таких как Ruby On Rails, Django или PHP, для достижения функциональности, когда один шаблон динамически отображает все содержимое других страниц. Итак, вам просто нужно изменить в своем основном шаблоне и будет отражаться на всех страницах. Это лучшая практика.


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

[Не для производственной цели - просто решение вашей проблемы]

Пожалуйста, найдите решение вашей проблемы здесь, на github repo. Я объединил ваш код и создал пример проекта для работы с вами:

В нем есть один шаблон с именем template.html и другие страницы, относящиеся к другому контенту, для (id = "main") index.html, about.html и contact.html, которые отображают свой собственный контент, следуя шаблону template.html.

Пожалуйста, посмотрите на этот репозиторий github: https://github.com/ashishprajapati/template-for-basic-html

   git clone git@github.com:ashishprajapati/template-for-basic-html.git

Чтобы запустить html-сервер, выполните следующие действия

   npm install http-server -g

Пожалуйста, используйте эту команду в том же каталоге, где присутствует клонированный проект

   http-server
...