Mỗi trang web hiển thị khác nhau trong các trình duyệt khác nhau. Khi trình duyệt đọc mã đằng sau một trang web, nó sẽ dịch thông tin trong cài đặt mặc định. Chẳng hạn, Safari và Internet Explorer có các phông chữ mặc định khác nhau, nghĩa là phông chữ trên một trang web cụ thể sẽ thay đổi khi được xem trong các trình duyệt này. Safari mặc định là họ Helvetica và Internet Explorer của Microsoft mặc định là họ phông chữ Arial
Bài viết này thảo luận về cách tạo mã CSS dành riêng cho trình duyệt để đảm bảo khả năng tương thích giữa các trình duyệt cho một trang web
Các vấn đề phổ biến về khả năng tương thích của trình duyệt CSS
Các sự cố mặc định có thể là lý do phổ biến nhất dẫn đến sự khác biệt giữa các trình duyệt. Khi làm việc với HTML và CSS, thường gặp phải các sự cố dành riêng cho trình duyệt cho cùng một ứng dụng web. Do đó, cần phải phát triển mã CSS dành riêng cho trình duyệt để đảm bảo trải nghiệm người dùng liền mạch, bất kể họ sử dụng trình duyệt nào
- Lưới CSS. CSS Grid được sử dụng rộng rãi trong thiết kế web. Nó cung cấp một khung lưới, trong đó các phần tử có thể được đặt và các thuộc tính được áp dụng theo yêu cầu. Với tính dễ sử dụng và tính linh hoạt, CSS Grid đã trở thành vật cố định giữa các nhà thiết kế và phát triển web.
Tuy nhiên, các thành phần của CSS Grid không hoạt động ổn định trên tất cả các trình duyệt. Ví dụ: các lưới hoạt hình hoạt động liền mạch trong công cụ Gecko của Mozilla chứ không phải trên Chromium và Webkit
- vị trí CSS. dính. Thuộc tính này đóng băng một phần tử trên chế độ xem, ngay cả khi người dùng đang cuộn trên trang. Thông thường, nó được dùng để cố định thanh điều hướng phía trên màn hình. Nó thường hoạt động khá tốt với các tiêu đề và thanh điều hướng, nhưng sự không nhất quán sẽ xuất hiện khi nó được triển khai với các yếu tố khác, chẳng hạn như tiêu đề của bảng. Trong trường hợp này, nó không thành công trong Chromium. Ngoài ra còn có nhiều mâu thuẫn xuất hiện khi triển khai điều này trong Safari
- Hộp linh hoạt CSS. CSS Flexbox phổ biến rộng rãi nhờ tính chất linh hoạt và khả năng dễ dàng tạo vùng chứa và điền vào đó các phần tử. Tuy nhiên, người dùng sẽ thường gặp phải sự cố khi xử lý tỷ lệ khung hình [chiều cao và chiều rộng] trong Flexbox. Điều này thường áp dụng cho các trường hợp phải quản lý hình ảnh trong các thùng chứa do CSS Flexbox thiết lập. Ngoài ra, các vấn đề cũng xuất hiện khi sắp xếp các mục trong vùng chứa trên nhiều thành phần và tỷ lệ. Ví dụ, người ta đã nhận thấy rằng khả năng hiển thị. sập không hoạt động trên công cụ Blink – một trường hợp không tương thích với trình duyệt CSS
Đọc thêm. Các kỹ thuật CSS để cải thiện khả năng tương thích giữa các trình duyệt
Các giải pháp để quản lý các vấn đề về khả năng tương thích của trình duyệt chéo trong CSS
Cách hiệu quả nhất để giải quyết và giải quyết các vấn đề đã nói ở trên là viết và triển khai mã CSS dành riêng cho trình duyệt. Mã dành riêng cho trình duyệt dành cho Chrome, Internet Explorer, Edge, Firefox và Safari được cung cấp bên dưới
Kiểm tra trang web trên trình duyệt thực
Để thêm mã dành riêng cho Trình duyệt trong CSS, điều cần thiết là phát hiện trình duyệt. Điều này có thể được thực hiện bằng cách sử dụng CSS và JavaScript như đã thấy trong phần bên dưới
Phát hiện trình duyệt bằng CSS và JavaScript
Mặc dù phát hiện trình duyệt không phải là một phương pháp hay vì nó có thể cản trở trình duyệt truy cập trang web như các trình duyệt khác làm và dựa vào tác nhân người dùng trình duyệt. Tuy nhiên, đôi khi bạn vẫn có thể sử dụng nó để cung cấp trải nghiệm người dùng nhất quán bằng cách thực hiện một giải pháp thay thế, đặc biệt là khi một số Tính năng và Thuộc tính CSS nhất định không được trình duyệt hỗ trợ đầy đủ
Cách tốt hơn để đảm bảo Khả năng tương thích của trình duyệt là sử dụng tính năng Phát hiện tính năng để tương thích với nhiều trình duyệt
Bạn có thể xác định trình duyệt đang sử dụng chỉ bằng cách truy cập trình điều hướng. đại lý người dùng. Tuy nhiên, userAgent sẽ không thể tạo Tên trình duyệt trực tiếp và bạn có thể sử dụng mã JavaScript bên dưới
function whichBrowser[] { if [isFirefox[]] { return "Firefox"; } else if [isEdge[]] { return "Edge"; } else if [isIE[]] { return "Internet Explorer"; } else if [isOpera[]] { return "Opera"; } else if [isVivaldi[]] { return "Vivalid"; } else if [isChrome[]] { return "Chrome"; } else if [isSafari[]] { return "Safari"; } else { return "Unknown"; } } function agentHas[keyword] { return navigator.userAgent.toLowerCase[].search[keyword.toLowerCase[]] > -1; } function isIE[] { return !!document.documentMode; } function isSafari[] { return [!!window.ApplePaySetupFeature || !!window.safari] && agentHas["Safari"] && !agentHas["Chrome"] && !agentHas["CriOS"]; } function isChrome[] { return agentHas["CriOS"] || agentHas["Chrome"] || !!window.chrome; } function isFirefox[] { return agentHas["Firefox"] || agentHas["FxiOS"] || agentHas["Focus"]; } function isEdge[] { return agentHas["Edg"]; } function isOpera[] { return agentHas["OPR"]; } function isVivaldi[] { return agentHas["Vivaldi"]; }
Mã để phát hiện trình duyệt bằng CSS
/** Internet Explorer */ @media all and [-ms-high-contrast: none], [-ms-high-contrast: active] { div { display: block; } } /** Microsoft Edge */ @supports [-ms-ime-align: auto] { div { display: block; } } /** Mozilla Firefox */ @-moz-document url-prefix[] { div display: block; } } /** Safari */ @media not all and [min-resolution: 0.001dpcm] { div display: block; } } /** Chrominum */ @media screen and [-webkit-min-device-pixel-ratio: 0] and [min-resolution: 0.001dpcm] { div:not[*:root] { display: block; } }
Hãy bắt đầu với mã CSS dành riêng cho trình duyệt cho các trình duyệt IE, Chrome, Mozilla, Edge và Safari
Mã CSS cho khả năng tương thích của Google Chrome
Tất cả các trình duyệt hoạt động khác nhau và có loại CSS riêng. Trong trường hợp trình duyệt Chrome, nhà phát triển cần đặt tỷ lệ pixel WebKit. Mã bên dưới trình bày cách thực hiện với các phiên bản Chrome khác nhau
/* Chrome version 29 and above */ @media screen and [-webkit-min-device-pixel-ratio:0] and [min-resolution:.001dpcm] { selector{ property:value; } }____3____4
Kiểm tra trang web của bạn trên các phiên bản Chrome
Khả năng tương thích mã CSS cho Internet Explorer [IE]
Trong trường hợp trình duyệt IE, hãy sử dụng các câu điều kiện cho mã CSS. Ví dụ ở đây sử dụng điều kiện if cho tất cả các phần, như phần tiêu đề, phần tử HTML, v.v.
/* Using conditional comments with head section CSS */ /* Using conditional comments with HTML elements */ /* IE10+ */ @media screen and [-ms-high-contrast: active], [-ms-high-contrast: none] { selector { property:value; } } /* IE6,7,9,10 */ @media screen and [min-width: 640px], screen\9 { selector { property:value; } } /* IE6,7 */ @media screen\9 { selector { property:value; } } /* IE8 */ @media \0screen { selector { property:value; } } /* IE9,10 */ @media screen and [min-width:0\0]{ selector { property:value; } }
Mẹo dành cho nhà phát triển. Bạn muốn chạy thử nghiệm trang web nhanh trên các phiên bản trình duyệt IE cũ?
Mã CSS để tương thích với Microsoft Edge
Khi nói đến trình duyệt Microsoft Edge, quy trình này rất đơn giản vì nó bao gồm một bộ chọn đơn giản có giá trị thuộc tính. Nó cũng cung cấp khả năng căn chỉnh tự động, đây được coi là cách dễ dàng để tạo mã CSS dành riêng cho trình duyệt
@supports [-ms-ime-align:auto] { selector { property: value; } }
Đọc phổ biến. Kiểm tra khả năng tương thích trình duyệt chéo ngoài Chrome & Firefox
Mã CSS để tương thích với Mozilla Firefox
Trong Firefox, trước tiên hãy sử dụng tiền tố cho URL. Hoặc, sử dụng giao diện moz để hiển thị một phần tử sử dụng kiểu gốc nền tảng dựa trên chủ đề của hệ điều hành
@-moz-document url-prefix[] { selector { property:value; } }
Hoặc
________số 8Mã CSS để tương thích với Safari
Trong trường hợp trình duyệt web Safari, phương tiện sử dụng độ phân giải tối thiểu và thuộc tính xuất hiện WebKit trong các phiên bản gần đây. Trong các phiên bản Safari trước, nó đã sử dụng tỷ lệ pixel cho thuộc tính CSS
/* Safari 11+ */ @media not all and [min-resolution:.001dpcm] { @supports [-webkit-appearance:none] and [stroke-color:transparent] { selector { property:value; } }} /* Test website on real Safari 11+ */ /* Safari 10.1 */ @media not all and [min-resolution:.001dpcm]{ @supports [-webkit-appearance:none] and [not [stroke-color:transparent]] { selector { property:value; } }} /* Safari 6.1-10.0 [but not 10.1] */ @media screen and [min-color-index:0] and[-webkit-min-device-pixel-ratio:0]{ @media { selector { property:value; } }}
Kiểm tra trang web trên các phiên bản Safari miễn phí
Khi mã đã được tạo, mã đó phải được kiểm tra trên các trình duyệt và thiết bị thực để đảm bảo rằng mã CSS đang hiển thị chính xác trên các trình duyệt khác nhau. Cách dễ nhất để thực hiện việc này là tiến hành thử nghiệm trên đám mây thiết bị thực
BrowserStack cung cấp hơn 3000 trình duyệt và thiết bị thực để kiểm tra Selenium thủ công và tự động. Người kiểm tra chỉ cần đăng ký miễn phí, chọn kết hợp thiết bị-trình duyệt-hệ điều hành mà họ muốn và bắt đầu kiểm tra hiệu suất trang web của họ. Thật dễ dàng để xem tính năng nào không hiển thị hoặc hoạt động trên trình duyệt nào – sau đó quay lại CSS để xác định và giải quyết vấn đề
Vì BrowserStack chỉ cung cấp các trình duyệt và thiết bị thực, người thử nghiệm không phải đối mặt với những hạn chế của trình giả lập và trình mô phỏng. Họ nhận được phản hồi tức thì về trải nghiệm người dùng của trang web khi nó xuất hiện trong thế giới thực
Trong một thế giới mà mỗi trang web được truy cập thông qua nhiều trình duyệt và phiên bản trình duyệt, nhà phát triển, người kiểm tra và tổ chức không thể xa lánh người dùng của một trình duyệt cụ thể bằng cách để CSS không tương thích thoát vào sản xuất
Kết hợp thông tin trong bài viết này khi tạo mã CSS để phát triển trang web. Nó sẽ đảm bảo rằng các nhà phát triển và người thử nghiệm không phải làm việc chăm chỉ để cung cấp trải nghiệm người dùng tích cực, được tối ưu hóa cao như một phần của mọi trang web họ tạo
Kiểm tra trình duyệt chéo Kiểm tra thủ công
Bài đăng này có hữu ích không?
Vâng, cảm ơn Không thực sự
Chúng tôi rất tiếc khi biết điều đó. Hãy chia sẻ phản hồi của bạn để chúng tôi có thể làm tốt hơn
Cảm ơn rất nhiều phản hồi của bạn
thẻ
Kiểm tra trình duyệt chéo Kiểm tra thủ côngNhững bài viết liên quan
Các kỹ thuật CSS để cải thiện khả năng tương thích giữa các trình duyệt
Ba kỹ thuật CSS giúp trang web trông nhất quán về mặt phong cách trên các trình duyệt
Tìm hiểu thêm
Làm cách nào để làm cho mã HTML5 của Ứng dụng web tương thích với trình duyệt chéo?
Không phải tất cả các chức năng HTML5 đều được hỗ trợ bởi tất cả các trình duyệt. Các nhà phát triển phải sửa đổi và điều chỉnh HTML5 t
Tìm hiểu thêm
Selenium RC. Sự khác biệt từ Webdriver
Bài viết này sẽ giúp bạn hiểu sự khác biệt chính giữa Selenium RC và WebDriver cùng với wi