Getting Started with Bootstrap

Extending Bootstrap


March 2014

$13.99

Written for intermediate frontend developers, this book helps you extend Bootstrap, allowing you to tailor your project using themes, third-party plugins, and plugins you’ve customized yourself. A practical, instruction-based guide.

(For more resources related to this topic, see here.)

Why use Bootstrap?

Bootstrap contains a top-notch, responsive mobile-first grid, which allows you to implement your design in a breeze; it comes with ready-made styles for typography, navigation, tables, forms, buttons, and more.

Bootstrap also includes some jQuery plugins, such as Modal, Dropdown, Tooltip, and Carousel, which come in handy quite often.

Today, you can use Bootstrap to throw together quick prototypes or guide the execution of more sophisticated designs and larger engineering efforts. In other words, Bootstrap is a very simple way to promote quick, clean and highly usable applications.

– Mark Otto, creator of Bootstrap

Even though Bootstrap comes with all these features, none of them actually get in the way of further customization. Bootstrap is very easy to extend, especially if you use LESS instead of traditional CSS.

At its core, Bootstrap is just CSS, but it's built with Less, a flexible pre-processor that offers much more power and flexibility than regular CSS. With Less, we gain a range of features like nested declarations, variables, mixins, operations, and color functions.

– Mark Otto, creator of Bootstrap

Next, you will learn about the advantages and disadvantages of using Bootstrap.

Bootstrap pros and cons

As with many things, using Bootstrap too has its pros and cons. Let us list some important things that you will need to know when you decide whether or not to use Bootstrap in your project.

The pros are as follows:

  • Cross-browser support: Bootstrap works on all the latest desktop and mobile browsers. While older browsers may display Bootstrap differently with respect to styles, it is still fully functional in legacy browsers such as Internet Explorer 8.
  • Easy to customize: Bootstrap is easy to customize, especially with the use of LESS. You can also leave out parts that you do not need, that is, you can use only its grid and leave out all the components, or you can leave out the grid and use its components.
  • Encourages using LESS : Bootstrap is written in LESS, a dynamic style sheet language that is compiled into CSS, which gives it a lot of flexibility. You can take advantage of this if you use LESS to write your styles.
  • Supports useful jQuery plugins: Bootstrap comes with many useful jQuery plugins that can come handy in many situations. The quality of the plugins is not the best, and they usually work best when you do not customize them at all.
  • Many custom jQuery plugins available: There is a wide range of jQuery plugins that extend Bootstrap, for example, X-editable, Wysihtml5, and the jQuery File Upload.
  • Mobile-first: Bootstrap has been mobile-first since Version 3.0. This means that the grid starts out stacked and is floated using media queries when the screen width grows.

The cons are as follows:

  • jQuery plugins are hard to customize : The jQuery plugins that come with Bootstrap are often hard to customize, and many argue that they are not written using best practices, so it can be challenging to work with the source code at times. Usually, the plugins work in the most common cases but they come up short when you try to customize them a bit.
  • Many Bootstrap sites end up looking alike: It is unfortunate that many sites that are built with Bootstrap look exactly the same, but you can avoid this by using a custom theme or creating your own theme.
  • Creating your first Bootstrap project

    Now that you know when it is suitable to use Bootstrap, you are ready to start your first Bootstrap project. Perform the following steps to get started:

    1. Create a new folder for your Bootstrap project inside your document root. You can call it bootstrap-app.
    2. Pick up the latest version of Bootstrap from http://getbootstrap.com and unpack it into your project directory.
    3. Create a new HTML document, add the following contents, and save it in your project directory as index.html in the following manner:

      <!DOCTYPE html>
      <html>
      <head>
      <title>Hello from Bootstrap</title>
      <!-- Ensure proper rendering and touch zooming on mobile devices -->
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <link href="css/bootstrap.min.css" rel="stylesheet">
      <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media
      queries -->
      <!--[if lt IE 9]>
      <script src ="https://oss.maxcdn.com/libs/html5shiv/3.7.0/ html5shiv.js">
      </script>
      <script src ="https://oss.maxcdn.com/libs/respond.js/1.3.0/ respond.min.js">
      </script>
      <![endif]-->
      </head>
      <body>
      <h1>Hello, world!</h1>
      </body>
      </html>

      You can omit html5shiv.js and respond.js if you don't wish to support older versions of Internet Explorer.

    Let us look at the following reasons why we included all those CSS and JavaScript files:

    • bootstrap.min.css: It is the minified version of the Bootstrap CSS styles
    • html5shiv.js: It adds HTML5 support to older browsers
    • respond.min.js: It adds media query support to older browsers

    Navigate to your project directory using your favorite web browser; you should see your project in action as shown in the following screenshot. Not too impressive, but do not worry, you will soon add more to it.

    For more information on how to get started with Bootstrap, refer to the Getting started page on the official site at http://getbootstrap.com/getting-started/.

    Summary

    In this article, you learned about the pros and cons of Bootstrap, as well as how to decide whether or not to use Bootstrap in a project. You also learned how to create a very simple Bootstrap project.

    Resources for Article:


    Further resources on this subject:


    Books to Consider

    comments powered by Disqus