TechBlogSD - Wszystko do WordPressa i tworzenia stron internetowych
Instrukcje WEB i WordPress, nowości, recenzje motywów i wtyczek

Jak stworzyć motyw Bootstrap od podstaw?

4

Istnieje wiele kreatorów statycznych witryn internetowych i offline, które pomogą Ci zbudować witrynę w kilka minut. Większość z tych kreatorów witryn zasadniczo korzysta z jednego z istniejących frameworków frontendowych. Szczerze mówiąc, nie musisz polegać na tych kreatorach witryn i zacząć tworzyć własną witrynę i motywy bezpośrednio za pomocą frameworków, takich jak Bootstrap. W tym artykule przyjrzyjmy się, jak stworzyć od podstaw motyw Bootstrap w wersji 4.

Kroki tworzenia motywu Bootstrap od podstaw

  1. Przygotuj szkic szkieletowy swojego motywu
  2. Zrozumienie szablonu startowego Bootstrap 4
  3. Wstaw menu nawigacyjne
  4. Dodaj pokaz slajdów nagłówka
  5. Dołącz sekcję nagłówka bohatera
  6. Prezentacja polecana sekcja
  7. Dodaj FAQ i formularz kontaktowy
  8. Wstaw sekcję stopki
  9. Dostosowywanie za pomocą CSS
  10. Pobierz ostateczny szablon

Dalsze sekcje są wyjaśnione z fikcyjnymi treściami i obrazami, upewnij się, że zastąpisz je własną treścią.

1 Rysowanie szkieletu swojego motywu

Zanim przejdziemy dalej, najpierw narysujmy, jak powinien wyglądać nasz motyw, skupiając się na użyciu domyślnych komponentów Bootstrap. Zasadniczo motyw powinien składać się z następujących elementów:

  • Pasek nawigacyjny pokazujący pozycje menu.
  • Pokaz slajdów nagłówka do obracania obrazów z podpisem
  • Sekcja nagłówka bohatera pokazująca przyciągający wzrok nagłówek
  • Polecana sekcja, aby pokazać swoje produkty lub najważniejsze informacje
  • FAQ i niektóre dane kontaktowe
  • Sekcja stopki do wiadomości o prawach autorskich

Tak więc motyw powinien wyglądać mniej więcej tak:

Jak stworzyć motyw Bootstrap od podstaw?

Zbudujmy teraz nasz motyw od podstaw.

2 Bootstrap 4 Szablon startowy

Dobrym pomysłem jest posiadanie wiedzy o tym, czym jest Bootstrap. Mamy osobną kategorię samouczków Bootstrap, do których możesz się odwołać, aby uzyskać więcej informacji. W przeciwnym razie po prostu załóżmy, że Bootstrap jest frameworkiem frontendowym oferującym prekompilowane pliki CSS i JavaScript. Pliki te zawierają bloki witryn internetowych, które można wykorzystać w niezmienionej postaci lub dostosować do własnych potrzeb.

W naszym przykładzie zaczynamy od szablonu startowego Bootstrap. Jest to szablon szkieletu zawierający pliki CSS i skryptów, jak pokazano poniżej:

<!DOCTYPE html> <html lang="en"> <head> <!-- Meta Tags for Bootstrap 4 --> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <!-- Bootstrap 4 CSS --> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous"> </head> <body> Add Your Content Here... <!-- Bootstrap 4 Scripts --> <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script> </body> </html>

Możesz także hostować pliki Bootstrap na swoim serwerze i zastępować łącza CDN własnymi. Do budowy naszego motywu używamy Bootstrapa w wersji 4. Zapisz szablon startowy jako „bootstrap-theme.html" na komputerze lokalnym i otwórz plik za pomocą ulubionego edytora tekstu. Zalecamy używanie Notepad ++, nawiasów lub podobnych edytorów tekstu w celu łatwej edycji.

3 Dodawanie nawigacji do szablonu startowego

Pierwszym krokiem jest dodanie paska nawigacyjnego za pomocą komponentu paska nawigacyjnego. Poniżej znajduje się kod domyślnego komponentu paska nawigacyjnego Bootstrap 4:

<!-- Navbar --> <nav class="navbar fixed-top navbar-toggleable-md navbar-inverse bg-primary"> <button class="navbar-toggler navbar-toggler-right" type="button" data-toggle="collapse" data-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation"> <span class="navbar-toggler-icon"></span> </button> <a class="navbar-brand" href="#"> <img src="assets/images/logo.png" width="30" height="30" class="d-inline-block align-top" alt="logo"> Bootstrap 4 Theme</a> <div class="collapse navbar-collapse" id="navbar"> <ul class="navbar-nav mr-auto ml-auto"> <li class="nav-item outframe"> <a class="nav-link" href="#">Home</a> </li> <li class="nav-item outframe"> <a class="nav-link" href="#">Menu</a> </li> <li class="nav-item dropdown outframe"> <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> Dropdown </a> <div class="dropdown-menu" aria-labelledby="navbarDropdown"> <a class="dropdown-item" href="#">Dropdown 1</a> <div class="dropdown-divider"></div> <a class="dropdown-item" href="#">Dropdown 2</a> <div class="dropdown-divider"></div> <a class="dropdown-item" href="#">Dropdown 3</a> </div> </li> </ul> <form class="form-inline my-2 my-lg-0"> <input class="form-control mr-sm-2" type="text" placeholder="Search"> <button class="btn btn-outline-success btn-spl my-2 my-sm-0" type="submit">Search</button> </form> </div> </nav> <br><br>

Pasek nawigacyjny zawiera następujące elementy:

  • Favicon
  • Nazwa handlowa
  • Pozycje menu – pojedyncze i rozwijane pozycje menu
  • Przykładowe pole wyszukiwania

To menu powinno zostać zmienione na ikonę hamburgera na mniejszych urządzeniach. Wstaw domyślny kod komponentu paska nawigacyjnego, modyfikując fikcyjną zawartość własnym tagiem tuż poniżej. Pamiętaj, że jest to nasz pierwszy komponent w motywie, dlatego dodaj kod tuż pod tagiem jako pierwszy element.

4 Dodawanie pokazu slajdów lub karuzeli

Poniżej paska nawigacyjnego wstawmy standardowy komponent karuzeli z podpisem obrazu i opisem. Stworzyliśmy obrazki o pełnej szerokości, dodając wbudowany styl „width=”100%”;”. W przeciwnym razie upewnij się, że użyjesz większych obrazów, które będą pasować do szerokości urządzenia.

<!-- Carousel --> <div id="slidercaption" class="carousel slide" data-ride="carousel"> <ol class="carousel-indicators"> <li data-target="#slidercaption" data-slide-to="0" class="active"></li> <li data-target="#slidercaption" data-slide-to="1"></li> <li data-target="#slidercaption" data-slide-to="2"></li> </ol> <div class="carousel-inner" role="listbox"> <div class="carousel-item active"> <img class="d-block img-fluid" src="https://img.webnots.com/2017/05/BS_Slide1.jpg" alt="Slide1" width="100%"> <div class="carousel-caption d-none d-md-block"> <h3>Here is a caption for slide 1</h3> <p>Here is short description for slide 1</p> </div> </div> <div class="carousel-item"> <img class="d-block img-fluid" src="https://img.webnots.com/2017/05/BS_Slide2.jpg" alt="Slide2" width="100%"> <div class="carousel-caption d-none d-md-block"> <h3>Here is a caption for slide 2</h3> <p>Here is short description for slide 2</p> </div> </div> <div class="carousel-item"> <img class="d-block img-fluid" src="https://img.webnots.com/2017/05/BS_Slide3.jpg" alt="Slide3" width="100%"> <div class="carousel-caption d-none d-md-block"> <h3>Here is a caption for slide 3</h3> <p>Here is short description for slide 3</p> </div> </div> </div> <a class="carousel-control-prev" href="#slidercaption" role="button" data-slide="prev"> <span class="carousel-control-prev-icon" aria-hidden="true"></span> <span class="sr-only">Previous</span> </a> <a class="carousel-control-next" href="#slidercaption" role="button" data-slide="next"> <span class="carousel-control-next-icon" aria-hidden="true"></span> <span class="sr-only">Next</span> </a> </div>

Pamiętaj, że pasek nawigacyjny i karuzela mogą zachodzić na siebie. Użyj prawidłowej wysokości obrazu lub użyj niestandardowego CSS, aby dostosować nakładanie się. W tym przykładzie po prostu dodajemy dwa podziały wiersza

poniżej paska nawigacyjnego, aby dostosować odstęp za pomocą karuzeli.

5 Dodawanie sekcji bohaterów lub Jumbotron

Następnie dodajmy komponent jumbotron o pełnej szerokości , aby zaprezentować sekcję bohatera z nagłówkiem, opisem i przyciskiem. Poniżej znajduje się kod sekcji bohatera nagłówka, który należy dodać tuż pod kodem karuzeli:

<!-- Hero Header Jumbotron --> <div class="jumbotron"> <h1 class="display-3">Bootstrap 4 Template</h1> <p class="lead">This is a demo theme created with Bootstrap 4. Add some attractive heading for your page here.</p> <hr class="my-4"> <p>Add your subtitle here to explain more about this page in detail.</p> <a class="btn btn-primary btn-lg btn-spl" href="#" role="button">View Facebook Page</a> </div>

Zrobiliśmy białe tło i dostosowaliśmy właściwości domyślnego jumbotronu za pomocą niestandardowego CSS, jak poniżej. Dodaj niestandardowy CSS między …. Tagi.

<style> /* Header Jumbotron */ .jumbotron{ color: #990000; background-color: #fafafa; margin-bottom: -20px; background: #fff; text-align: center; border-radius: 0; } </style>

Teraz nasz motyw Bootstrap 4 powinien wyglądać mniej więcej tak:

Jak stworzyć motyw Bootstrap od podstaw?

6 Dodawanie wyróżnionej sekcji z układem karty

Bootstrap ma piękny komponent karty, który prezentuje polecane sekcje z obrazem, tytułem, opisem i przyciskiem. Zaprezentujmy trzy produkty za pomocą układu kart talii, jak poniżej.

Jak stworzyć motyw Bootstrap od podstaw?

Poniżej znajduje się kod układu karty, który należy dodać tuż pod komponentem hero jumbotron. Możesz dodać kod przycisku „Dodaj do koszyka” lub „Kup teraz” z PayPal lub dowolnego innego procesora płatności na elemencie przycisku, aby pobierać płatności od użytkowników.

<!-- Card Deck --> <div class="card-deck"> <div class="card btn-spl"> <img class="card-img-top" src="https://img.webnots.com/2017/04/Bootstrap-Card-Image.png" alt="Card image cap"> <div class="card-block"> <h4 class="card-title">Product 1</h4> <p class="card-text">Here is a longer description of the card and the height will be auto aligned with flex box.</p> <button class="btn btn-primary btn-spl" href="#" role="button">Buy Now</button> </div> <div class="card-footer"> <small class="text-muted">Here is a footer</small> </div> </div> <div class="card btn-spl"> <img class="card-img-top" src="https://img.webnots.com/2017/04/Bootstrap-Card-Image.png" alt="Card image cap"> <div class="card-block"> <h4 class="card-title">Product 2</h4> <p class="card-text">Here is a shorter description of the card.</p> <button class="btn btn-danger btn-spl" href="#" role="button">Buy Now</button> </div> <div class="card-footer"> <small class="text-muted">Here is a footer</small> </div> </div> <div class="card btn-spl"> <img class="card-img-top" src="https://img.webnots.com/2017/04/Bootstrap-Card-Image.png" alt="Card image cap"> <div class="card-block"> <h4 class="card-title">Product 3</h4> <p class="card-text">Here is a longer description of the card and the height will be auto aligned with flex box.</p> <button class="btn btn-secondary btn-spl" href="#" role="button">Buy Now</button> </div> <div class="card-footer"> <small class="text-muted">Here is a footer</small> </div> </div> </div>

7 Dzielenie na dwie kolumny

Następna sekcja ma dwie kolumny – jedną na dodanie sekcji FAQ, a drugą na dodanie formularza kontaktowego, jak pokazano poniżej:

Jak stworzyć motyw Bootstrap od podstaw?

Sekcja Bootstrap z dwiema kolumnami

Dwie kolumny są tworzone przy użyciu elementu div z klasą wiersza, a następnie dwóch kolejnych elementów div z klasą „col-md-6″, jak poniżej:

<div class="row"> <div class="col-md-6" style="padding:30px 50px;"> <div class="container" style="padding:30px;border:1px solid gray;"> <!-- FAQ Collapse --> </div> </div> <div class="col-md-6" style="padding:30px 50px;"> <div class="container" style="padding:30px;border:1px solid gray;"> <!-- Contact Form --> </div> </div> </div>

7.1 Dodawanie FAQ w pierwszej kolumnie z funkcją Collapse

Sekcja FAQ jest tworzona przy użyciu domyślnego komponentu zwijania, jak poniżej:

<!-- Collapse --> <div id="accordion" role="tablist" aria-multiselectable="true"> <div class="card"> <div class="card-header btn-spl" role="tab" id="firstheading"> <h5 class="mb-0"> <a class="collapsed" data-toggle="collapse" data-parent="#accordion" href="#collapse1" aria-expanded="false" aria-controls="collapse1"> Heading 1 </a> </h5> </div> <div id="collapse1" class="collapse" role="tabpanel" aria-labelledby="firstheading"> <div class="card-block"> Here is the content for the first section. </div> </div> </div> <div class="card"> <div class="card-header btn-spl" role="tab" id="secondheading"> <h5 class="mb-0"> <a class="collapsed" data-toggle="collapse" data-parent="#accordion" href="#collapse2" aria-expanded="false" aria-controls="collapse2"> Heading 2 </a> </h5> </div> <div id="collapse2" class="collapse" role="tabpanel" aria-labelledby="secondheading"> <div class="card-block"> Here is the content for the second section. </div> </div> </div> <div class="card"> <div class="card-header btn-spl" role="tab" id="headingThree"> <h5 class="mb-0"> <a class="collapsed" data-toggle="collapse" data-parent="#accordion" href="#collapse3" aria-expanded="false" aria-controls="collapse3"> Heading 3 </a> </h5> </div> <div id="collapse3" class="collapse" role="tabpanel" aria-labelledby="headingThree"> <div class="card-block"> Here is the content for the third section. </div> </div> </div> <div class="card"> <div class="card-header btn-spl" role="tab" id="headingFour"> <h5 class="mb-0"> <a class="collapsed" data-toggle="collapse" data-parent="#accordion" href="#collapse4" aria-expanded="false" aria-controls="collapse3"> Heading 4 </a> </h5> </div> <div id="collapse4" class="collapse" role="tabpanel" aria-labelledby="headingFour"> <div class="card-block"> Here is the content for the third section. </div> </div> </div> </div>

7.2 Dodawanie formularza kontaktowego w drugiej kolumnie za pomocą formularza

Formularz kontaktowy jest tworzony z domyślnym komponentem formularza Bootstrap 4 z nazwą, opcją wyboru z listy rozwijanej, polem tekstowym do wpisania komentarza oraz przyciskiem przesyłania.

<!-- Form --> <div class="col-md-6" style="padding:30px 50px;"> <div class="container" style="padding:30px;border:1px solid gray;"> <h3 class="title"><span>Contact Us</span></h3> <form> <!-- Text Input --> <div class="form-group"> <label for="username">Enter Username:</label> <input type="text" class="form-control" id="username" aria-describedby="Username" placeholder="Enter Username"> </div> <!-- Single Select --> <div class="form-group"> <label for="singleselect">Choose Option:</label> <select class="form-control" id="singleselect"> <option>Option 1</option> <option>Option 2</option> <option>Option 3</option> <option>Option 4</option> <option>Option 5</option> </select> </div> <!-- Textarea --> <div class="form-group"> <label for="textarea">Enter Your Comment:</label> <textarea class="form-control" id="textarea" rows="5"></textarea> </div> <!-- Submit Button --> <button type="submit" class="btn btn-success btn-spl btn-md">Submit</button> </form> </div> </div>

Na koniec dodajmy stopkę o pełnej szerokości za pomocą jumbotronu fluidowego.

<!-- Footer --> <div class="jumbotron-fluid"> <div class="container"> <h2 style="padding-bottom: 30px">This is a footer section of your page.</h2> <p class="lead">© All Rights Reserved <a href="https://www.webnots.com/">WebNots</a></p> </div> </div>

Stopka wymaga nieco dostosowania za pomocą następującego kodu CSS:

/* Footer Jumbotron */ .jumbotron-fluid { background: lightgrey; padding: 50px; text-align: center; }

Teraz Twój szablon Bootstrap 4 jest gotowy, pozwól nam urozmaicić go niestandardowym CSS.

9 Dodawanie niestandardowego CSS

Możesz dostosować dowolny komponent, dodając własny CSS. W naszym przykładzie dodajmy następujące dostosowania:

  • Dodaj efekt cienia do przycisku, zwijania i kart za pomocą dodatkowej klasy CSS „.btn-spl”.
  • Użyj klasy „.outframe”, aby dodać marginesy do elementów menu.
  • Dodaj dzielnik do nagłówków za pomocą klas „.title” i „.title span”.
  • Dostosuj przepełnienie treści i marginesu kart, aby uzyskać lepsze wyrównanie na mniejszych urządzeniach.

10 ostatecznych szablonów tematycznych

Łącząc wszystkie niestandardowe CSS i komponenty, ostateczny, jednostronicowy szablon Bootstrap 4 powinien wyglądać tak, jak pokazano w demo tutaj. Ten szablon jest w pełni responsywny i możesz pobrać pełny kod poniżej. Dodaliśmy link do favicon, opis meta i tytuł Twojej strony w sekcji nagłówka. Możesz dodatkowo dodać Google Analytics i kod reklamy na stronie, tak jak na stronie demonstracyjnej.

<!DOCTYPE html> <html lang="en"> <head> <!-- Meta Tags for Bootstrap 4 --> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <link rel="shortcut icon" type="image/png" href="Your Favicon Image Link" /> <meta name="description" content="Meta Description for your Page."> <title>Enter Title for Your Page</title> <!-- Bootstrap 4 CSS --> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous"> <style> /* Hide Overflow */ body { overflow-x: hidden; } /* Card Alignment */ .card { margin: 30px; text-align: center; } /* Header Jumbotron */ .jumbotron{ color: #990000; background-color: #fafafa; margin-bottom: -20px; background: #fff; text-align: center; border-radius: 0; } /* Footer Jumbotron */ .jumbotron-fluid { background: lightgrey; padding: 50px; text-align: center; } /* Margin for Menu */ .outframe { padding: 0 20px; } /* Shadow Effect for Button, Collapse & Cards */ .btn-spl { box-shadow: 0 1px 4px rgba(100, 20, 100, .6); border-radius: 0px; } /* Heading with Divider */ .title { line-height: 2.5; text-align: center; } .title span { display: inline-block; position: relative; } .title span:before, .title span:after { content: ""; position: absolute; height: 5px; border-bottom: 1px solid lightgray; border-top: 1px solid lightgray; top: 0; width: 75%; margin-top:35px; } .title span:before { right: 100%; margin-right: 15px; } .title span:after { left: 100%; margin-left: 15px; } </style> </head> <body> <!-- Navbar --> <nav class="navbar fixed-top navbar-toggleable-md navbar-inverse bg-primary"> <button class="navbar-toggler navbar-toggler-right" type="button" data-toggle="collapse" data-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation"> <span class="navbar-toggler-icon"></span> </button> <a class="navbar-brand" href="#"> <img src="assets/images/logo.png" width="30" height="30" class="d-inline-block align-top" alt="logo"> Bootstrap 4 Theme</a> <div class="collapse navbar-collapse" id="navbar"> <ul class="navbar-nav mr-auto ml-auto"> <li class="nav-item outframe"> <a class="nav-link" href="#">Home</a> </li> <li class="nav-item outframe"> <a class="nav-link" href="#">Menu</a> </li> <li class="nav-item dropdown outframe"> <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> Dropdown </a> <div class="dropdown-menu" aria-labelledby="navbarDropdown"> <a class="dropdown-item" href="#">Dropdown 1</a> <div class="dropdown-divider"></div> <a class="dropdown-item" href="#">Dropdown 2</a> <div class="dropdown-divider"></div> <a class="dropdown-item" href="#">Dropdown 3</a> </div> </li> </ul> <form class="form-inline my-2 my-lg-0"> <input class="form-control mr-sm-2" type="text" placeholder="Search"> <button class="btn btn-outline-success btn-spl my-2 my-sm-0" type="submit">Search</button> </form> </div> </nav> <br><br> <!-- Carousel --> <div id="slidercaption" class="carousel slide" data-ride="carousel"> <ol class="carousel-indicators"> <li data-target="#slidercaption" data-slide-to="0" class="active"></li> <li data-target="#slidercaption" data-slide-to="1"></li> <li data-target="#slidercaption" data-slide-to="2"></li> </ol> <div class="carousel-inner" role="listbox"> <div class="carousel-item active"> <img class="d-block img-fluid" src="https://img.webnots.com/2017/05/BS_Slide1.jpg" alt="Slide1" width="100%"> <div class="carousel-caption d-none d-md-block"> <h3>Here is a caption for slide 1</h3> <p>Here is short description for slide 1</p> </div> </div> <div class="carousel-item"> <img class="d-block img-fluid" src="https://img.webnots.com/2017/05/BS_Slide2.jpg" alt="Slide2" width="100%"> <div class="carousel-caption d-none d-md-block"> <h3>Here is a caption for slide 2</h3> <p>Here is short description for slide 2</p> </div> </div> <div class="carousel-item"> <img class="d-block img-fluid" src="https://img.webnots.com/2017/05/BS_Slide3.jpg" alt="Slide3" width="100%"> <div class="carousel-caption d-none d-md-block"> <h3>Here is a caption for slide 3</h3> <p>Here is short description for slide 3</p> </div> </div> </div> <a class="carousel-control-prev" href="#slidercaption" role="button" data-slide="prev"> <span class="carousel-control-prev-icon" aria-hidden="true"></span> <span class="sr-only">Previous</span> </a> <a class="carousel-control-next" href="#slidercaption" role="button" data-slide="next"> <span class="carousel-control-next-icon" aria-hidden="true"></span> <span class="sr-only">Next</span> </a> </div> <!-- Hero Header Jumbotron --> <div class="jumbotron"> <h1 class="display-3">Bootstrap 4 Template</h1> <p class="lead">This is a demo theme created with Bootstrap 4. Add some attractive heading for your page here.</p> <hr class="my-4"> <p>Add your subtitle here to explain more about this page in detail.</p> <a class="btn btn-primary btn-lg btn-spl" href="#" role="button">View Facebook Page</a> </div> <h3 class="title"><span>Order Products</span></h3> <!-- Card Deck --> <div class="card-deck"> <div class="card btn-spl"> <img class="card-img-top" src="https://img.webnots.com/2017/04/Bootstrap-Card-Image.png" alt="Card image cap"> <div class="card-block"> <h4 class="card-title">Product 1</h4> <p class="card-text">Here is a longer description of the card and the height will be auto aligned with flex box.</p> <button class="btn btn-primary btn-spl" href="#" role="button">Buy Now</button> </div> <div class="card-footer"> <small class="text-muted">Here is a footer</small> </div> </div> <div class="card btn-spl"> <img class="card-img-top" src="https://img.webnots.com/2017/04/Bootstrap-Card-Image.png" alt="Card image cap"> <div class="card-block"> <h4 class="card-title">Product 2</h4> <p class="card-text">Here is a shorter description of the card.</p> <button class="btn btn-danger btn-spl" href="#" role="button">Buy Now</button> </div> <div class="card-footer"> <small class="text-muted">Here is a footer</small> </div> </div> <div class="card btn-spl"> <img class="card-img-top" src="https://img.webnots.com/2017/04/Bootstrap-Card-Image.png" alt="Card image cap"> <div class="card-block"> <h4 class="card-title">Product 3</h4> <p class="card-text">Here is a longer description of the card and the height will be auto aligned with flex box.</p> <button class="btn btn-secondary btn-spl" href="#" role="button">Buy Now</button> </div> <div class="card-footer"> <small class="text-muted">Here is a footer</small> </div> </div> </div> <hr class="my-5"> <div class="row"> <div class="col-md-6" style="padding:30px 50px;"> <div class="container" style="padding:30px;border:1px solid gray;"> <h3 class="title"><span>Read FAQ</span></h3> <!-- Collapse --> <div id="accordion" role="tablist" aria-multiselectable="true"> <div class="card"> <div class="card-header btn-spl" role="tab" id="firstheading"> <h5 class="mb-0"> <a class="collapsed" data-toggle="collapse" data-parent="#accordion" href="#collapse1" aria-expanded="false" aria-controls="collapse1"> Heading 1 </a> </h5> </div> <div id="collapse1" class="collapse" role="tabpanel" aria-labelledby="firstheading"> <div class="card-block"> Here is the content for the first section. </div> </div> </div> <div class="card"> <div class="card-header btn-spl" role="tab" id="secondheading"> <h5 class="mb-0"> <a class="collapsed" data-toggle="collapse" data-parent="#accordion" href="#collapse2" aria-expanded="false" aria-controls="collapse2"> Heading 2 </a> </h5> </div> <div id="collapse2" class="collapse" role="tabpanel" aria-labelledby="secondheading"> <div class="card-block"> Here is the content for the second section. </div> </div> </div> <div class="card"> <div class="card-header btn-spl" role="tab" id="headingThree"> <h5 class="mb-0"> <a class="collapsed" data-toggle="collapse" data-parent="#accordion" href="#collapse3" aria-expanded="false" aria-controls="collapse3"> Heading 3 </a> </h5> </div> <div id="collapse3" class="collapse" role="tabpanel" aria-labelledby="headingThree"> <div class="card-block"> Here is the content for the third section. </div> </div> </div> <div class="card"> <div class="card-header btn-spl" role="tab" id="headingFour"> <h5 class="mb-0"> <a class="collapsed" data-toggle="collapse" data-parent="#accordion" href="#collapse4" aria-expanded="false" aria-controls="collapse3"> Heading 4 </a> </h5> </div> <div id="collapse4" class="collapse" role="tabpanel" aria-labelledby="headingFour"> <div class="card-block"> Here is the content for the third section. </div> </div> </div> </div> </div> </div> <!-- Form --> <div class="col-md-6" style="padding:30px 50px;"> <div class="container" style="padding:30px;border:1px solid gray;"> <h3 class="title"><span>Contact Us</span></h3> <form> <!-- Text Input --> <div class="form-group"> <label for="username">Enter Username:</label> <input type="text" class="form-control" id="username" aria-describedby="Username" placeholder="Enter Username"> </div> <!-- Single Select --> <div class="form-group"> <label for="singleselect">Choose Option:</label> <select class="form-control" id="singleselect"> <option>Option 1</option> <option>Option 2</option> <option>Option 3</option> <option>Option 4</option> <option>Option 5</option> </select> </div> <!-- Textarea --> <div class="form-group"> <label for="textarea">Enter Your Comment:</label> <textarea class="form-control" id="textarea" rows="5"></textarea> </div> <!-- Submit Button --> <button type="submit" class="btn btn-success btn-spl btn-md">Submit</button> </form> </div> </div> </div> <!-- Footer --> <div class="jumbotron-fluid"> <div class="container"> <h2 style="padding-bottom: 30px">This is a footer section of your page.</h2> <p class="lead">© All Rights Reserved <a href="https://www.webnots.com/">WebNots</a></p> </div> </div> <!-- Bootstrap 4 Scripts --> <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script> </body> </html>

Teraz możesz dodać więcej stron, korzystając z domyślnych komponentów, takich jak paski postępu, alerty, odznaki, tabele itp. I odpowiednio połączyć w menu nawigacyjnym. Jeśli planujesz mieć wiele stron, zalecamy pobranie plików Bootstrap na swój komputer i uporządkowanie struktury plików jak poniżej:

Jak stworzyć motyw Bootstrap od podstaw?

Struktura pliku motywu Bootstrap 4

Zapisz wszystkie swoje niestandardowe kody CSS w pliku „style.css” i połącz plik na wszystkich swoich stronach. Zasadniczo możesz zmienić szablon startowy za pomocą hostowanych adresów URL z linkami względnymi, jak poniżej (utrzymujemy obrazy w osobnej witrynie, możesz uwzględnić względne adresy URL obrazów w kodzie HTML):

<!DOCTYPE html> <html lang="en"> <head> <!-- Meta Tags for Bootstrap 4 --> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <!-- Bootstrap 4 CSS --> <link rel="stylesheet" href="assets/css/bootstrap.min.css"> <!-- Custom CSS --> <link rel="stylesheet" href="assets/css/style.css"> </head> <body> Add Your Content Here <!-- Bootstrap 4 Scripts --> <script src="assets/js/jquery.min.js"></script> <script src="assets/js/bootstrap.bundle.min.js"></script> </body> </html>

Możesz kontynuować dodawanie dowolnej liczby stron i modyfikować łącza w komponencie paska nawigacyjnego. Gdy wszystkie strony będą gotowe, po prostu prześlij je do wybranego folderu na serwerze hostingowym. Pamiętaj, że przechowując prekompilowane pliki na swoim serwerze, użyj „bootstrap.bundle.min.js”. Ta dołączona wersja zawiera skrypt poppera, dlatego nie musisz umieszczać w szablonie „popper.js”. Możliwości są nieskończone i wystarczy poświęcić kilka dni na zbudowanie własnego motywu lub witryny.

Wniosek

Framework Bootstrap 4 jest potężniejszy niż poprzednia wersja 3. Kiedy planujesz budować niezależne motywy, nadszedł czas, aby nauczyć się sztuczek i rozpocząć własny biznes tematyczny. Nawet na dostosowania nie musisz spędzać zbyt dużo czasu. W sieci dostępne są setki darmowych zestawów interfejsu użytkownika, które można wykorzystać do dostosowania komponentów, aby dodać profesjonalny wygląd do swojego motywu.

Źródło nagrywania: webnots.com
Leave A Reply

Ta strona korzysta z plików cookie, aby poprawić Twoje wrażenia. Zakładamy, że nie masz nic przeciwko, ale możesz zrezygnować, jeśli chcesz. Akceptuję Więcej szczegółów