Cách tạo CSS thuần túy trên hiệu ứng thu phóng hình ảnh
CSS không có giả cho nhắm mục tiêu sự kiện nhấp, và điều này tạo thành một trong những điểm đau lớn nhất của các nhà phát triển front-end. Lớp giả gần nhất là : hoạt động
cái nào tạo kiểu cho một phần tử trong khoảng thời gian người dùng nhấn chuột vào nó.
Tuy nhiên, hiệu ứng này chỉ tồn tại trong thời gian ngắn: một khi người dùng thả chuột, : hoạt động
không làm việc nữa. Chúng ta cần tìm một cách khác để mô phỏng sự kiện nhấp chuột trong CSS.
Bài đăng này đã được viết để đáp ứng yêu cầu của độc giả và nó sẽ giải thích làm thế nào để nhắm mục tiêu sự kiện nhấp bằng CSS thuần trong một trường hợp sử dụng cụ thể, thu phóng hình ảnh.
Bạn có thể xem kết quả cuối cùng bên dưới - một giải pháp chỉ dành cho CSS phóng to hình ảnh khi nhấp.
Khi nào nên sử dụng giải pháp chỉ CSS
Trước khi tôi tiến hành, tôi muốn nói rằng, để thu phóng hình ảnh, tôi khuyên dùng phương pháp chỉ CSS (thay đổi kích thước của hình ảnh), chỉ khi bạn muốn Độc thân hoặc một nhóm vài hình ảnh để có tính năng phóng to.
Cho một thích hợp thư viện, JavaScript cung cấp linh hoạt và hiệu quả hơn.
Kỹ thuật Front-End Chúng tôi sẽ sử dụng
Bây giờ bạn đã được cảnh báo, hãy nhanh chóng xem qua 3 kỹ thuật chính chúng tôi sẽ sử dụng:
- Các
Thẻ HTML cho phép trình duyệt tạo các khu vực liên kết qua một hình ảnh. Đọc thêm về
yếu tố trong bài viết trước của tôi.
- Các
sơ đồ
thuộc tính củanhãn, nối hình ảnh lên bản đồ hình ảnh.
- Các
:Mục tiêu
Lớp giả CSS đại diện cho một yếu tố đã được nhắm mục tiêu bằng cách sử dụng bộ chọn ID của nó.
1. Tạo cơ sở HTML
Đầu tiên, hãy tạo cơ sở HTML. Trong mã dưới đây, chúng tôi thêm một hình ảnh được phóng to và mở rộng & biểu tượng nút đóng để phóng to và thu nhỏ.
Điều quan trọng là phải có ID trên hình ảnh để phóng to và nút Đóng cần phải là một liên kết có href = "#"
thuộc tính, tôi sẽ giải thích lý do tại sao sau này trong bài viết.
2. Thêm CSS
Ban đầu, biểu tượng Đóng không nên được hiển thị. Các Chức vụ
, lề-
, trái
, và dưới cùng
tính chất địa điểm các Mở rộng và đóng biểu tượng nơi chúng tôi muốn chúng ở - ở góc trên bên phải của hình ảnh.
Các sự kiện con trỏ: không có;
quy tắc cho phép các sự kiện chuột để đi qua biểu tượng Mở rộng và đạt đến hình ảnh.
.img chiều cao: 150px; chiều rộng: 200px; .close hình nền: url ("Đóng-icon.png"); lặp lại nền: không lặp lại; dưới cùng: 418px; không trưng bày; chiều cao: 32px; bên trái: 462px; lề trên: -32px; vị trí: tương đối; chiều rộng: 32px; .Exand bottom: 125px; lề trái: -32px; lề phải: 16px; sự kiện con trỏ: không có; vị trí: tương đối;
3. Thêm bản đồ hình ảnh
Trên bản đồ hình ảnh, khu vực có thể nhấp nên là ở góc trên bên phải của hình ảnh ngay bên dưới biểu tượng Mở rộng và về kích thước của nó. Đặt yếu tố trước
thẻ trong HTML. Chúng tôi sẽ liên kết hình ảnh vào bản đồ trong bước tiếp theo.
Trong khối mã ở trên, thẻ xác định hình dạng, kích thước và URI của một khu vực có thể liên kết bên trong một bản đồ hình ảnh. Cho một hình chữ nhật, các
hình dạng
thuộc tính lấy trực tràng
giá trị, và bốn giá trị của coords
thuộc tính biểu thị khoảng cách tính bằng pixel giữa:
- cạnh trái của hình ảnh & cạnh trái của vùng liên kết
- cạnh trên của hình ảnh và cạnh trên của vùng liên kết
- cạnh trái của hình ảnh & cạnh phải của vùng liên kết
- cạnh trên của hình ảnh và cạnh dưới của vùng liên kết
Giá trị của href
thuộc tính phải là định danh băm của hình ảnh (đây là lý do tại sao hình ảnh nên có một ID
).
4. Liên kết hình ảnh vào Bản đồ hình ảnh
Thêm sơ đồ
thuộc tính cho hình ảnh để liên kết nó với bản đồ hình ảnh. Giá trị của nó cần phải là đại diện băm của Tên
thuộc tính của nhãn chúng tôi đã thêm vào Bước 3.
Khu vực có thể nhấp của bản đồ hình ảnh bây giờ nằm phía sau nút Mở rộng. Khi người dùng nhấp vào nút Mở rộng, đó là khu vực có thể nhấp được nhấp vào thực tế - hãy nhớ rằng chúng tôi đã tạo nút Mở rộng “vượt qua” với sự kiện con trỏ: không có;
quy tắc trong Bước 2.
Bằng cách này người dùng nhắm mục tiêu hình ảnh chính nó bằng cách nhấp vào nó và sau khi nhấp vào, URI được thêm vào "# img1"
định danh mảnh.
5. Phong cách :Mục tiêu
Lớp giả
Cho đên khi "# img1"
Mã định danh phân đoạn nằm ở cuối URI, hình ảnh được nhắm mục tiêu có thể là tạo kiểu với :Mục tiêu
lớp giả
Kích thước của tăng hình ảnh được nhắm mục tiêu, nút Đóng được hiển thị và nút Mở rộng bị ẩn.
.img: mục tiêu chiều cao: 450px; chiều rộng: 500px; .img: target + .c Đóng display: block; .img: target + .c Đóng + .Exand display: none;
Nút Đóng hoạt động như thế nào
Vì nút Đóng đã được thêm làm hình nền (Bước 2) và thực sự là một gắn thẻ
href = #
thuộc tính (Bước 1), khi được nhấp, nó sẽ xóa định danh phân đoạn khỏi cuối URI. Vì vậy, nó cũng loại bỏ :Mục tiêu
lớp giả từ hình ảnh và hình ảnh trở lại kích thước trước đó.
Bây giờ, hiệu ứng phóng to thu nhỏ chỉ bằng CSS đã được thực hiện, hãy xem bản demo bên dưới hoặc đọc thêm một chút về lý thuyết đằng sau bản đồ hình ảnh trong phần tiếp theo.
Thông tin cơ bản: Tại sao
và không
?
Đến bây giờ, bạn chắc chắn hiểu rằng điều quan trọng nhất để giải pháp chỉ CSS này hoạt động là nhắm mục tiêu hình ảnh bằng cách sử dụng href = "# imgid"
thuộc tính, mà cũng có thể được thực hiện bằng cách sử dụng thay vì bản đồ hình ảnh.
Điều này có thể đúng, tuy nhiên khi nói đến hình ảnh, sử dụng yếu tố phù hợp hơn. Điều quan trọng hơn nữa là khi bạn muốn thu phóng xảy ra khi nhấp vào một khu vực lớn hơn trên hình ảnh thay vì chỉ trên biểu tượng Mở rộng,
cung cấp cho bạn một giải pháp dễ dàng.
Các mặc định
giá trị cho hình dạng
thuộc tính tạo ra một khu vực liên kết hình chữ nhật bao phủ toàn bộ hình ảnh. Nếu bạn đã sử dụng thay vào đó, bạn sẽ phải mã hóa nó để che hình ảnh, và bạn cũng có thể phải sử dụng một yếu tố bao bọc cho cùng một mục đích.
Để nói về sự cẩn thận của giải pháp này, sự kiện con trỏ
Thuộc tính CSS (chúng tôi sử dụng trong Bước 2) được Internet Explorer hỗ trợ chỉ từ phiên bản 11.
Để hỗ trợ các trình duyệt IE trước đó, bạn có thể muốn sử dụng thay vì
, hoặc phóng to hình ảnh bằng cách nhấp vào bất cứ nơi nào trên đó (trong trường hợp này sẽ không cần biểu tượng Mở rộng).