如何使用 SASS 和 Bootstrap 制作响应式网站?

前言

随着移动设备的普及,响应式设计已经成为网站设计的重要趋势。但是如何实现具有响应式的网站呢?在本篇文章中,我们将介绍如何使用 SASS 和 Bootstrap 制作响应式网站。

SASS

SASS 是一种 CSS 预处理器,它可以让我们使用类似编程语言的语法来编写 CSS,比原生 CSS 更加简洁、易读和易维护。SASS 的主要功能包括变量、嵌套规则、混合模式、函数和继承。

下面是一个简单的 SASS 示例代码:

$primary-color: #007bff;

.btn {
  color: $primary-color;
  background-color: white;
  border: 1px solid $primary-color;
  
  &:hover {
    background-color: $primary-color;
    color: white;
  }
}

在上面的代码中,我们定义了一个名为 $primary-color 的变量,它的值是蓝色。然后我们定义了一个 .btn 类,规定了按钮的颜色、背景色和边框样式,并在按钮被鼠标悬停时改变了背景色和字体颜色。

使用 SASS 可以让我们在写样式时更加方便和灵活,同时也能减少代码的冗余,提高代码的可维护性和重用性。

Bootstrap

Bootstrap 是一个流行的前端框架,由 Twitter 开发。它提供了一系列的样式和组件,包括网格系统、表格、表单、导航栏、标签页、警告框等,可以帮助我们快速构建响应式的网站。

下面是一个使用 Bootstrap 布局的示例代码:

<div class="container-fluid">
  <div class="row">
    <div class="col-md-3">左侧栏</div>
    <div class="col-md-9">内容区</div>
  </div>
</div>

在上面的代码中,我们使用了 .container-fluid 类来创建一个全宽度的容器,然后使用 .row 类创建一行,并在这一行中使用 .col-md-3 类和 .col-md-9 类分别定义了两列,其中前者占据了 3/12 的宽度,后者则占据了 9/12 的宽度。

使用 Bootstrap 可以让我们快速构建响应式网站,而且还可以减少代码的编写量和提高网站的兼容性和可维护性。

实战演练

下面我们将介绍如何使用 SASS 和 Bootstrap 制作一个响应式的网站,包括页面头部、导航栏、内容区和底部。

页面头部

首先我们创建一个名为 header.html 的文件,并在文件中添加如下代码:

<!doctype html>
<html>
<head>
  <meta charset="utf-8">
  <title>响应式网站</title>
  <link rel="stylesheet" href="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/4.6.0/css/bootstrap.min.css">
  <link rel="stylesheet" href="style.scss">
</head>
<body>
  <header>
    <div class="container-fluid bg-primary">
      <div class="row">
        <div class="col-md-2">
          <a href="#" class="navbar-brand">LOGO</a>
        </div>
        <div class="col-md-10">
          <h1 class="text-center text-white py-3">响应式网站</h1>
        </div>
      </div>
    </div>
  </header>

在上面的代码中,我们首先引入了 Bootstrap 的 CSS 文件和 style.scss 文件。然后我们在页面中添加了一个页面头部,使用了 .container-fluid 类创建一个全宽度的容器,并在容器中分别添加了两列,左侧列中包含了一个 LOGO,右侧列中显示了网站的标题。

导航栏

接下来我们需要添加一个导航栏,在 header 中添加如下代码:

    <nav class="navbar navbar-expand-md navbar-light bg-light">
      <div class="container-fluid">
        <button class="navbar-toggler" 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>
        <div class="collapse navbar-collapse" id="navbar">
          <ul class="navbar-nav mr-auto">
            <li class="nav-item active">
              <a class="nav-link" href="#">首页</a>
            </li>
            <li class="nav-item">
              <a class="nav-link" href="#">关于我们</a>
            </li>
            <li class="nav-item">
              <a class="nav-link" href="#">联系我们</a>
            </li>
          </ul>
        </div>
      </div>
    </nav>

在上面的代码中,我们使用了 .navbar-expand-md 类来将导航栏扩展到中型设备,使用了 .navbar-light 类来设置导航栏背景色为浅色,并使用了 .navbar-toggler 类创建了一个响应式的折叠按钮。然后我们在导航栏中添加了三个菜单项,分别指向首页、关于我们和联系我们。

内容区

接下来我们需要在页面中添加一个内容区,以显示网站的主要内容。在 index.html 文件中添加如下代码:

  <main class="container my-5">
    <div class="row">
      <div class="col-md-3">
        <div class="card mb-3">
          <img src="https://via.placeholder.com/300x200.png?text=Card+Image" class="card-img-top" alt="Card Image">
          <div class="card-body">
            <h5 class="card-title">Card Title</h5>
            <p class="card-text">Card Text</p>
            <a href="#" class="btn btn-primary">Read More</a>
          </div>
        </div>
      </div>
      <div class="col-md-3">
        <div class="card mb-3">
          <img src="https://via.placeholder.com/300x200.png?text=Card+Image" class="card-img-top" alt="Card Image">
          <div class="card-body">
            <h5 class="card-title">Card Title</h5>
            <p class="card-text">Card Text</p>
            <a href="#" class="btn btn-primary">Read More</a>
          </div>
        </div>
      </div>
      <div class="col-md-3">
        <div class="card mb-3">
          <img src="https://via.placeholder.com/300x200.png?text=Card+Image" class="card-img-top" alt="Card Image">
          <div class="card-body">
            <h5 class="card-title">Card Title</h5>
            <p class="card-text">Card Text</p>
            <a href="#" class="btn btn-primary">Read More</a>
          </div>
        </div>
      </div>
      <div class="col-md-3">
        <div class="card mb-3">
          <img src="https://via.placeholder.com/300x200.png?text=Card+Image" class="card-img-top" alt="Card Image">
          <div class="card-body">
            <h5 class="card-title">Card Title</h5>
            <p class="card-text">Card Text</p>
            <a href="#" class="btn btn-primary">Read More</a>
          </div>
        </div>
      </div>
    </div>
  </main>

在上面的代码中,我们使用了 .container 类来创建一个固定宽度的容器,并在容器中创建了一个包含 4 个列的行,每列中显示了一张图片、一个标题、一段文本和一个"阅读更多"按钮。我们使用了 Bootstrap 的卡片组件来美化图片和文本的排版,同时也让网站看起来更加现代化和美观。

底部

最后我们需要添加一个页面底部,在 index.html 文件中添加如下代码:

  <footer class="bg-secondary text-center py-3 mt-auto">
    <p class="text-white">版权所有 © 2021 响应式网站</p>
  </footer>
</body>
</html>

在上面的代码中,我们创建了一个带有灰色背景的底部,并在底部中添加了一个版权声明。使用 .text-center 类可以让文本在页面中居中显示,使用 .py-3 类可以设置内边距的大小,使用 .mt-auto 类可以让底部在页面内容不足时自动定位在页面底部。

总结

在本文中,我们介绍了如何使用 SASS 和 Bootstrap 制作响应式网站。SASS 可以让我们使用类似编程语言的语法来编写 CSS,提高代码的可维护性和重用性,而 Bootstrap 可以帮助我们快速构建响应式的网站,同时也可以减少代码的编写量和提高网站的兼容性和可维护性。通过实战演练,我们学习了如何使用 SASS 和 Bootstrap 分别创建页面头部、导航栏、内容区和底部,以及如何使用 Bootstrap 的卡片组件创建图片和文本的排版。希望本文可以帮助读者更加深入地理解响应式网站的设计和实现,让学习和开发更加高效和愉悦。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/65af8203add4f0e0ff8f3a04