Hướng dẫn css loading


Loading CSSCss-loader npmHiệu ứng loadingCss-loader githubConfig SCSS

Loading buttons là các button được thêm các icon loading để thể hiện cho việc thao tác của người dùng đang được thực hiện. Ứng dụng mà chúng ta hay gặp nhất của loading button có lẽ là trong các bước download một tài liệu nào đó từ internet. Trong bài này mình sẽ hướng dẫn các bạn tạo ra một loading button đơn giản với CSS.

Hướng dẫn css loading

Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

1. Xây dựng giao diện

Đầu tiên là phần giao diện hiển thị, các bạn tạo file index.html và tạo ra các thành phần bằng đoạn mã dưới đây:

<div class="container">
  <h2>Freetuts.net hướng dẫn tạo loading button</h2>

  <button class="buttonload">
    <i class="fa fa-spinner fa-spin"></i>Loading
  </button>

  <button class="buttonload">
    <i class="fa fa-circle-o-notch fa-spin"></i>Loading
  </button>

  <button class="buttonload">
    <i class="fa fa-refresh fa-spin"></i>Loading
  </button>
</div>

Ở đây mình sẽ tạo ra các button để trong bước sau ta sẽ gán các icon vào cho chúng, các bạn lưu ý giữ nguyên tên class nhé vì nó sẽ quyết định icon hiển thị lí do mình sẽ giải thích ở phần sau, cùng chuyển đến bước tiếp theo nhé.

2. Thêm CSS để định dạng các thành phần

Trong bước này chúng ta sẽ sử dụng CSS để định dạng cho các thành phần đã tạo ở trên, đầu tiên các bạn đặt đoạn mã sau trong thẻ head để nhúng file font-awesome.min.css:

Bài viết này được đăng tại [free tuts .net]

Code

<link rel="stylesheet" href="./Font-Awesomecss/css/font-awesome.min.css">

Nếu như các bạn còn chưa biết thì font-awesome là một bộ font hình biểu tượng, nó sẽ giúp chúng ta nhúng các icon vào website mà không cần dùng đến hình ảnh, link tải font-awesome mình sẽ đặt ở cuối bài viết, các bạn tải về và giải nén vào thư mục Font-Awesomecss nhé. Việc sử dụng font awnsome để tạo icon chính là lí do mà mình yêu cầu các bạn giữ nguyên tên các class ở bước 1.

Tiếp đến, các bạn đặt đoạn mã CSS này vào bên trong thẻ style nhé:

.container {
  width: 500px;
  margin: auto;
}
/* Định dạng cho button */
.buttonload {
    background-color: #4CAF50; /* Màu nền */
    border: none; /* không hiển thị border */
    color: white; /* Màu chữ */
    padding: 12px 16px; /* thêm padding */
    font-size: 16px /* cỡ chữ */
}
.fa {
    margin-left: -12px;
    margin-right: 8px;
}

Đoạn mã này rất đơn giản và mình đã có ghi chú rõ ràng trong mã nguồn.

Vậy là xong, giờ các bạn chạy file index.html để xem thành quả nhé.

3. Lời kết

Qua bài viết này mình đã cùng các bạn tạo thành công một Loading button, nó sẽ giúp bạn có thêm lựa chọn khi hiển thị các button trên website của mình, Nếu có bất cứ thắc mắc nào các bạn có thể để lại trong phần bình luận, hẹn gặp lại trong các bài viết tiếp theo trên freetuts.net.

Tham khảo: w3schools.com

Danh sách file tải về

Tên file tải vềPass giải nén
Download Font-Awesome freetuts.net hoặc gameportable.net

  • Trang chủ
  • Hướng dẫn học
  • Hướng dẫn học webpack
  • Webpack css loader

Cài đặt và setting Webpack css loader

  • Khi làm việc với Webpack, bạn cần tập làm quen với việc import css ngay bên trong file javascript, việc này sẽ tiện lợi cho việc sắp xếp, dọn dẹp tự động có trong Webpack.
  • Để xử lý việc import CSS bên trong một file Javascript, chúng ta cần:
    • Cài đặt style-loader: Giúp thêm CSS vào DOM dưới dạng cấu trúc style.
    • Cài đặt css-loader: Giúp biên dịch @importurl().
  • Để hiểu rõ hơn về style-loadercss-loader, ta xem ví dụ như bên dưới nhé:

Loading CSS

  • Trước tiên ta tạo file style.css bên trong thư mục src với nội dung sau:

Nội dung file /dist/index.html

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title<Output Management</title>
  </head>
  <body>
  <script type="text/javascript" src="newfile.js"></script></body>
</html>

Thực hiện import nội dung /src/style.css vào /src/index.js

import './style.css';
function component() {
  const element = document.createElement('div');
  element.innerHTML = 'Hello World!';
  return element;
}
document.body.appendChild(component());

Webpack-project

  • node_modules

    • ...
  • Hướng dẫn css loading
    package.json
  • Hướng dẫn css loading
    webpack.config.js
  • Hướng dẫn css loading
    package-lock.json
  • dist

  • src

  • Khi này click chạy file /dist/index.html ta thấy vẫn chưa có gì thay đổi:

Hiển thị trình duyệt

Hello World!

This content called from my-test.js!

  • Để javascript nhận được import './style.css'; ta thực hiện như sau:

Cài đặt style-loadercss-loader

npm install --save-dev style-loader css-loader

Kết quả

Hướng dẫn css loading

  • Chỉnh lại file webpack.config.js với nội dung sau:

const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const { CleanWebpackPlugin } = require('clean-webpack-plugin');

module.exports = {
  entry: {
    newfile: [
      './src/index.js',
      './src/my-test.js'
    ]
  },
  plugins: [
    new CleanWebpackPlugin(),
    new HtmlWebpackPlugin({
      title: 'Output Management'
    })
  ],
  output: {
    filename: '[name].js',
    path: path.resolve(__dirname, 'dist')
  },
  module: {
    rules: [
      {
        test: /\.css$/,
        use: [
          'style-loader',
          'css-loader'
        ]
      }
    ]
  }
};

  • Tiến hành chạy lệnh npm để thực thi nội dung trên:
  • Khi này click chạy file /dist/index.html ta thấy nội dung bên trong /src/style.css đã được gọi:

Hiển thị trình duyệt

Hello World!

This content called from my-test.js!

  • Lúc này xem lại nội dung bên trong /dist/index.html vẫn không có gì thay đổi.

Các lệnh chính đã sử dụng trong toàn bộ bài học

Bài họcLệnh đã dùng
Cài đặt Webpack

cd Webpack-project
npm init -y
npm install --save-dev webpack
npm install --save-dev webpack-cli

Webpack bundle

npx webpack

Cấu hình Webpack

npx webpack --config webpack.config.js
npm run build

Webpack quản lý output

npm run build

Webpack code splitting

npm install --save lodash
npm run build
npm run build

Cài đặt và setting HtmlWebpackPlugin

npm install --save-dev html-webpack-plugin
npm run build

Cài đặt và setting CleanWebpackPlugin

npm install --save-dev clean-webpack-plugin
npm run build

Webpack Cache

npm run build
npm run build

Webpack gom chung các file javascript

npm run build

Webpack source map

npm run build
npm run build

Webpack css loader

npm install --save-dev style-loader css-loader
npm run build