Return to Video

Changing CSS classes

  • 0:01 - 0:06
    Trong bài hướng dẫn trước, tôi đã hướng dẫn cách thiết lập style trong JavaScript, như thế này.
  • 0:06 - 0:10
    Bây giờ, nếu thiết lập nhiều style trong JavaScript, ta sẽ phải
  • 0:10 - 0:15
    viết hàng trăm dòng mã chỉ để thiết lập các giá trị tính chất CSS.
  • 0:15 - 0:18
    Đó sẽ là một mớ bòng bong thực sự đấy.
  • 0:18 - 0:21
    Còn một cách khác mà ta có thể áp dụng.
  • 0:21 - 0:23
    Ta có thể tạo một class CSS,
  • 0:23 - 0:28
    và thêm một quy tắc CSS cho class đó với những style mới mà ta muốn,
  • 0:28 - 0:33
    rồi chủ động thêm tên class đó vào JavaScript.
  • 0:33 - 0:39
    Ta cùng bắt đầu trên này với tag ``.
  • 0:39 - 0:46
    Ta tạo một class `.catcolors`, và tạo quy tắc CSS cho class đó.
  • 0:46 - 0:53
    Và class sẽ có `color: orange`, và `background-color: black`.
  • 0:53 - 0:59
    Bây giờ để gán vào phần tử `heading`, ta có thể nhập:
  • 0:59 - 1:06
    `headingEl.className = "catcolors";
  • 1:06 - 1:09
    Ta có thể xóa mã gán màu
  • 1:09 - 1:12
    và màu nền trong JavaScript.
  • 1:12 - 1:13
    Ta-da!
  • 1:13 - 1:15
    Thành công rồi.
  • 1:15 - 1:17
    Các bạn có thấy gì kỳ lạ không?
  • 1:17 - 1:21
    Thuộc tính HTML cho các tên class chỉ là `class`.
  • 1:21 - 1:27
    Nếu tôi thực hiện trong HTML, nó sẽ là `class=”catcolors”`.
  • 1:27 - 1:32
    Nhưng khi thực hiện trong JavaScript, tôi phải nhập `.className`,
  • 1:32 - 1:34
    chúng ta không quen với cái đó.
  • 1:34 - 1:39
    Thực chất đó là bởi `class` là một từ khóa trong ngôn ngữ JavaScript
  • 1:39 - 1:43
    và mang ý nghĩa đặc biệt đối với ngôn ngữ đó.
  • 1:43 - 1:48
    Vì vậy, các trình duyệt quyết định sử dụng `className` để tham chiếu
  • 1:48 - 1:52
    thuộc tính class HTML, với mục đích đảm bảo rằng chúng không bị nhầm lẫn.
  • 1:52 - 1:57
    Hãy nhớ rằng, nếu muốn thiết lập thuộc tính class của mộ t phần tử,
  • 1:57 - 2:00
    ta nhập .className =.
  • 2:00 - 2:04
    Bây giờ để gán cho từng tên động vật,
  • 2:04 - 2:07
    ta có thể đặt nó vào trong vòng lặp, vậy là:
  • 2:07 - 2:13
    `nameEls[i].className = "catColors";`
  • 2:13 - 2:19
    Thao tác đó sẽ thêm tên class, nhưng thực ra nó sẽ loại bỏ bất kỳ class nào
  • 2:19 - 2:24
    đã từng ở vị trí này trước đó, vì ta đã nói là = mà.
  • 2:24 - 2:28
    Vậy nếu trước đó ta đã có bất kỳ class nào ở vị trí này, chúng đều sẽ biến mất.
  • 2:28 - 2:32
    Đúng là trước đó ta từng có class ở đó thật, class = animal.
  • 2:32 - 2:34
    Và nó đã chuyển thành catColors.
  • 2:34 - 2:41
    Như vậy, ta cần phải thêm một tên class mới vào thuộc tính class này.
  • 2:41 - 2:48
    Ta có thể làm điều đó bằng cách nhập += “ catColors”.
  • 2:48 - 2:49
    Được rồi đó.
  • 2:49 - 2:52
    Đây là phương pháp an toàn, vì nó sẽ lấy
  • 2:52 - 2:58
    bất kỳ class nào trước đó, thêm một dấu cách và đến class mới.
  • 2:58 - 3:02
    Ta còn một cách nữa có thể áp dụng cho những trình duyệt mới hơn,
  • 3:02 - 3:05
    sử dụng tính chất `classList`.
  • 3:05 - 3:15
    Để thực hiện điều đó, ta nhập: `nameEIs[i].classList.add(“catColors”);`.
  • 3:15 - 3:20
    Như vậy đẹp hơn rất nhiều, nhưng không phải ở đâu cũng áp dụng được.
  • 3:20 - 3:24
    Vì vậy nếu muốn sử dụng, các bạn phải đi tới caniuse.com,
  • 3:24 - 3:27
    và đảm bảo nó được hỗ trợ trong tất cả các trình duyệt
  • 3:27 - 3:29
    mà các bạn muốn trang web của mình hoạt động.
  • 3:29 - 3:32
    Nó đẹp hơn rất nhiều, nhưng sẽ không đẹp chút nào nếu trang web vỡ tan tành
  • 3:32 - 3:36
    vì ta đang sử dụng một hàm mà trình duyệt không biết tới.
  • 3:36 - 3:38
    Tôi sẽ chú thích ở đây vậy.
  • 3:38 - 3:41
    Vì tôi muốn trang web của tôi hoạt động trên nhiều trình duyệt khác nhau.
  • 3:41 - 3:46
    Vẫn sẽ có nhiều lúc ta muốn thay đổi style cá nhân,
  • 3:46 - 3:49
    thay vì gán tên class.
  • 3:49 - 3:54
    Một lần nữa, hãy nhớ rằng các bạn có trong tầm tay cả hai công cụ này,
  • 3:54 - 0:00
    và lựa chọn cho mình công cụ phù hợp nhất tùy theo tình hình.
Title:
Changing CSS classes
Description:

more » « less
Video Language:
English
Duration:
04:00

Vietnamese subtitles

Incomplete

Revisions