Tạo viền cho chữ css

Bóng văn bản

CSS cấp 3 có một đặc tính gọi là bóng chữ [text-shadow] để tạo bóng cho từng chữ cái trong một vài từ. Ở dạng đơn giản nhất, bóng văn bản trông như thế này:

h3 {text-shadow: 0.1em 0.1em #333}

Thêm màu tối xám [#333] để tạo bóng một chút cho phần bên phải [0.1em] và phần dưới [0.1em] so với văn bản thông thường. Kết quả sẽ như thế này:

Các Noak và các Barcicle

[Cho tới tháng 8 năm 2005, không phải tất cả các trình duyệt web đều hỗ trợ đầy đủ chức năng 'text-shadow' tạo bóng văn bản. Phần trên làm việc hiệu quả ít nhất tại Safari và Konqueror.]

Bóng văn bản mờ

Dạng đơn giản nhất của thuộc tính 'text-shadow' bóng văn bản có hai phần: Màu sắc [như #333 ở trên] và phần lề “offset” [như 0.1em 0.1em trong ví dụ trên]. Những kết quả này tạo thành một bóng sắc nét ở phần lề được hiển thị. Nhưng phần lề có thể được làm mờ, tạo thành các bóng mờ nhiều hay mờ ít.

Độ mờ được tạo ra như một lề khác. Đây là hai dòng, một dòng với độ mờ ít [0.05em] và một dòng chữ với độ mờ nhiều [0.2em]:

h3.a {text-shadow: 0.1em 0.1em 0.05em #333}h3.b {text-shadow: 0.1em 0.1em 0.2em black}

“ “Anh nói gì vậy?” UK nói:

Để nhìn rõ hơn

Chữ trắng có thể đọc được

Bóng có thẻ làm văn bản dễ đọc hơn nếu độ tương phản giữa tiền cảnh và nền sau văn bản nhỏ. Đây là một ví dụ về chữ màu trắng trên nền sau màu xanh nhạt; đầu tiên không tạo bóng và sau được tạo bóng:

h3 {color: white}h3.a {color: white; text-shadow: black 0.1em 0.1em 0.2em}

Không có bóng:

Cái gì ở trong đó dành cho tôi vậy?

Có bóng:

Một cái xẻng và vài quả cam

Nhiều bóng:

Bạn cũng có thể tạo nhiều bóng cho văn bản. Nhìn chung, nó nhìn sẽ khá lạ mắt:

h3 {text-shadow: 0.2em 0.5em 0.1em #600,      -0.3em 0.1em 0.1em #060,      0.4em -0.3em 0.1em #006}

Tôi ước ước ước…

Nhưng với các bóng đậm và nhạt khéo xếp đặt, hiệu ứng đạt được có thể sẽ rất hữu ích;

h3.a {text-shadow: -1px -1px white, 1px 1px #333}h3.b {text-shadow: 1px 1px white, -1px -1px #333}

Tôi, Augustus [anh biết là ai]

Đó là phần thêm, tất nhiên

Việc này hơi nguy hiểm, như bạn có thể thấy nếu trình duyệt của bạn không hỗ trợ chức năng 'text-shadow' tạo bóng văn bản. Thực tế, màu nền sau và màu văn bản trong ví dụ này gần như giống nhau [#CCCCCC và #D1D1D1], do đó nếu không tạo bóng, thì hầu như không có sự tương phản nào.

Vẽ các chữ như có viền ngoài

Một ví dụ hai bóng trong bài trước còn có thể được làm nhiều hơn. Với bốn bóng, các chữ cái có thể tạo thành một đường viền:

h3 {text-shadow: -1px 0 black, 0 1px black,      1px 0 black, 0 -1px black}

Anh có cảm thấy màu đỏ ?

Một con mèo, một quả táo...vv

Đó không phải là một đường viền hoàn hảo, và trong thời điểm này [tháng 8 năm 2005], các cuộc thảo luận vẫn xoay quanh liệu CSS có nên có một thuộc tính riêng [hoặc có lẽ có một giá trị 'text-decoration' để trang trí văn bản] nhằm tạo các đường viền ngoài tốt hơn.

Phát sáng như đèn Nê-ông

Nếu bạn tạo bóng mờ bên phải phía dưới văn bản, Ví dụ: với phần lề bằng 0, thì sẽ tạo ra hiệu ứng phát sáng bao quanh các chữ. Nếu sự phát sáng của một bóng đơn không đủ mạnh, bạn chỉ việc lặp lại bóng đó vài lần.

h3.a {text-shadow: 0 0 0.2em #8F7}h3.b {text-shadow: 0 0 0.2em #F87, 0 0 0.2em #F87}h3.c {text-shadow: 0 0 0.2em #87F, 0 0 0.2em #87F,        0 0 0.2em #87F}

Thật là thú vị

Không có phủ định tốt hơn

Quả thục, đúng vậy, Mr M

CẬP NHẬT

Đây là bản mixin SCSS để tạo đột quỵ: //codepen.io/pixelass/pen/gbGZYL

/// Stroke font-character
/// @param  {Integer} $stroke - Stroke width
/// @param  {Color}   $color  - Stroke color
/// @return {List}            - text-shadow list
@function stroke[$stroke, $color] {
  $shadow: [];
  $from: $stroke*-1;
  @for $i from $from through $stroke {
   @for $j from $from through $stroke {
      $shadow: append[$shadow, $i*1px $j*1px 0 $color, comma];
    }
  }
  @return $shadow;
}
/// Stroke font-character
/// @param  {Integer} $stroke - Stroke width
/// @param  {Color}   $color  - Stroke color
/// @return {Style}           - text-shadow
@mixin stroke[$stroke, $color] {
  text-shadow: stroke[$stroke, $color];
}

CÓ câu hỏi cũ .. với các câu trả lời được chấp nhận [và tốt] ..

NHƯNG ... Trong trường hợp có ai đó cần điều này và ghét nhập mã ...

ĐÂY là viền đen 2px với hỗ trợ CrossBrowser [không phải IE]. Tôi cần cái này cho phông chữ @fontface vì vậy nó cần phải sạch hơn so với các câu trả lời đã thấy trước đây ... Tôi thực hiện từng pixel theo chiều kim để đảm bảo rằng [hầu như] không có khoảng trống nào cho " phông chữ mờ "[vẽ tay hoặc tương tự]. Có thể thêm Subpixels [0,5px] nhưng tôi không cần.

Mã dài chỉ viền ??? ...ĐÚNG!!!

text-shadow: 1px 1px 0 #000,
    -1px 1px 0 #000,
    1px -1px 0 #000,
    -1px -1px 0 #000,
    0px 1px 0 #000,
    0px -1px 0 #000,
    -1px 0px 0 #000,
    1px 0px 0 #000,
    2px 2px 0 #000,
    -2px 2px 0 #000,
    2px -2px 0 #000,
    -2px -2px 0 #000,
    0px 2px 0 #000,
    0px -2px 0 #000,
    -2px 0px 0 #000,
    2px 0px 0 #000,
    1px 2px 0 #000,
    -1px 2px 0 #000,
    1px -2px 0 #000,
    -1px -2px 0 #000,
    2px 1px 0 #000,
    -2px 1px 0 #000,
    2px -1px 0 #000,
    -2px -1px 0 #000;

160 hữu ích 5 bình luận chia sẻ

Chủ Đề