Hướng dẫn how do i make an underline in css? - làm cách nào để tạo dấu gạch dưới trong css?

DigitalOcean cung cấp các sản phẩm đám mây cho mọi giai đoạn của hành trình của bạn. Bắt đầu với $ 200 trong tín dụng miễn phí!

Kiểu dáng các nền tảng ngồi bên dưới các liên kết có thể là một công việc khó khăn và tôi liên tục quên đi những gì cách tiếp cận tốt nhất tùy thuộc vào tình huống. Tuy nhiên, rất may, John Jameson giúp chúng tôi tăng tốc trong bài đăng của khách này.

Có một loạt các cách khác nhau để phong cách gạch chân. Có thể bạn nhớ bài viết Crafting liên kết gạch chân trên trung bình. Medium đã cố gắng làm bất cứ điều gì điên rồ; Họ chỉ muốn tạo ra một dòng trông khá bình thường bên dưới văn bản của họ.

Hướng dẫn how do i make an underline in css? - làm cách nào để tạo dấu gạch dưới trong css?
Một lớp gạch chân mỏng, đen với không gian xung quanh hậu duệ, Via Marcin Wichary, Crafting liên kết gạch chân trên trung bình

Nó có một gạch chân khá cơ bản, nhưng nó có kích thước tốt và nó cũng bỏ qua những hậu duệ. Chắc chắn đẹp hơn hầu hết các trình duyệt mặc định. Chà, hóa ra Medium đã phải trải qua rất nhiều rắc rối để có được phong cách đó trên web. Hai năm sau, nó vẫn còn khó để tạo kiểu cho một gạch chân đẹp.

Bàn thắng

Điều gì sai khi chỉ sử dụng text-decoration: underline? Nếu chúng tôi nói về kịch bản lý tưởng, một gạch chân sẽ có thể làm như sau:

  • Vị trí bên dưới đường cơ sở
  • Bỏ qua hậu duệ
  • Thay đổi màu sắc, độ dày và kiểu
  • Lặp lại văn bản được gói
  • Làm việc trên bất kỳ nền tảng nào

Tôi nghĩ rằng đây là tất cả những điều khá hợp lý để yêu cầu, nhưng theo như tôi biết, không có cách nào trực quan để đạt được tất cả chúng trong CSS.

Cách tiếp cận

Vậy tất cả các cách khác nhau chúng ta có thể nhấn mạnh văn bản trên web là gì?

Đây là những người tôi có thể nghĩ đến:

  • text-decoration
  • border-bottom
  • box-shadow
  • background-image
  • Bộ lọc SVG
  • Underline.js (Canvas)
  • text-decoration-*

Hãy cùng đi vào danh sách từng người một và nói về những phần tốt và xấu của mỗi cách tiếp cận.

text-decoration

text-decoration là cách đơn giản nhất để nhấn mạnh văn bản. Bạn áp dụng một tài sản duy nhất và tất cả những gì có cho nó. Ở kích thước nhỏ hơn, nó có thể trông khá đẹp, nhưng tăng kích thước phông chữ và cùng một dòng bắt đầu cảm thấy vụng về.

Xem bản demo.

Vấn đề lớn nhất với text-decoration là sự thiếu tùy chỉnh của nó. Nó sử dụng kích thước màu sắc và phông chữ của bất kỳ văn bản nào được áp dụng và ở đó, không có cách trình duyệt chéo nào để thay đổi kiểu. Nhiều hơn về điều đó sau.

Tốt
  • Dễ sử dụng
  • Vị trí bên dưới đường cơ sở
  • Bỏ qua hậu duệ theo mặc định trong Safari và iOS
  • Bao bọc trên các dòng
  • Hoạt động trên bất kỳ nền tảng nào
Xấu
  • Có thể bỏ qua hậu duệ trong các trình duyệt khác
  • Có thể thay đổi màu sắc, độ dày hoặc phong cách

border-bottom

border-bottom cung cấp một sự cân bằng tốt giữa việc nhanh chóng và có thể tùy chỉnh. Cách tiếp cận này sử dụng đường viền CSS đã thử và đúng, có nghĩa là bạn có thể thay đổi màu sắc, độ dày và kiểu dáng một cách dễ dàng.

Đây là những gì border-bottom trông giống như trên các yếu tố text-decoration0:

Xem bản demo.

Vấn đề lớn nhất với text-decoration là sự thiếu tùy chỉnh của nó. Nó sử dụng kích thước màu sắc và phông chữ của bất kỳ văn bản nào được áp dụng và ở đó, không có cách trình duyệt chéo nào để thay đổi kiểu. Nhiều hơn về điều đó sau.

Xem bản demo.

Vấn đề lớn nhất với text-decoration là sự thiếu tùy chỉnh của nó. Nó sử dụng kích thước màu sắc và phông chữ của bất kỳ văn bản nào được áp dụng và ở đó, không có cách trình duyệt chéo nào để thay đổi kiểu. Nhiều hơn về điều đó sau.

Xem bản demo.

Tại thời điểm này, có bốn thuộc tính tạo kiểu cho một gạch chân duy nhất. Đó là rất nhiều công việc hơn text-decoration.

Tốt
  • Có thể bỏ qua hậu duệ bằng cách sử dụng text-decoration3
  • Có thể thay đổi màu sắc, độ dày và phong cách
  • Có thể chuyển đổi và kích thích màu sắc và độ dày
  • Kết thúc theo mặc định trừ khi nó là một text-decoration1
  • Hoạt động trên bất kỳ nền nào trừ khi sử dụng text-decoration3
Xấu
  • Vị trí xa và khó định vị lại
  • Rất nhiều tài sản không liên quan để có được nó vừa phải
  • Lựa chọn văn bản vui vẻ khi sử dụng text-decoration3

box-shadow

box-shadow vẽ một lớp gạch chân với hai bóng hộp hình: một để tạo hình chữ nhật và một giây để che nó lên. Điều đó có nghĩa là bạn sẽ cần một nền tảng vững chắc cho việc này để làm việc.

Xem Bút gạch chân 5: Box-Shadow của John D. Jameson (@JohnDjameson) trên Codepen.

Bạn có thể sử dụng cùng một thủ thuật text-decoration3 cho các khoảng trống giả giữa gạch chân và hậu duệ văn bản. Nhưng nếu dòng là một màu khác với văn bản - hoặc thậm chí chỉ đủ mỏng - nó không thực sự đụng độ như text-decoration.

Tốt
  • Có thể bỏ qua hậu duệ bằng cách sử dụng text-decoration3
  • Có thể bỏ qua hậu duệ bằng cách sử dụng text-decoration3
  • Có thể thay đổi màu sắc, độ dày và phong cách
  • Có thể chuyển đổi và kích thích màu sắc và độ dày
Xấu
  • Vị trí xa và khó định vị lại
  • Rất nhiều tài sản không liên quan để có được nó vừa phải

background-image

Lựa chọn văn bản vui vẻ khi sử dụng text-decoration3

box-shadow vẽ một lớp gạch chân với hai bóng hộp hình: một để tạo hình chữ nhật và một giây để che nó lên. Điều đó có nghĩa là bạn sẽ cần một nền tảng vững chắc cho việc này để làm việc.

Xem bản demo.

Xem Bút gạch chân 5: Box-Shadow của John D. Jameson (@JohnDjameson) trên Codepen.

Xem bản demo.

Tốt
  • Có thể bỏ qua hậu duệ bằng cách sử dụng text-decoration3
  • Có thể bỏ qua hậu duệ bằng cách sử dụng text-decoration3
  • Có thể thay đổi màu sắc, độ dày và phong cách
  • Có thể chuyển đổi và kích thích màu sắc và độ dày
  • Có thể chuyển đổi và kích thích màu sắc và độ dày
  • Hoạt động trên bất kỳ nền nào trừ khi sử dụng text-decoration3
Xấu
  • Vị trí xa và khó định vị lại

Rất nhiều tài sản không liên quan để có được nó vừa phải

Lựa chọn văn bản vui vẻ khi sử dụng text-decoration3

box-shadow vẽ một lớp gạch chân với hai bóng hộp hình: một để tạo hình chữ nhật và một giây để che nó lên. Điều đó có nghĩa là bạn sẽ cần một nền tảng vững chắc cho việc này để làm việc.

Xem bản demo.

Xem Bút gạch chân 5: Box-Shadow của John D. Jameson (@JohnDjameson) trên Codepen.

Hướng dẫn how do i make an underline in css? - làm cách nào để tạo dấu gạch dưới trong css?

Bạn có thể sử dụng cùng một thủ thuật text-decoration3 cho các khoảng trống giả giữa gạch chân và hậu duệ văn bản. Nhưng nếu dòng là một màu khác với văn bản - hoặc thậm chí chỉ đủ mỏng - nó không thực sự đụng độ như text-decoration.

Có thể được định vị bên dưới đường cơ sở
  • Có thể thay đổi màu sắc và độ dày
  • Bao bọc trên các dòng
  • Có thể thay đổi phong cách
  • Doesn làm việc trên bất kỳ nền tảng nào
background-image đến gần nhất với mọi thứ chúng tôi muốn và với ít gotchas nhất. Ý tưởng là bạn sử dụng border-bottom4 và border-bottom5 để tạo hình ảnh lặp lại theo chiều ngang trên các dòng văn bản.
  • Bạn cũng phải border-bottom6 cách tiếp cận này.
  • Cách tiếp cận này không phải sử dụng border-bottom4. Bạn có thể mang hình ảnh nền của riêng bạn cho một số hiệu ứng thú vị.

Có thể thay đổi màu sắc, độ dày (cho phép một nửa pixel) và phong cách

Hoạt động với hình ảnh tùy chỉnh

Hình ảnh có thể thay đổi kích thước khác nhau giữa các độ phân giải, trình duyệt và mức thu phóngtech demo only. That means you won’t be able to drop it into any projects without modifying it a whole bunch first.

Bộ lọc SVG

Ở đây, một cách tiếp cận mà tôi đã chơi đùa xung quanh với: các bộ lọc SVG. Bạn có thể tạo một phần tử SVG box-shadow0 nội tuyến vẽ một dòng và sau đó mở rộng văn bản để che dấu các phần của dòng chúng ta muốn trong suốt. Sau đó, bạn có thể cung cấp cho box-shadow0 một box-shadow2 và tham chiếu nó trong CSS với một cái gì đó như box-shadow3.

Ưu điểm ở đây là bộ lọc thêm độ trong suốt mà không cần dựa vào text-decoration3. Điều đó có nghĩa là bạn có thể bỏ qua hậu duệ trên bất kỳ nền nào, bao gồm độ dốc và hình ảnh nền! Cái này chỉ hoạt động trên một dòng văn bản duy nhất, vì vậy hãy đứng đầu về điều đó.

Ở đây, những gì nó trông giống như ở Chrome và Firefox:

  • background-image1
  • background-image2
  • background-image3

Hỗ trợ trình duyệt trong IE, Edge và Safari là vấn đề. Thật khó để kiểm tra hỗ trợ bộ lọc SVG trong CSS. Bạn có thể sử dụng box-shadow5 với box-shadow0, nhưng chỉ kiểm tra xem tham chiếu có hoạt động hay không - không phải là bộ lọc được áp dụng. Cách tiếp cận của tôi cuối cùng thực hiện một số trình duyệt khá thô thiển, vì vậy cũng tăng gấp đôi về điều đó.

text-decoration-color

Ưu điểm

Firefox:

Hướng dẫn how do i make an underline in css? - làm cách nào để tạo dấu gạch dưới trong css?

Safari:

Hướng dẫn how do i make an underline in css? - làm cách nào để tạo dấu gạch dưới trong css?
text-decoration-skip

Vị trí bên dưới đường cơ sở

Hướng dẫn how do i make an underline in css? - làm cách nào để tạo dấu gạch dưới trong css?

Tài sản này không chuẩn và chỉ hoạt động ở Safari ngay bây giờ, vì vậy bạn cần tiền tố background-image6 để sử dụng nó. Safari cho phép thuộc tính này theo mặc định, đó là lý do tại sao nhấn mạnh bỏ qua hậu duệ ngay cả trên các trang web không chỉ định nó.

Nếu bạn sử dụng bình thường hóa, hãy biết rằng các phiên bản gần đây đã vô hiệu hóa tài sản để giữ mọi thứ phù hợp giữa các trình duyệt. Bạn cần phải lật lại nếu bạn muốn những nền tảng mơ mộng đó.

text-decoration-style

background-image3 cung cấp các loại dòng tương tự mà bạn mong đợi từ background-image8, nhưng cũng thêm vào các dòng background-image9.

Dưới đây là các giá trị khác nhau bạn có thể sử dụng:

  • text-decoration-*0
  • text-decoration-*1
  • text-decoration-*2
  • text-decoration-*3
  • background-image9

Ngay bây giờ, background-image3 chỉ hoạt động trong Firefox, vì vậy, đây là một ảnh chụp màn hình:

Hướng dẫn how do i make an underline in css? - làm cách nào để tạo dấu gạch dưới trong css?

Một loại của phong cách gạch chân màu rắn

Nhìn quen thuộc?

Cái gì còn thiếu?

Các thuộc tính text-decoration-* trực quan hơn nhiều so với việc sử dụng các thuộc tính CSS khác để tạo khuôn mẫu. Nhưng nếu chúng ta có cái nhìn khác về các yêu cầu trước đó của chúng ta, các thuộc tính này không cung cấp một cách để chỉ định độ dày hoặc vị trí của dòng.

Sau khi thực hiện một nghiên cứu nhỏ, tôi đã bắt gặp hai thuộc tính này:

  • text-decoration-*7
  • text-decoration-*8

Có vẻ như họ đã được đưa ra trong các bản nháp CSS trước đó, nhưng không bao giờ được thực hiện do thiếu sự quan tâm. Này, đừng đổ lỗi cho tôi.

Takeaways

Vì vậy, những gì cách tốt nhất để nhấn mạnh văn bản?

Nó phụ thuộc.

Đối với văn bản nhỏ, tôi khuyên bạn nên sử dụng text-decoration và sau đó áp dụng một cách lạc quan background-image2 lên trên. Trông có vẻ hơi nhạt nhẽo trong hầu hết các trình duyệt, nhưng gạch chân đã trông như vậy mãi mãi và mọi người dường như không có tâm trí. Thêm vào đó, luôn luôn có cơ hội nếu bạn kiên nhẫn đủ, tất cả các nền tảng của bạn sẽ trông tuyệt vời sau này mà không cần phải thay đổi điều gì.

Đối với văn bản cơ thể, có thể sử dụng phương pháp background-image. Nó hoạt động, nó trông tuyệt vời, và có các bản phối hợp cho nó. Bạn có thể có thể bỏ qua text-decoration3 nó nếu gạch chân mỏng hoặc có màu khác so với văn bản.

Đối với các dòng văn bản duy nhất, hãy sử dụng border-bottom và bất kỳ thuộc tính nào khác bạn muốn đi với nó.

Và để bỏ qua hậu duệ trên đầu của hình ảnh gradient hoặc nền, hãy thử sử dụng các bộ lọc SVG. Hoặc chỉ tránh sử dụng một lớp gạch chân hoàn toàn.

Trong tương lai khi hỗ trợ trình duyệt tốt hơn, câu trả lời là text-decoration-* tất cả các cách.


Cũng thấy Benjamin Woodruff, bài viết CSS nhấn mạnh, trong đó tình cờ bước đi trên mặt đất này theo cách tương tự.

Làm thế nào để bạn nhấn mạnh văn bản chỉ trong CSS?

Không có CSS để áp dụng một dòng gạch chân (trang trí văn bản: gạch chân;) Chỉ cho các từ riêng lẻ trong một phần tử nhiều từ.Cách tốt nhất sẽ là bọc từng từ trong một khoảng (không phải là khoảng trắng, chỉ là các từ) trong các nhịp và áp dụng gạch chân cho các nhịp đó.wrap each word in a span (not the spaces, just the words) in spans and apply underline to those spans.

Thuộc tính CSS nào được sử dụng để gạch chân?

Thuộc tính CSS trang trí văn bản được sử dụng để đặt định dạng văn bản thành gạch chân, liên kết, dòng thông qua hoặc chớp mắt.Chân trong và trang trí trên tuyến được định vị dưới văn bản, qua nó.text-decoration CSS property is used to set the text formatting to underline, overline, line-through or blink. underline and overline decorations are positioned under the text, line-through over it.

Làm thế nào để bạn thực hiện một quá trình chuyển đổi gạch chân trong CSS?

Sử dụng HTML, CSS tạo hiệu ứng gạch chân hoạt hình khi người dùng di chuyển qua văn bản.Sử dụng Hiển thị: Khối nội tuyến để tạo nhịp gạch chân chỉ chiều rộng của nội dung văn bản.Sử dụng: Sau khi giả thuyết với chiều rộng: 100% và vị trí: Tuyệt đối để đặt nó bên dưới nội dung.Use display: inline-block to make the underline span just the width of the text content. Use the :after pseudo-element with width: 100% and position: absolute to place it below the content.

Làm thế nào để bạn thiết kế một gạch chân?

Nhấn Ctrl+U để áp dụng gạch chân đơn giản.Chọn kiểu gạch chân để chọn một kiểu gạch chân khác.. Select Underline style to choose a different underline style.