Tôi giả định rằng các trang chính SharePoint bằng với trang cái trong ASP.NET (MVC). Do đó, điều này không phải là vấn đề.
<!--[if lt IE 7 ]> <html class="ie6"> <![endif]-->
<!--[if IE 7 ]> <html class="ie7"> <![endif]-->
<!--[if IE 8 ]> <html class="ie8"> <![endif]-->
<!--[if IE 9 ]> <html class="ie9"> <![endif]-->
<!--[if (gt IE 9)|!(IE)]><!--> <html> <!--<![endif]-->
Tất cả các mã trước đó là đặt thẻ HTML với một lớp CSS khác trên thẻ HTML tùy thuộc trình duyệt nào đang truy cập trang web. Vì vậy, bạn có thể ghi đè lên một số tờ định kiểu cho bất kỳ trình duyệt cụ thể nào (IE).
site.css
.coloredBackground
{
background-color: #FF0000; //red
}
.ie6 .coloredBackground
{
background-color: #00FF00; //green
}
.ie8 .coloredBackground
{
background-color: #0000FF; //blue
}
Trong ví dụ này, người dùng duyệt web với Firefox, Opera, Safari, IE7,9,10 sẽ thấy nền đỏ. Đối với IE6 màu nền được ghi đè với màu xanh lá cây và trong IE8 với màu xanh lam.
đăng ký CSS của bạn sẽ trông giống như sau:
<SharePoint:CSSRegistration Name="site.css" runat="server" />
Như bạn có thể thấy không có nhu cầu để thiết lập ConditionalExpression nữa trong việc đăng ký CSS, bởi vì bạn đã chuyển đổi style sheet sử dụng bằng cách thiết lập một lớp cụ thể trên phần tử HTML.
Cập nhật:
Một khả năng khác sẽ được bao gồm một file style sheet tùy thuộc vào phiên bản trình duyệt bằng cách sử dụng tài sản trên sự kiểm soát SharePoint aspx ConditionalExpression.
<SharePoint:CSSRegistration Name="ie6.css" ConditionalExpression="lt IE 7" runat="server" />
<SharePoint:CSSRegistration Name="ie7.css" ConditionalExpression="IE 7" runat="server" />
<SharePoint:CSSRegistration Name="ie8.css" ConditionalExpression="IE 8" runat="server" />
<SharePoint:CSSRegistration Name="ie9.css" ConditionalExpression="IE 9" runat="server" />
Nhược điểm là bạn có thể nhận được các vấn đề ưu tiên css vì lớp .ie*
là mất tích trên các yếu tố html và do đó không bác bỏ các .class-to-override-if-specific-ie-version
. Bạn có thể giải quyết vấn đề này bằng cách sử dụng quy tắc !important
trong các tệp trang tính theo phong cách cụ thể.
Vâng, tôi biết đây là cách thức hoạt động - tuy nhiên Sharepoint 2010 loại bỏ các bình luận có điều kiện xung quanh thẻ html để css không có lớp để móc vào. – Jaz
Cập nhật câu trả lời với một khả năng khác. Nó có thể không phải là giải pháp tốt nhất nhưng nó sẽ hoạt động ... – diemogebhardt
Hi Diermo, cảm ơn vì đã nỗ lực rất nhiều trong câu trả lời của bạn. Mã cập nhật của bạn sẽ hoạt động nhưng yêu cầu tôi chạy các tệp css riêng biệt cho mỗi phiên bản IE. Vấn đề là SharePoint loại bỏ các nhận xét có điều kiện trừ khi chúng ở định dạng được sử dụng trong bản cập nhật của bạn. Tôi muốn biết liệu tôi có thể sử dụng nhận xét có điều kiện theo phong cách Paul Irish trong SharePoint không? Tôi biết tôi có thể sử dụng biểu thức điều kiện SharePoint: CSSRegistration nhưng đây không phải là những gì tôi muốn. Câu hỏi của tôi là: Làm cách nào để sử dụng nhận xét có điều kiện của Paul Irish trong trang cái SharePoint 2010? – Jaz