112 of 313 menu

Thuộc tính border-image

Thuộc tính border-image đặt hình ảnh cho đường viền, nó là thuộc tính viết tắt cho các thuộc tính border-image-source, border-image-slice, border-image-repeat, border-image-widthborder-image-outset. Trong đó, thuộc tính viết tắt xuất hiện trong CSS sớm hơn các thuộc tính được viết tắt và do đó được hỗ trợ trong nhiều trình duyệt cũ hơn.

Cú pháp

bộ chọn { border-image: url(đường dẫn tới hình ảnh) độ lệch/độ dày/độ dịch chuyển kiểu lặp lại; }

Mô tả

Hình ảnh mà chúng ta muốn áp dụng cho đường viền cần được thiết kế một cách đặc biệt: 4 hình ảnh nhỏ cho các góc và 4 hình ảnh cho các cạnh. Ví dụ về hình ảnh như vậy:

Trong trường hợp này, phần trung tâm được để trắng (vì chúng ta không muốn nó xuất hiện trên nền của phần tử). Ví dụ về hình ảnh với phần trung tâm được điền đầy:

Giá trị slice chỉ định cho trình duyệt, phần nào của hình ảnh sẽ dùng cho các góc, còn phần nào dùng cho các cạnh (và phần nào sẽ là trung tâm). Các góc dùng 4 phần, các cạnh dùng 4 phần và một phần (trung tâm) dùng cho nền của phần tử (tùy chọn, từ khóa fill).

Hình ảnh được "cắt" thành các mảnh theo cách sau: cho giá trị slice được chỉ định từ một đến bốn giá trị. Hãy cùng phân tích với ví dụ. Giả sử các giá trị sau được chỉ định: 10 20 30 40 (pixel px không được chỉ định, điều này liên quan đến việc hình ảnh có thể là raster hoặc vector). Các giá trị nói lên điều sau: 10 cắt từ trên, 20 cắt từ phải, 30 cắt từ dưới, 40 cắt từ trái. Phần nào của hình ảnh sẽ rơi vào góc trên bên trái? Đó sẽ là mảnh: 10 từ trên, 40 từ trái. Vào góc trên bên phải sẽ rơi 10 từ trên, 20 từ phải. Và cứ thế.

Thông thường hình ảnh đối xứng (kiểu như các hình thoi ở trên) và chúng ta cần cắt các mảnh bằng nhau cho các góc. Trong trường hợp đó, một giá trị được chỉ định, giá trị này sẽ đặt các độ lệch giống nhau từ tất cả các phía. Để cắt các hình thoi màu cam, chúng ta sẽ chỉ định slice26 (vì hình thoi màu cam có kích thước 26px trên 26px). Các hình thoi màu vàng sẽ rơi vào các đường viền và điều sau sẽ xảy ra với chúng: chúng hoặc sẽ kéo dài ra toàn bộ khối hoặc sẽ lặp lại dọc theo đường viền (phụ thuộc vào giá trị repeat):

<div id="elem"></div> #elem { border-image-source: url("image.png"); border-image-slice: 26; border-image-repeat: stretch; border-style: solid; border-width: 26px; width: 200px; height: 200px; background: green; margin: 0 auto; }

:

<div id="elem"></div> #elem { border-image-source: url("image.png"); border-image-slice: 26; border-image-repeat: repeat; border-style: solid; border-width: 26px; width: 200px; height: 200px; background: green; margin: 0 auto; }

:

Thuộc tính border-image không cho phép chỉ định độ dày của đường viền phần tử. Trình duyệt chỉ đơn giản kéo dài hình ảnh dọc theo đường viền với độ rộng đã có. Vì vậy cần đặt nó thông qua thuộc tính border.

Người dùng trình duyệt cũ (hoặc đã tắt hình ảnh) sẽ thấy khung tiêu chuẩn, được đặt trong border, vì vậy nên đặt cho nó kiểu và màu sắc phù hợp.

Giá trị

Giá trị Mô tả
url(Đường dẫn tới hình ảnh) Đường dẫn tới hình ảnh. Chi tiết hãy xem border-image-source.
độ lệch Chỉ định cho trình duyệt, phần nào của hình ảnh sẽ dùng cho các góc, phần nào cho các cạnh (và phần nào sẽ là trung tâm). Các giá trị có thể: từ 1 đến 4 số | từ 1 đến 4 phần trăm. Thông qua dấu cách có thể đặt từ khóa fill bổ sung cho các số hoặc phần trăm. Chi tiết hãy xem border-image-slice.
độ dày Thuộc tính điều khiển chiều rộng phần nhìn thấy của khung, tỷ lệ nó. Nếu giá trị này lớn hơn chiều rộng border-width, hình ảnh khung sẽ tràn vào dưới nội dung. Các giá trị có thể: Đơn vị CSS | phần trăm | số | auto. Chi tiết hãy xem border-image-width.
độ dịch chuyển Thuộc tính thú vị, cho phép đẩy khung ra ngoài giới hạn của phần tử. Giá trị âm không được hỗ trợ. Các giá trị có thể: Đơn vị CSS (ngoại trừ % (?)) | số dương | auto. Chi tiết hãy xem border-image-outset.
kiểu lặp lại Chỉ định cách lặp lại hình ảnh trên các đường viền (không phải trên các góc): lát hoặc kéo dãn.
Các giá trị có thể: stretch | repeat | round | space.
Chi tiết hãy xem border-image-repeat.

Giá trị mặc định: none 100%/1/0 stretch (url(đường dẫn tới hình ảnh) độ lệch/độ dày/độ dịch chuyển kiểu lặp lại).

Ví dụ . border-image-repeat: giá trị repeat

<div id="elem"></div> #elem { border-style: solid; border-width: 26px; border-image: url("image.png") 26 repeat; width: 200px; height: 200px; background: green; margin: 0 auto; }

:

Ví dụ . border-image-repeat: giá trị stretch

<div id="elem"></div> #elem { border-style: solid; border-width: 26px; border-image: url("image.png") 26 stretch; width: 200px; height: 200px; background: green; margin: 0 auto; }

:

Ví dụ . border-image-repeat: giá trị round

Hiện tại ở trạng thái bình thường đã đặt giá trị repeat, còn khi di chuột qua - round. Hãy chú ý rằng trước khi di chuột qua trong đường viền chứa không phải số nguyên lượng hình thoi, còn sau khi di chuột qua - số nguyên. Đó chính là cách round hoạt động:

<div id="elem"></div> #elem:hover { border-image: url("image.png") 26 round; } #elem { border-style: solid; border-width: 42px; border-image: url("image.png") 26 repeat; width: 200px; height: 200px; background: green; margin: 0 auto; }

:

Ví dụ . border-image-repeat: hai từ

Giá trị repeat cho chiều rộng và stretch cho chiều cao:

<div id="elem"></div> #elem { border-style: solid; border-width: 26px; border-image: url("image.png") 26 repeat stretch; width: 200px; height: 200px; background: green; margin: 0 auto; }

:

Ví dụ . Sự trùng khớp chiều rộng hình ảnh với chiều rộng đường viền

Hãy tăng border-width khi di chuột qua, trong khi đó độ dày của border-image vẫn giữ nguyên. Các hình thoi sẽ kéo dãn ra toàn bộ đường viền:

<div id="elem"></div> #elem:hover { border-width: 52px; } #elem { border-style: solid; border-width: 26px; border-image: url("image.png") 26 repeat; width: 200px; height: 200px; background: green; margin: 0 auto; }

:

Ví dụ . border-image-slice

Hãy lấy một hình ảnh khác, trong đó các mảnh khác nhau không bằng nhau:

Chỉ định, phần nào từ hình ảnh cần cắt - 25% 30% 10% 20%. Cách hoạt động của nó như sau: 25% - khoảng lùi từ trên, 30% - khoảng lùi từ phải, 10% - khoảng lùi từ dưới, 20% - khoảng lùi từ trái. Về cơ bản với các mảnh này chúng ta cắt các góc. Góc trên bên trái sẽ là 25% từ trên hình ảnh, và 20% từ trái. Góc trên bên phải sẽ là 25% từ trên hình ảnh, và 30% từ phải và cứ thế.

Ngoài ra, nếu bạn di chuột qua khối, thì từ khóa fill sẽ kích hoạt, và phần trung tâm của hình ảnh sẽ trở thành nền của khối chúng ta:

<div id="elem"></div> #elem:hover { border-image: url("image.png") fill 25% 30% 10% 20% stretch; } #elem { border-style: solid; border-width: 52px; border-image: url("image.png") 25% 30% 10% 20% stretch; width: 200px; height: 200px; margin: 0 auto; }

:

Ví dụ

Hãy tạo đường viền gradient với sự trợ giúp của gradient tuyến tính:

<div id="elem"></div> #elem { background: green; border-image: linear-gradient(to bottom, red, blue) 30; border-width: 30px; border-style: solid; width: 200px; height: 200px; margin: 0 auto; }

:

Ví dụ . border-image-width

Hãy đặt giá trị border-image-width thành 2 (hình ảnh đường viền sẽ trở nên lớn hơn 2 lần chính đường viền) khi di chuột qua phần tử (26/2 - đã chỉ định sau dấu gạch chéo, trong đó 26 - là giá trị của border-image-slice). Hãy chú ý rằng bản thân đường viền không tăng lên, còn hình ảnh đường viền - có, vì nó sẽ tràn vào dưới văn bản:

<div id="elem"></div> #elem:hover { border-image: url("image.png") 26/2 repeat; } #elem { border-style: solid; border-width: 26px; border-image: url("image.png") 26 repeat; width: 200px; height: 200px; background: green; margin: 0 auto; }

:

Ví dụ . border-image-outset

Hãy đặt giá trị border-image-outset thành 3 khi di chuột qua phần tử. (26/1/2 - đã chỉ định sau dấu gạch chéo thứ hai, trong đó 26 - là giá trị của border-image-slice, còn - 1 - border-image-width):

<div id="elem"></div> #elem:hover { border-image: url("image.png") 26/1/3 repeat; } #elem { border-style: solid; border-width: 26px; border-image: url("image.png") 26 repeat; width: 200px; height: 200px; background: green; margin: 0 auto; }

:

Xem thêm

  • thuộc tính border-image-source,
    thuộc tính này đặt đường dẫn tới hình ảnh cho đường viền
  • thuộc tính border-image-slice,
    thuộc tính này đặt cách chia cắt hình ảnh cho đường viền
  • thuộc tính border-image-repeat,
    thuộc tính này đặt cách lặp lại hình ảnh cho đường viền
  • thuộc tính border-image-width,
    thuộc tính này đặt kích thước hình ảnh cho đường viền
  • thuộc tính border-image-outset,
    thuộc tính này đặt độ dịch chuyển hình ảnh cho đường viền
Tiếng Việt
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbek
Chúng tôi sử dụng cookie để vận hành trang web, phân tích và cá nhân hóa. Việc xử lý dữ liệu được thực hiện tuân theo Chính sách bảo mật.
chấp nhận tất cả tùy chỉnh từ chối