Tự học Sass CSS trong 10 Phút

Ngày đăng: 21/02/2020   -    Cập nhật: 14/04/2021
"Sass là cô gái đẹp, phải đến với Sass và nói những lời hay ho.

Học dùng được SASS khiến anh cảm thấy mình cũng rất gì... và này nọ!"


Tự học SASS

Tự học SASS


Nếu bạn là một lập trình viên Front end, Lập trình viên Web bạn sẽ biết CSS có thể rất thú vị.


Nhưng khi các file CSS của bạn lớn hơn, chúng sẽ khó bảo trì và sắp xếp hơn.


Đó là lúc mà các Bộ tiền xử lý CSS như SASS xuất hiện để giúp bạn tiết kiệm thời gian.

 


SASS giúp cho các lập trình viên frontend nâng cao các kỹ năng frontend với các tính năng độc đáo.


SASS mở rộng khả năng của CSS.


Hôm nay chúng ta sẽ cùng tìm hiểu, cùng Học SASS như một người mới bắt đầu để bạn dần quen với công cụ viết CSS thực tế này.


Đây là những thứ chúng ta sẽ cùng học về SASS:



  • SASS là gì?
  • CSS Preprocessor là gì?
  • Tại sao nên sử dụng CSS Preprocessor?
  • SASS vs CSS vs SCSS
  • Các tính năng của SASS
  • Quy trình xây dựng


Trước khi bắt đầu, mình có một gợi ý:


Nếu bạn đã sẵn sàng và muốn học lập trình web

bài bản bao gồm cả Front endBack end, hãy

tham gia ngay Khóa học PHP Full stack hoặc

Khóa học Java Full stack

Hay bạn cũng có thể Tự học Java


1. SASS là gì?



SASS là viết tắt của từ Syntactively Awesome Style Sheets


SASS là ngôn ngữ kịch bản và bộ tiền xử lý CSS, biên dịch mã thành CSS để giúp bạn viết CSS nhanh hơn, dễ dàng hơn, thanh lịch hơn.


SASS bổ sung các tính năngcông cụ mới trên CSS cơ bản giúp bạn sắp xếp CSS tối ưu hơn, dễ duy trì, sửa chữa hơn.


Bằng cách mở rộng mã CSS, SASS làm cho các dự án lớn thân thiện hơn.



2. CSS Preprocessor là gì?



SASS là một công cụ được gọi là CSS Preprocessor (Bộ tiền xử lý) được sử dụng để giúp mã CSS dễ bảo trì hơn.


Nó thực sự có ý nghĩa như thế nào?


Như bạn biết, viết CSS cho dự án lớn có thể bị lặp đi lặp lại.


Mà lặp đi lặp lại mã là không cần thiết, thừa, nặng, gây nhầm lẫn...


Thế nên,


Một bộ tiền xử lý sẽ giải quyết vấn đề này!


Bộ tiền xử lý về cơ bản là một ngôn ngữ kịch bản lấy một loại dữ liệu và chuyển đổi nó thành loại khác.


Bộ tiền xử lý CSS mở rộng các tính năng mặc định của CSS bằng cách cho phép bạn viết CSS bằng cú pháp của SASS.


Sau đó biên dịch nó thành CSS.



3. Tại sao nên sử dụng CSS Preprocessor?



Một bộ tiền xử lý CSS có khả năng tăng năng suất rất lớn.


Thông thường,


Trong các dự án chuyên nghiệp, người ta không viết CSS.


Người ta chỉ viết SASS và biên dịch nó thành CSS.


Vì thế,


Sau khi học CSS, bạn phải học SASS nếu muốn làm việc thực tế.


Đây cũng là bước nâng cấp kỹ năng cần thiết của bất kỳ lập trình viên Front end chuyên nghiệp nào.


> Tham khảo ngay KHÓA HỌC FRONT END chuyên nghiệp. Đào tạo từ HTML, CSS, JavaScript cho tới React


Bộ tiền xử lý CSS này tăng tốc sản xuất và giải quyết nhiều hạn chế của CSS.


Dưới đây là một vài ưu điểm chính của việc sử dụng bộ tiền xử lý CSS (đại diện là SASS):



#1. SASS giúp tạo mã sạch hơn do nesting và variables.




Một lợi thế rất lớn của SASS là bạn có thể lồng (nesting) các CSS Selector trong Selector khác.


Nó giúp bạn trực quan hóa khi CSS cho các phần tử dạng cha - con (phân cấp)...


Tương tự, với SASS, bạn có thể sử dụng các biến (variables).


Biến cho phép bạn lưu trữ một giá trị và sử dụng lại chúng trong các đoạn css khác.


 

#2. SASS giữ code CSS của bạn "KHÔ" =))



DRY ("Don't Repeat Yourself") có nghĩa là đừng lặp lại code.


Vì với cú pháp SASS, bạn có thể sử dụng lại các đoạn code mà bạn đã viết nên:


 
  • Bạn sẽ ít mắc lỗi hơn!
  • Code có tổ chức hơn và tiết kiệm thời gian hơn.
  • Code có hiệu suất tốt hơn.

 

#3. SASS linh hoạt hơn



Bộ tiền xử lý CSS sinh ra giải quyết một số tính năng cứng nhắc của CSS.


Có nhiều thứ bạn có thể làm khi bạn sử dụng bộ tiền xử lý CSS, chẳng hạn như điều kiện hoặc tính toán.


Bạn thậm chí có thể sửa đổi màu sắc một cách nhanh chóng trên toàn trang mà không cần mò sửa từng chỗ.



#3. SASS ổn định hơn CSS




Một bộ tiền xử lý bổ sung một mức độ ổn định nhất định thông qua các tính năng như:


  • mixins
  • nesting
  • inheritance
  • và nhiều hơn thế nữa...


... chúng ta sẽ cùng tìm hiểu về chúng ngay sau đây.


Quan trọng: Sự ổn định từ bộ tiền xử lý giúp dễ dàng xử lý các dự án lớn.



#4. SASS tổ chức code CSS tốt hơn.



Các tính năng như biến và hàm giúp bạn có thể giảm đi các dòng CSS dài dòng.


Làm cho nó dễ đọc và có tổ chức hơn.


Về lâu dài, code CSS có tổ chức tốt sẽ dễ dàng làm việc, chia sẻ và dễ chỉnh sửa hơn.



4. SASS vs CSS vs SCSS



CSS



CSS được sử dụng để thêm kiểu dáng và định dạng cho các trang web.


Các code CSS này được kết hợp với HTML và JavaScript để định nghĩa:



  • Phông chữ
  • Cỡ chữ
  • Màu sắc
  • ....


... để tạo ra giao diện thống nhất trên trang web.


Thông thường, một trang web sẽ có các file CSS để mô tả kiểu dáng cho tất cả phần tử của trang web.


Tuy nhiên, khi có rất nhiều file CSS, nhiều dòng CSS thì...


Với CSS cơ bản, bạn sẽ khó làm chủ, dễ phát sinh nhiều sai sót.


Đó là lý do tại sao SASS được phát triển như là "a better CSS".


Nó đem đến các tính năng mới và giúp làm việc dễ hơn.


SASShai dạng cú pháp khác nhau có thể gây nhầm lẫn cho người mới:



  • SASS
  • và SCSS


Hãy cùng tìm hiểu về sự khác nhau giữa chúng.


SCSS



SCSS (còn gọi là Sassy CSS) là tiêu chuẩn hiện đại của CSS sử dụng dấu ngoặc { }dấu chấm phẩy  ;


SCSS đã được giới thiệu trong phiên bản thứ 3 của SASS dưới dạng superset của CSS.


SCSS không mở rộng tiêu chuẩn CSS mà chỉ đơn giản là cú pháp 
CSS tiến bộ hơn.



Trên thực tế, CSS hợp lệ theo cú pháp SCSS, do đó, nó dễ dàng chuyển đổi qua lại giữa cả hai.


Các tệp SCSS sử dụng phần mở rộng .scss và khi chúng ta sử dụng SCSS, chúng ta vẫn gọi nó là SASS.


 

SASS



Mặt khác, SASS là một bộ tiền xử lý CSS và có cú pháp cũ hơn sử dụng thụt lề để tổ chức và tách các khối code.


Về cơ bản, nó cung cấp một cách viết CSS súc tích, mở rộng chức năng của CSS.


Các tệp SASS sử dụng phần mở rộng .sass



Nhìn chung, đây là những ưu điểm mà các lập trình viên đưa ra cho cả SCSS và SASS:
 


SASS là...

Súc tích hơn
Dễ đọc hơn
Ít quên  ; hơn (Vì nó không dùng ;)
Cộng đồng hỗ trợ lớn hơn


SCSS là...

Biểu cảm hơn
Module hơn
Tích hợp tốt với CSS


 

5. Các tính năng của SASS



SASS nghe rất tốt phải không?


Vậy,


Cụ thể thì SASS giúp bạn như thế nào?



Hãy cùng tìm hiểu về 5 tính năng quan trọng nhất của SASS để bạn nâng cấp code CSS của mình.

 

Variables: Biến trong SASS



Các biến cung cấp một cách để lưu trữ thông tin hoặc đóng gói các kiểu để bạn có thể sử dụng lại trong suốt file CSS của mình.

 

Ví dụ:
 

Bạn có thể lưu trữ các giá trị color hoặc font-family1

bằng tên, sau đó bạn có thể sử dụng lại bất cứ lúc nào

trong mã CSS của mình.

Nếu bạn cần thay đổi nó thành mã màu khác?

Chỉ cần sửa đổi tại chỗ bạn khai báo biến.

Nó sẽ tự động update trên toàn trang. Mà bạn không cần
phải sửa đổi từng chỗ như trước.

 


Các biến giúp bạn tiết kiệm hàng tấn thời gian để sửa lại code CSS đó và nó cũng giúp bạn không bỏ sót bất kỳ chỗ nào.


Tính năng biến trong SASS đặc biệt cần thiết cho các dự án lớn.


Định nghĩa một biến là khá đơn giản trong SASS.


Bạn chỉ cần sử dụng ký tự $.


Hãy cùng xem một ví dụ trong đó chúng ta gán một mã màu #ffff00 cho biến $color-primary.




* Để quen thuộc, mình vẫn sử dụng cú pháp kiểu SCSS (Có sử dụng dấu ngoặc nhọn và chấm phẩy)


* File của chúng ta sẽ lưu với phần mở rộng là .scss


 


$color-primary#ffff00; // Yellow

body {
  background-color$color-primary;
}
 



Bây giờ background-color là màu vàng, và khi chúng ta biên dịch code của mình, nó sẽ tạo ra code CSS như sau.

 


body {
    color#ffff00;
}
 


 

Nesting: Lồng CSS Selector



SASS thêm cú pháp lồng nhau (nesting), cho phép bạn nhắm mục tiêu các phần tử DOM theo cách gọn gàng hơn nhiều.


Bạn không còn phải viết lại các CSS Selector nhiều lần, do đó, việc thay đổi kiểu của bạn bây giờ rất dễ dàng.


Hãy xem code CSS gốc và so sánh nó với code SASS với cú pháp lồng nhau.


 

Lưu ý!

Cách lồng liul trong SASS trở nên trực quan, phân cấp giúp việc sử dụng, chỉnh sửa và đọc dễ dàng hơn nhiều.



Code CSS gốc:

 


.navbar {
    background-colororangered;
    padding1rem;
}
.navbar ul {
    list-stylenone;
}
.navbar li {
    text-aligncenter;
    margin1rem;
}
 



Code SASS:

 


.navbar {
  background-colororangered;
  padding1rem;
  ul {
    list-stylenone;
  }
  li {
    text-aligncenter;
    margin1rem;
  }
}
 

 

Mixin: Nhóm CSS



Mixins trong SASS cho phép bạn nhóm nhiều dòng CSS lại với nhau mà bạn có thể sử dụng lại ở bất cứ đâu.


Chúng tương tự như các function trong các ngôn ngữ lập trình khác.


 

Lưu ý!

Mixin khác với Function nên đừng nhầm lẫn.



Để tạo một mixin, bạn chỉ cần định nghĩa mixin của mình.


Và sử dụng lại nó bằng cách sử dụng lệnh @include bất cứ nơi nào bạn muốn.


Mixin sau đó cũng có thể được cập nhật bất cứ lúc nào.


Tạo một Mixin trong SASS:


 


@mixin transform {
  -webkit-transformrotate(180deg);
  -ms-transformrotate(180deg);
  transformrotate(180deg);
}
 



Sử dụng Mixin:

 


.navbar {
  background-colororangered;
  padding1rem;
  ul {
    list-stylenone;
  }
  li {
    text-aligncenter;
    margin1rem;
    @include transform;
  }
}
 

 

Bạn có thấy Mixin gần giống với biến không?

Thay vì chỉ định nghĩa được một thuộc tính, mixin định nghĩa được một nhóm thuộc tính.


 

Extend / Inheritance: Mở rộng / Kế thừa trong CSS.



Đây là một trong những tính năng hữu ích nhất của Sass.


Sử dụng @extend cho phép bạn chia sẻ một tập các thuộc tính CSS Selector này sang selector khác.


Nó giúp cho Sass của bạn DRY.


Trong ví dụ bên dưới...


Chúng ta có tạo một tập thuộc tính để chuẩn bị để có thể mở rộng, bạn chỉ cần sử dụng ký tự % (placeholder classes) và đặt tên cho nó.


Placeholder classes là một loại class đặc biệt chỉ được in khi được mở rộng.


Nó có thể giúp giữ cho CSS được biên dịch của bạn gọn gàng và sạch sẽ.



* Thử sử dụng cú pháp kiểu SASS (Không ngoặc nhọn và không chấm phẩy)

 


/* CSS này sẽ được in vì nó được extend. */
%message-shared
    border1px solid #ccc
    padding10px
    color#333

/* CSS này không được in vì nó không được extend. */
%equal-heights
    displayflex
    flex-wrapwrap

.message
    @extend %message-shared

.success
    @extend %message-shared
    border-colorgreen

.error
    @extend %message-shared
    border-colorred

.warning
    @extend %message-shared
    border-coloryellow
 



Sau khi biên dịch, chúng ta có CSS như sau:

 


/* CSS này được in vì %message-shared được extend. */
.message.success.error.warning {
    border1px solid #ccc;
    padding10px;
    color#333;
}
  
.success {
    border-colorgreen;
 }
  
 .error {
    border-colorred;
 }
  
 .warning {
    border-coloryellow;
 }
 



Khi sử dụng @extend, tạo CSS, thì trong đó mỗi lớp (.success, .error, .warning) này sẽ nhận được các thuộc tính CSS giống như %message-shared.


Có nghĩa là trong phần tử HTML bạn chỉ cần đặt class là success hoặc error hoặc warrning.


Như thế này:

 


<div class="success"></div>
<div class="error"></div>
<div class="warning"></div>
 



Thay vì phải đặt như thế này trong CSS cơ bản:

 


<div class="message success"></div>
<div class="message error"></div>
<div class="message warning"></div>
 



Bạn có thể mở rộng hầu hết các CSS Selector đơn giản ngoài các placeholder trong Sass như:

 


.message-shared
    border1px solid #ccc
    padding10px
    color#333

.success
    @extend .message-shared
    border-colorgreen
 



Nhưng sử dụng placeholder là cách dễ nhất để quản lý code, nó đảm bảo là bạn không vô tình mở rộng một class đã được lồng ở nơi khác.


Nếu không, nó có thể dẫn đến các selector ngoài ý muốn.


Lưu ý rằng CSS
 %equal-height không được tạo, bởi vì %equal-height không được mở rộng.


 

Partials và Importing



SASS partials cho phép chúng ta chia các tệp thành các tệp nhỏ hơn.


Về cơ bản chúng ta có thể mô đun hóa CSS để tạo mã dễ bảo trì hơn.


Bạn có thể tạo ra một phần tệp chỉ chứa mã có liên quan cho mỗi phần.


Điều này rất tốt nếu tệp SASS của bạn quá lớn.


Tên của một phần bắt đầu bằng một dấu gạch dưới _.


Sau đó, nó có thể được import bất cứ lúc nào bằng cách sử dụng lệnh @import



Lưu ý!

Lệnh này khác với CSS, vì nó không tạo HTTP request.

Thay vào đó, nó nhập và kết hợp các tệp thành một

tệp CSS mà không ảnh hưởng đến hiệu suất.



Ví dụ:


Chúng ta có thể tạo một một file riêng cho header có tên _header.scss


Sau đó nó có thể được import lại vào main.scss bằng cách này:




// Trong main.scss
@import 'header';
 


6. Thiết lập Build Processes



Vì SASS có rất nhiều tính năng và công cụ.


Vậy, cuối cùng tất cả chúng sẽ hoạt động như thế nào?


Lúc này bạn cần thiết lập Build Processes (Quy trình xây dựng).


Build Processes là một chuỗi các nhiệm vụ thực hiện tự động sau khi chúng ta chạy dự án.


Tất cả các tệp của chúng ta được tạo và triển khai như một Web Server.


Một quy trình xây dựng có thể thúc đẩy quy trình phát triển của bạn.


Khi đó, bạn có thể biên dịch, hợp nhất, thêm tiền tốnén bằng một lệnh duy nhất.


Dưới đây mình sẽ giới thiệu ngắn gọn các bước để phát triển build processes giúp bạn làm việc dễ dàng hơn.


Dưới đây là các giai đoạn chúng ta cần có:



Giai đoạn 1: Compiling



Tệp main.scss thực hiện việc biên dịch sang CSS.


Như chúng ta đã học ở trên, SCSS biên dịch rất dễ dàng sang CSS.


Chúng ta thực hiện biên dịch bằng cách sử dụng tệp pack.json



Giai đoạn 2: Concatenating



Đây là nơi chúng ta hợp nhất tất cả các tệp CSS của chúng tôi thành một.


Chúng ta có thể kiểm tra điều này bằng cách sử dụng tệp CSS có tên là additional.css



Giai đoạn 3: Prefixing



Sử dụng autoprefixer để đảm bảo rằng các tệp của chúng ta hoạt động trên tất cả các trình duyệt chính bằng cách:


Thêm tiền tố của nhà cung cấp vào code của chúng ta.


Điều này có thể được thực hiện thủ công hoặc với một công cụ như Autoprefixer.



Giai đoạn 4: Compressing



Đây là giai đoạn chúng ta nén code của mình để tối đa hóa hiệu suất.


Chúng ta làm điều này bằng cách sử dụng dòng code sau đây:




"compress-css": "node-sass css/style.prefix.css css/style.css --output-style compressed"


 

Viết một đoạn script để chạy code



Khi các bước này được thực hiện trong package.json


Chúng ta có thể viết một tập lệnh cuối cùng để chạy tất cả code của cùng một lúc.


Chúng ta sử dụng dòng code sau đây:




"build-css": "npm-run-all compile-sass concat-css prefix-css compress-css"



Code cuối cùng của chúng ta sẽ thêm tất cả các tác vụ của chúng ta sẽ được chạy khi chúng ta thực thi lệnh build của mình.


Bao gồm:



  • compile-sass
  • concat-css
  • prefix-css
  • compress-css


Sau đó chúng ta có thể sử dụng package npm-run-all để kiểm tra xem nó có hoạt động trên các nền tảng khác nhau bằng lệnh sau:



npm install npm-run-all --save-dev



Sau đó, bạn có thể xóa các tệp của mình khỏi thư mục CSS và chạy lệnh build.



npm run build-css



Bây giờ tất cả các tệp CSS của bạn được tạo từ một lệnh duy nhất!


Rất dễ phải không?



Nâng cấp kỹ năng Front end thành công với SASS




Bây giờ bạn có biết về một số tính năng của SASS có thể thay đổi level lập trình front end của bạn.


SASS làm cho CSS của bạn đơn giản hơn, đáng tin cậy hơn và có tổ chức hơn.


Trên hết, học SASS cũng không hề khó khi đã biết CSS.



Bạn có thể nắm bắt ngay qua SASS Documentation.


Ngoài ra, Sass cũng giúp lộ trình học lập trình web của bạn đầy đủ và thú vị hơn.


Qua bài viết này, chúng ta đã tìm hiểu sơ qua về các tính năng quan trọng mà SASS cung cấp.


Nhưng đó không phải là tất cả về SASS.


Bạn nên "Google" và tìm hiểu kỹ hơn về:



  • functions
  • & operators
  • control directive
  • placeholders
  • interpolation
  • ...


Tự học SASS tốt cũng chỉ cần hiểu cách SASS hoạt động, đọc Doc và sau đó nhanh chóng thử vận dụng nó vào dự án của bạn.


Chúc bạn học tập hiệu quả!



---
HỌC VIỆN ĐÀO TẠO CNTT NIIT - ICT HÀ NỘI
Học Lập trình chất lượng cao (Since 2002). Học thực tế + Tuyển dụng ngay!
Đc: Tầng 3, 25T2, N05, Nguyễn Thị Thập, Cầu Giấy, Hà Nội
SĐT: 02435574074 - 0383.180086
Email: hello@niithanoi.edu.vn
Fanpage: https://facebook.com/NIIT.ICT/
 
#sass #css #niit #icthanoi #niithanoi #niiticthanoi #hoclaptrinh #khoahoclaptrinh #hoclaptrinhjava #hoclaptrinhphp #java #php #python

Bình luận Facebook
Khóa học liên quan đến bài viết

KHÓA HỌC LẬP TRÌNH FRONT END VỚI REACT.JS

56 giờ
Học Lập trình Front end hiện đại với ReactJS. Học làm chủ HTML, CSS, JS và thư viện JavaScript phổ biến nhất hiện nay. Sẵn sàng đi thực tập / đi làm ngay sau khóa học.

Khóa học PHP Full stack [2023] cho người mới bắt đầu

96 giờ
Khóa học Lập trình PHP Full stack, phiên bản cập nhật lần thứ 8. Dạy Lập trình PHP bài bản từ Front end đến Back end + Laravel. Hướng dẫn làm 2 Dự Án Web lớn

KHÓA HỌC PYTHON HƯỚNG ĐỐI TƯỢNG

50 giờ
Khóa học giúp học viên sử dụng thành thạo ngôn ngữ Lập trình Python (3x). Hiểu và phát triển được Ứng dụng Web với Django Framework. Học thực hành với Giảng viên cao cấp.

Khóa học Java Full stack (IJFD)

104 giờ
Học lập trình Java Fullstack với khóa học được xây dựng theo lộ trình bài bản, từ JAVA CƠ BẢN đến JAVA WEB và nâng cao về JAVA FRAMEWORK như: Spring Boot, Hibernate
Mục lục
Đăng ký tư vấn
Nhân viên gọi điện tư vấn miễn phí sau khi đăng ký
Được cập nhật các ưu đãi sớm nhất
Hotline: 0383180086
Tên không được để trống
Số điện thoại không được để trống
Email không được để trống
Hãy đăng ký để nhận những thông tin mới nhất về học bổng mới nhất tại NIIT - ICT Hà Nội
top
Đóng lại Đăng ký học tại NIIT - ICT Hà Nội
6260+ học viên đã theo học tại NIIT - ICT Hà Nội và có việc làm tốt trong ngành lập trình. Nắm lấy cơ hội ngay hôm nay!
Chọn khóa học
  • KHÓA HỌC LẬP TRÌNH FRONT END VỚI REACT.JS
  • KHÓA HỌC LẬP TRÌNH PHP WEB
  • Khóa học PHP Full stack [2023] cho người mới bắt đầu
  • Khóa học BIG DATA với Hadoop và Spark
  • Khóa học Lập trình Android tại Hà Nội
  • [Tuyển sinh 2023] Lập trình viên Quốc tế DigiNxt
  • Khóa học Tiền lương & Phúc lợi (C&B Excel) tại Hà Nội
  • LẬP TRÌNH GAME
    • Khóa học Lập trình Game Unity
  • LẬP TRÌNH WEB FRONT END
    • KHÓA HỌC PYTHON HƯỚNG ĐỐI TƯỢNG
    • KHÓA HỌC ANGULAR & TYPESCRIPT (FRONT END)
  • LẬP TRÌNH WEB BACK END
    • LẬP TRÌNH JAVA WEB VỚI FRAME WORK
    • Lập trình Web với Django
    • Lập trình PHP với Laravel Framework
  • CHƯƠNG TRÌNH ĐÀO TẠO ỨNG DỤNG CÔNG NGHỆ
    • Khóa học Tiền lương & Phúc lợi (C&B Excel) tại TP HCM
  • LẬP TRÌNH WEB FULL STACK
    • Khóa học Java Full stack (IJFD)
  • LẬP TRÌNH MOBILE
    • FRONT-END VỚI REACTJS VÀ REACT NATIVE
    • Lập trình Android Nâng cao
  • ĐÀO TẠO CHO DOANH NGHIỆP
    • KHÓA HỌC BUSINESS ANALYSIC TỪ CƠ BẢN ĐẾN NÂNG CAO 2023
    • Khóa học Magento: Làm chủ CMS TMĐT lớn nhất
    • Khóa học IOT: Xây dựng Sản phẩm IOT với Raspberry Pi
    • Khóa học Automation Testing Chuyên nghiệp
  • KHÓA HỌC DỰ ÁN
    • Học sử dụng bộ Office: Word, Excel, Power Point, Mail chuyên nghiệp
  • KHÓA HỌC KHÁC
    • VBA Excel Toàn Tập (Cơ Bản - Nâng Cao)
    • VBA Excel Nâng cao
    • Khóa học JMeter: Performance Testing
    • Khóa học Tester đạt chuẩn Quốc tế ISTQB Foundation Level
    • Khoá Học Tester đạt chuẩn quốc tế ISTQB Advanced Level
Bạn chưa chọn khóa học cần đăng ký
Tên không được để trống
Số điện thoại không được để trống
Email không được để trống
Đăng ký học thành công!
Cảm ơn bạn đã đăng ký học tại NIIT - ICT HÀ NỘI!