Tùy chọn chọn CSS
Trong một thời gian dài, thật khó để tạo kiểu cho phần tử trên tất cả các trình duyệt. Hóa ra, một tập hợp các phong cách hợp lý có thể tạo ra một hộp lựa chọn nhất quán và hấp dẫn trên các trình duyệt mới trong khi vẫn ổn trong các trình duyệt cũ hơn. Có một số thành phần của hộp chọn có thể được tạo kiểu, đặc biệt là chiều cao, chiều rộng, phông chữ, đường viền, màu sắc, phần đệm, bóng hộp và màu nền. Tiêu đề của tài liệu. hộp { chiều rộng. 120px; . 30px; . 1px cố định #999; . 18px; . #1c87c9; . #eee; . 5px; . 4px 4px #ccc; Show Hộp chọn theo kiểu Một hộp chọn bình thường Hộp chọn theo kiểu Tuy nhiên, mũi tên thả xuống khó chịu liên tục giữ nguyên. Không có cách trực tiếp để tạo kiểu cho nó, nhưng có một số thủ thuật có thể được sử dụng để thay đổi mũi tên thả xuống mặc định. Hãy thảo luận về một số phương pháp dưới đây Để ẩn mũi tên mặc định của trình đơn thả xuống, hãy đặt thuộc tính giao diện CSS thành giá trị "không", sau đó thêm mũi tên riêng của bạn với sự trợ giúp của thuộc tính tốc ký nền. Lưu ý rằng thuộc tính xuất hiện vẫn được coi là một công nghệ thử nghiệm và bạn cần sử dụng tiền tố -moz- (đối với Firefox) và -webkit- (đối với Chrome, Safari, Opera) để tương thích tối đa với trình duyệt. Tiêu đề của tài liệu select { chiều rộng. 140px; . 35px; . 5px 35px 5px 5px; . 18px; . 2px rắn #ccc; . không có; . không có; . không ai; . url("/uploads/media/default/0001/02/f7b4d3d2ba3fe1d8518e6e63d7740e1e73921abf. png") 96%/15% không lặp lại #eee; } Đầu tiên, đặt phần tử hộp vào vùng chứa có chiều rộng cố định và đặt phần tràn thành "ẩn". Sau đó, cung cấp cho phần tử chiều rộng lớn hơn 20 pixel so với chiều rộng yếu tố. Điều này sẽ ẩn mũi tên thả xuống mặc định (vì tràn. ẩn trên vùng chứa), và bây giờ có thể áp dụng hình nền ở phía bên phải của . Phương pháp này rất tốt để sử dụng vì tất cả các trình duyệt đều hỗ trợ tràn hiệu quả. ẩn giấu Lưu ý rằng nhược điểm của phương pháp này là các tùy chọn được mở rộng trực quan hơn so với menu chọn
Thuộc tính sự kiện con trỏ CSS có thể được sử dụng để tạo danh sách thả xuống riêng lẻ, bằng cách phủ một phần tử lên mũi tên thả xuống gốc (để tạo tùy chỉnh) và không cho phép sự kiện con trỏ trên đó. Phương pháp này hoạt động tốt và có hỗ trợ trình duyệt tuyệt vời. Khá đẹp khi sử dụng các dấu ưa thích của bạn thay vì dấu hiệu thả xuống khó chịu của hộp Đặt các dấu trong thuộc tính nội dung và đặt phông chữ tương ứng để trông đẹp mắt. Ở đây, chúng tôi đặt "Consolas" và "monospace". Sau đó, bạn cần xoay các dấu chấm câu bằng thuộc tính biến đổi CSS Ở đây, hộp được chèn vào một phần tử để chúng ta có thể đặt con trỏ cho nó ngay cả khi thuộc tính pointer-events được đặt thành "none". Tiêu đề của tài liệu select { chiều rộng. 140px; . 35px; . 4px; . 4px; . 2px 2px 8px #999; . #eee; . không có; . không có; . chặn Nội tuyến; . không có; . không có; . không ai; . con trỏ; . liên quan đến; . sau { nội dung. ''; . 11px "Consolas", đơn cách; . #666; . xoay (90 độ); . xoay (90 độ); . xoay (90 độ); . 8px; . 2px; . 0 0 2px; . 1px rắn #ddd; . tuyệt đối; . không ai; . trước { nội dung. ''; . 6px; . 0px; . 20px; . 20px; . #eee; . tuyệt đối; . không ai; . khối; In this series on Web Forms, we’ve been learning how to create and style various form controls. In the last installment, we learned how to style radio buttons and checkboxes by first hiding them using the appearance CSS property. We’ll once again be putting the appearance property to use in order to customize the appearance of the Tuy nhiên, trước khi chúng ta tiếp tục, bạn có thể muốn làm mới bộ nhớ của mình bằng cách xem lại các bài viết trước trong loạt bài này
Anatomy of a StandardAs you can see in the image below, the standard
In terms of markup, the Cách đặt lại kiểu CSSNhư chúng tôi đã làm với các nút radio và hộp kiểm trước đây, chúng tôi sẽ xóa điều khiển gốc bằng thuộc tính xuất hiện. CSS sau đây cũng sẽ xóa mũi tên thả xuống select { // styles reset, including removing the default dropdown arrow appearance: none; -webkit-appearance: none; -moz-appearance: none; background-color: transparent; border: none; padding: 0 1em 0 0; margin: 0; width: 100%; font-family: inherit; font-size: inherit; cursor: inherit; line-height: inherit; // Stack above custom arrow z-index: 1; // Remove focus outline, will add on alternate element outline: none; } The padding is a short-hand property that sets a value to each of the
Adding Our Own StylesThe next set of rules customize the appearance of our Nhưng trước khi chúng ta hiểu điều đó, đây là điều gì đó trong CSS mà bạn có thể chưa từng thấy trước đây Đây là các biến CSS. Chúng thực sự hữu ích để xác định màu sắc mà bạn muốn sử dụng ở một vài nơi. Phương thức var() đọc giá trị của biến. Bạn có thể thấy biến –select-border được đọc bên dưới Ch là một đơn vị CSS có liên quan đến độ rộng ký tự của “0” (không). Do đó, giá trị 15ch gấp 15 lần chiều rộng của ký tự “0“ Here’s our Lưu ý rằng nó vẫn thiếu mũi tên xuống. Hãy thêm nó ngay bây giờ Để hiển thị mũi tên thả xuống, chúng tôi sẽ sử dụng thuộc tính CSS hiện đại có tên là clip-path. Các đường dẫn clip cho phép chúng tôi tạo tất cả các loại hình dạng bằng cách “cắt bớt” các hình dạng hình vuông và hình chữ nhật khác mà chúng tôi lấy làm mặc định cho hầu hết các phần tử. Trước khi có thuộc tính clip-path, SVG sẽ là giải pháp phù hợp. Tuy nhiên, nó không hoạt động tốt dưới dạng nền vì chúng tôi không thể thay đổi giao diện của nó theo bất kỳ cách nào mà không xác định lại toàn bộ SVG. Nó cũng sẽ không hỗ trợ việc sử dụng các biến tùy chỉnh CSS We’ll define the arrow as an :after pseudo-element of the .select Bạn có thể tự hỏi những gì &. sau khi làm. Nó là một phần của Sass (Syntactally Awesome StyleSheets), là một phần mở rộng CSS biên dịch thành CSS thẳng. Nó làm cho CSS dễ viết mã hơn và loại bỏ rất nhiều sự trùng lặp. Nó thực hiện điều đó – ít nhất là một phần – thông qua việc lồng ghép. Ký tự dấu và đề cập đến bộ chọn gốc khi lồng In order to accommodate the :after‘s width, we have to update the .select rule to use a CSS grid layout. Then, to position the arrow, we’ll define a grid-template-areas called “select” and add a rule that assigns it to the Bây giờ chúng ta có thể nói với. chọn để căn chỉnh các mục ở giữa (xem đoạn mã trên), đồng thời căn chỉnh các mục. sau nội dung ở “cuối” thông qua thuộc tính justify-self Đây cuối cùng là kết quả hoàn thành Bạn sẽ tìm thấy bản demo cho hướng dẫn này trên codepen. io Trong phần này của loạt bài Xây dựng biểu mẫu web bằng HTML, chúng tôi đã sử dụng một số thuộc tính CSS mới, bao gồm diện mạo và khu vực mẫu lưới để tùy chỉnh diện mạo của một thành phần tiêu chuẩn. Bài viết tiếp theo sẽ đề cập đến nhiều cũng như cách vô hiệu hóa điều khiển tùy chỉnh. Phần cuối của loạt bài sẽ chuyển hướng để giải thích về vai trò của JavaScript trong việc làm cho các biểu mẫu HTML trở nên tương tác hơn |