Hướng dẫn css xuống dòng

Để xuống dòng trong CSS bạn có thể dùng thuộc tính display, gán giá trị là block.

.class{
    display:block;
}

Trong HTML, những thẻ mà bạn gõ chữ xong mà nó xuống dòng luôn, gọi là thể block. Vì trong nội tại của nó đã có sẵn thuộc tính display block. Ví dụ như thẻ h2, h2, h3,…

Còn những thẻ không tự xuống dòng là những thẻ không có sẵn thuộc tính display block. Đó gọi là thẻ inline, nghĩa là trong một dòng. Ví dụ như span, a, b,… Nếu bạn muốn nó xuống dòng thì thêm thuộc tính display block vô trong CSS.

Giải thích cho thẻ margin và padding

Có những thẻ không có tác dụng với thuộc tính margin, ví dụ bạn đặt cho nó thuộc tính margin-top nhưng không thấy nó thay đổi gì cả.

Trong trường hợp này, thuộc tính display block sẽ giúp cho nó áp phê.

Ví dụ:

.span{
    margin-top:100px;
    display:block;
}

– Ở đây mình đang đặt thuộc tính cho thẻ span với mục đích muốn nó cách lề trên 100px.
– Nếu bạn chỉ ghi thuộc tính margin-top thì nó sẽ không tác dụng.
– Nhưng khi thêm display block vô thì margin top có tác dụng.

Ghi chú thêm

Ngược lại với thuộc tính display block là thuộc tính display inline, công dụng của nó là làm cho một thẻ xuống dòng trở thành không xuống dòng.

  • Author
  • Recent Posts

Hướng dẫn css xuống dòng

Nếu một từ có kích thước quá dài so với chiều rộng của phần tử chứa nó thì từ đó sẽ không tự động ngắt xuống dòng, mà nó vẫn hiển thị trên một dòng, dẫn đến việc từ đó bị tràn ra ngoài.

Ví dụ:

Học lập trình webbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb từ cơ bản đến nâng cao

Từ đây, ta có thể sử dụng thuộc tính word-wrap để thiết lập việc tự ngắt xuống dòng giữa các ký tự của một từ (trong trường hợp từ đó quá dài so với chiều rộng của phần tử chứa nó)

Ví dụ:

Học lập trình webbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb từ cơ bản đến nâng cao

Cách sử dụng thuộc tính word-wrap

Cú pháp:

word-wrap: normal | break-word | initial | inherit;

Giải thích ý nghĩa các giá trị của thuộc tính word-wrap:

Giá trịMô tảXem ví dụ
normal

Không ngắt xuống dòng nếu một từ có kích thước quá dài so với chiều rộng của phần tử chứa nó

Xem ví dụ
break-word

Tự động ngắt xuống dòng nếu một từ có kích thước quá dài so với chiều rộng của phần tử chứa nó

Xem ví dụ
initial

Sử dụng giá trị mặc định của nó

inherit

Kế thừa giá trị thuộc tính word-wrap từ phần tử cha của nó

Hướng dẫn css xuống dòng

Đã đăng vào thg 9 11, 2020 8:09 SA 4 phút đọc

Chào các bạn!

Đã bao giờ các bạn đau đầu trong việc xử lý text dài ngắn hay không? Chẳng hạn có một số trường hợp như thế này:

  • Text nó cứ kéo dài mãi, bị tràn sang cả khu vực khác, muốn nó tự nhảy xuống dòng mà không được?
  • Muốn ẩn bớt text khi tới 1 giới hạn nào đó?
  • Hoặc là muốn ẩn bớt text nhưng vẫn có thêm dấu ... để người khác biết là vẫn còn text thừa phía sau? Vân vân và mây mấy số trường hợp...

Thực ra đây cũng là vấn đề của rất nhiều người. Bản thân mình khi chưa có kinh nghiệm về mấy cái này thì thường hay lạm dụng jquery để check các case. Tuy nhiên sau khi phát hiện ra 1 số thuộc tính với cách sử dụng vô cùng đơn giản thì mình đã quăng jquery ra sau đầu ngay và luôn. Bây giờ cùng đi vào bài viết nhé.

1. Text Overflow

Thuộc tính text-overflow dùng để xử lý một đoạn text bị tràn ra ngoài phần tử chứa nó bằng cách cắt bớt đoạn tràn hoặc hiển thị dưới dạng dấu chấm lửng "..." để làm dấu hiệu cho người dùng.

Hai giá trị thường dùng nhất là:

  • clip: cắt bớt đoạn text bị tràn ra ngoài (mặc định).
  • ellipsis: thêm ba dấu chấm (...) nếu text bị tràn ra ngoài. Hai thuộc tính đi kèm text-overflow là:
white-space: nowrap;
overflow: hidden;

Ngoài ra còn có 2 giá trị khác:

  • initial : thiết lập giá trị mặc định
  • inherit : kế thừa giá trị từ thẻ HTML cha.

Cú pháp: text-overflow: clip|ellipsis|string|initial|inherit;


.text {
   white-space: nowrap; 
   width: 200px; 
   overflow: hidden;
   border: 1px solid #000000;
}

div.a {
   text-overflow: clip; 
}

div.b {
  text-overflow: ellipsis; 
}

Kết quả hiển thị sẽ như thế này:

Hướng dẫn css xuống dòng

Vậy để xem lại đoạn text đầy đủ thì làm như thế nào?

.text:hover {
    overflow: visible;
}

Hướng dẫn css xuống dòng

3. Word Break

Word-wrap xác định có xuống dòng hay không, còn thuộc tính work-break xác định kiểu xuống dòng.

Các giá trị thường thấy là:

  • normal: hiển thị theo mặc định, từ dài có thể bị tràn ra ngoài box (mặc định)
  • keep-all: không sử dụng với các đoạn text tiếng Trung Quốc/Nhật Bản/Hàn Quốc (CJK), chức năng tương tự với normal. Khác biệt ở chỗ nếu từ có gạch nối sẽ được xuống dòng tại một vị trí thích hợp.
  • break-all: khi hết đoạn thì một từ sẽ tự động ngắt ở bất kỳ ký tự nào để xuống dòng, có thể gây hiện tượng đứt gãy từ.
  • break-word: khi hết đoạn thì sẽ tự động ngắt ở bất kỳ từ nào để xuống dòng. Nếu là văn bản bình thường, ta sẽ dùng break-word nhiều hơn, còn break-all thường chỉ dùng cho số (nếu có).

Cú pháp: word-break: normal|break-all|keep-all|break-word

div {
  width: 250px; 
  border: 1px solid #000000;
}

div.a {
 word-break: normal;
}

div.b {
 word-break: keep-all;
}

div.c {
 word-break: break-all;
}

div.d {
 word-break: break-word;
}

Hướng dẫn css xuống dòng

4. Writing Mode

Thuộc tính writing-mode sử dụng để định kiểu cho đoạn text được đặt theo chiều ngang hay chiều dọc.

Các giá trị của writing-mode:

  • horizontal-tb: đoạn text sẽ được đặt theo chiều ngang từ trái sang phải, đọc từ trên xuống dưới (mặc định).
  • vertical-rl: đoạn text được đặt theo chiều dọc từ phải sang trái, đọc từ trên xuống dưới.
  • vertical-lr: đoạn text được đặt theo chiều dọc từ trái sang phải, đọc từ trên xuống dưới.

Cú pháp: writing-mode: horizontal-tb|vertical-rl|vertical-lr

p.test1 {
  writing-mode: horizontal-tb; 
  width: 300px;
  border: 4px double red;
  padding: 15px;
}

p.test2 {
  writing-mode: vertical-rl; 
  height: 200px;
  margin-right: 50px;
  border: 4px double navy;
  padding: 15px;
}

p.test3 {
  writing-mode: vertical-lr; 
  height: 200px;
  border: 4px double green;
  padding: 15px;
}

Kết quả hiển thị như sau:

Hướng dẫn css xuống dòng

Như vậy qua bài viết bài của mình, có lẽ các bạn cũng đã hiểu được sơ sơ cách xử lý text sao cho đẹp, đơn giản và nhanh chóng rồi nhỉ. Chúc các bạn thành công!

All rights reserved