logo

Đang load dữ liệu

logo devmaster

VIỆN CÔNG NGHỆ VÀ ĐÀO TẠO DEVMASTER

Đào tạo - Phần mềm - Cho thuê nhân sự

  • 0969.609.003
  • 0978.611.889
  • Trang chủ
  • Các khoá đào tạo
    • Chuyên đề WEB - PHP

      • Lập trình web với HTML5 - CSS3- JQuery - Bootstrap - Ajax - [36 giờ]
      • Lập trình web frontend - reactjs - [75 giờ]
      • Lập trình web với mã nguồn mở PHP&MYSQL - PHP FRAMEWORK [126 giờ]

      Chuyên đề Mobile

      • Lập trình Games/Apps trên nền tảng Android - [120 giờ]
      • Lập trình Games/Apps trên nền tảng IOS - [120 giờ]

      Chuyên đề JAVA

      • Ngôn ngữ lập trình hướng đối tượng với java - [40 giờ]
      • Lập trình ứng dụng với java - [100 giờ]
      • Lập trình web site với java framework (JPA, HIBERNATE, SPRING MVC, SPRINGBOOT) - [276 giờ]

      Chuyên đề NETWORK/SECURITY

      • Khoá học Quản trị hạ tầng mạng CCNA v6 - [72 giờ]
      • Khoá học quản trị hệ thống với Windows SERVER 2012- [72 giờ]
      • Chuyên gia bảo mật hệ thống CompTIA + - [110 giờ]

      Chuyên đề .NET

      • Nền tảng lập trình hướng đối tượng với C# - [40 giờ]
      • Lập trình ứng dụng WINDOWS FORM - [100 giờ]
      • Lập trình Web với ASP.NET MVC 5, WebAPI - [145 giờ]

      Chuyên đề khác

      • Ngôn ngũ lập trình C/C++ - [80 giờ]
  • Lập trình cho trẻ em
  • Dịch vụ
    • Đào tạo theo như cầu
    • Cung cấp thiết bị - Phần mềm
    • Tư vấn - Thiết kế mạng hạ tầng
    • Tư vấn - Triển khai dịch vụ mạng
    • Tư vấn - Tư vấn, triển khai giám sát hệ thống
    • Thực tập dự án
  • Lịch khai giảng
  • Tin tức
    • Tin tức và sự kiện
    • Tin hoạt động
    • Tin công nghệ
    • Hội thảo, workshop, Codecam
    • Thông tin việc làm
    • Cẩm nang chia sẻ kiến thức
  • Tiện ích
  • Liên hệ

Cẩm nang chia sẻ kiến thức

Feb - 2019

28

Một vài thủ thuật CSS mà chính Frontend có thể còn chưa biết (Phần 8)

Cẩm nang chia sẻ kiến thức

 

Tham khảo các phần trước tại đây:

  Một vài thủ thuật CSS mà chính Frontend có thể còn chưa biết (Phần 1)
  Một vài thủ thuật CSS mà chính Frontend có thể còn chưa biết (Phần 2)
  Một vài thủ thuật CSS mà chính Frontend có thể còn chưa biết (Phần 3)
  Một vài thủ thuật CSS mà chính Frontend có thể còn chưa biết (Phần 4)
  Một vài thủ thuật CSS mà chính Frontend có thể còn chưa biết (Phần 5)
  Một vài thủ thuật CSS mà chính Frontend có thể còn chưa biết (Phần 6)
  Một vài thủ thuật CSS mà chính Frontend có thể còn chưa biết (Phần 7)

Tốn mấy phút đọc: khoảng 20 phút thôi!

Level CSS sau khi đọc xong: tăng thêm 5%

Image from Internet

 

1. Cắt text (text…) thành nhiều dòng mà không tốn chút mồ hôi nào! [Not Cross-Browsers]

Truncate text 1 dòng thì quá dễ rồi, hầu hết các dev không chuyên Frontend cũng đều biết, chỉ cần vài dòng CSS đơn giản thôi, không cần phải đụng tới JS đếm ký tự rồi cắt chuỗi làm gì cho phức tạp

 
1
2
3
4
5
 
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
 

Cộng với thuộc tính width mà mọi người muốn set, tới độ rộng bao nhiêu thì sẽ cắt text và thay vào dấu ... (ba chấm)

Tuy nhiên, giờ có trường hợp muốn hiển thị nhiều hơn 1 dòng rồi mới cắt text, thế thì phải làm sao nhỉ. Thật là may mắn khi CSS3 giới thiệu 1 thuộc tính giúp chúng ta làm việc đó chính là line-clamp

 
1
2
3
4
5
6
7
 
display: -webkit-box;
-webkit-box-orient: vertical;
line-clamp: 3; /* số dòng cần cắt ở đây */
overflow: hidden;
text-overflow: ellipsis;
 

 

Mọi chuyện sẽ tốt đẹp, code sẽ work tốt, đoạn text của bạn sẽ được cắt với số dòng như ước muốn, nếu bạn đảm bảo được 3 điều kiện dưới đây:

  1. Đây là thuộc tính mới của CSS3 và nó chưa được support tốt ở các Browser nằm trong phạm vi gọi là phổ biến mà các project ta đang làm. Cụ thể bạn xem ở trang CanIUse này. Sơ sơ thấy là Firefox với IE là không hỗ trợ rồi đó (yaoming), cho nên dự án của bạn mà đang cần support các browsers này, thì không dùng line-clamp được rồi (ahuhu).
  2. Disable Autoprefixer vì thuộc tính -webkit-box-orient: vertical vi phạm rule của Autoprefixer, nên bản CSS được build ra cuối cùng bị mất luôn thuộc tính này, debug trên browser không thấy chúng đâu hoặc thấy code đó, nhưng thực sự browser không đọc được, dẫn đến không thấy dấu ba chấm đâu 😃
  3. Disable luôn Stylelint vì thuộc tính display: -webkit-box vi phạm rule property-no-vendor-prefix của Stylelint, nếu bạn có bật tính năng này lên.

Cuối cùng thì đoạn code sẽ trở thành như sau:

 
1
2
3
4
5
6
7
8
9
 
/* stylelint-disable-next-line value-no-vendor-prefix */
display: -webkit-box;
/* autoprefixer: off */
-webkit-box-orient: vertical;
line-clamp: 3;
overflow: hidden;
text-overflow: ellipsis;
 

 

Vì đây là tip mình tập trung vào việc chia sẻ cách mà line-clamp giúp mình truncate text nhiều dòng dễ dàng, nên nếu không áp dụng được cho dự án của bạn vì lý do Cross Browsers, thì vẫn còn những cách khác, các bạn có thể tham khảo:

  • Sử dụng plugin dotdotdot
  • Viết 1 đoạn JS để xử lý
  • Bằng 1 đoạn code CSS dài hơn như hướng dẫn ở bài viết này

References:

  • https://css-tricks.com/line-clampin/
  • http://hackingui.com/front-end/a-pure-css-solution-for-multiline-text-truncation/

Có thể bạn cần xem

CSS Framework có thật sự cần thiết như chúng ta nghĩ?

2. Viết CSS Variables nhanh hơn với SASS

Nếu bạn đã nghe và tìm hiểu về CSS Variables trước đó, cũng như là mình cũng đã có viết 1 bài về CSS Variables trước đây, thì thấy rõ ràng là cú pháp nó khá là dài khi cần gọi 1 biến ra sử dụng

 
1
2
3
4
5
6
7
8
9
10
 
:root {
    --primary: #000;
    --bg: #fff;
}
html {
    background: var(--bg);
    color: var(--primary);
}
 

Và nếu bạn là dev Frontend thì chắc chắn bạn cũng khó dứt bỏ được SASS, vì trong SASS vẫn còn nhiều tính năng mà CSS Variables chưa thay thế được và có lẽ bạn đang sử dụng kết hợp cả SASS và CSS Variables, thế thì tại sao không giản lược cú pháp gọi var(--) của CSS Variables thành ngắn gọn hơn bởi viết 1 function của SASS nhỉ?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
@function v($var) {
    @return var(--#{$var});
}
 
:root {
    --primary: #000;
    --bg: #fff;
}
html {
    background: v(bg);
    color: v(primary);
}
 

 

P/S: Tips này mình lượm được trên cộng đồng dev.to đấy, đây cũng là 1 nguồn học tập hữu ích cho developer không chỉ giới hạn là Frontend, những bài post chia sẻ trên này thường ngắn, dễ đọc và hiểu ngay, không bị dài dòng như article trong Medium ^^

References:

  • https://dev.to/meduzen/write-css-variables-faster-in-scss-1mon

3. Nên dùng font-weight: 700 hơn là font-weight: bold

Hãy định nghĩa 1 chút về những value của thuộc tính font-weight:

  • Value bằng chữ thì có:
    • normal
    • bold
    • bolder
    • lighter
  • Value bằng số thì có:
    • 100
    • 200
    • 300
    • 400
    • 500
    • 600
    • 700
    • 800
    • 900

Và mình có các cặp value có giá trị như nhau đó là normal – 400 và bold – 700, nhưng trong rất nhiều thiết kế, designer họ có thể chọn 2 loại font-weight là 300 và 600 làm chuẩn, do đó value bằng chữ kia lại không thể hiện đúng chuẩn như bản design được.

Chính vì lý do sử dụng value bằng số đảm bảo chính xác yêu cầu của bản design hơn, nên nó luôn được recommend trong nhiều bộ styleguide về CSS.

References:

  • https://css-tricks.com/almanac/properties/f/font-weight/
  • https://stackoverflow.com/a/10909305/4485780

Tổng kết

Hi vọng mọi người sẽ tăng thêm skill CSS với 3 tips trên.

Nguồn: Sưu tầm từ internet via Devmaster

Các bài viết cùng chủ đề

BÍ QUYẾT HỌC LẬP TRÌNH CHO CÁC BẠN ĐẦU NĂM HỌC MỚI ❤
BÍ QUYẾT HỌC LẬP TRÌNH CHO CÁC BẠN ĐẦU NĂM HỌC MỚI...
5 Phương pháp hay để mở rộng các dự án React của bạn một cách dễ dàng
5 Phương pháp hay để mở rộng các dự án React của b...
Lab06.1 - Data Access In ASPNET MVC 5
Lab06.1 - Data Access In ASPNET MVC 5
Lab05 - Data Validation and Annotation In ASPNET MVC 5
Lab05 - Data Validation and Annotation In ASPNET M...
Lab 04 - Model in ASP.NET MVC 5 - Phần tự thực hành
Lab 04 - Model in ASP.NET MVC 5 - Phần tự thực hàn...
Lab 04 - Model in ASP.NET MVC 5 - Bài 4.2
Lab 04 - Model in ASP.NET MVC 5 - Bài 4.2

Các khóa đào tạo chuyên đề

Thiết kế và lập trình Website PHP, Laravel chuyên nghiệp - FullStack
Thiết kế và lập trình Website PHP, Laravel chuyên nghiệp - FullStack
Lập trình ứng dụng trên nền tảng android Lập trình ứng dụng trên nền tảng android
Lập trình Ứng dụng với Công nghệ ASP.NET Core MVC, WebAPI, ReactJS - FullStack

Lập trình Ứng dụng với Công nghệ ASP.NET Core MVC, WebAPI, ReactJS - FullStack
Lập trình ứng dụng với WINDOWS FORM Lập trình ứng dụng với WINDOWS FORM
Lập trình ứng dụng với JAVA (FORM) Lập trình ứng dụng với JAVA (FORM)
Thiết kế và lập trình Ứng dụng với công nghệ Java (Java Framework springBoot, hibernate,...) - FullStack
Thiết kế và lập trình Ứng dụng với công nghệ Java (Java Framework springBoot, hibernate,...) - FullStack
Thiết kế và lập trình website với công nghệ HTML5, CSS3, Javascript, Bootstrapt 4, Jquery Thiết kế và lập trình website với công nghệ HTML5, CSS3, Javascript, Bootstrapt 4, Jquery
Lập trình frontend với reacjs (Full) Lập trình frontend với reacjs (Full)
DEVMASTER
Viện Công Nghệ Và Đào Tạo Devmaster

DEVMASTER ACADEMY

Địa chỉ: Tầng 6 - Tòa nhà VIỆN CÔNG NGHỆ
Số 25, Vũ Ngọc Phan - Láng Hạ - Đống Đa - Hà Nội

Hotline: 0969 609 003 | 0978 611 889

devmaster.contact@gmail.com

hna.tvchung@gmail.com

CÁC KHÓA HỌC CHUYÊN ĐỀ

  • Thiết kế và lập trình Website PHP, Laravel chuyên nghiệp - FullStack
  • Lập trình ứng dụng trên nền tảng android
  • Lập trình Ứng dụng với Công nghệ ASP.NET Core MVC, WebAPI, ReactJS - FullStack
  • Lập trình ứng dụng với WINDOWS FORM
  • Lập trình ứng dụng với JAVA (FORM)
  • Thiết kế và lập trình Ứng dụng với công nghệ Java (Java Framework springBoot, hibernate,...) - FullStack
  • Thiết kế và lập trình website với công nghệ HTML5, CSS3, Javascript, Bootstrapt 4, Jquery
  • Lập trình frontend với reacjs (Full)
Viện Công Nghệ Và Đào Tạo Devmaster

VIỆN CÔNG NGHỆ VÀ ĐÀO TẠO DEVMASTER - Học thực tế * Làm thực tế * Cam kết việc làm
Copyright by Ⓒ DEVMASTER 2015