Matt Williamson have suggest two solutions which both work fine
Solution 1.
1: using System;
2: using System.Collections.Generic;
3: using System.Linq;
4: using System.Web;
5: namespace MyProject.WebSite
6: {
7: public class PageBase : System.Web.UI.Page
8: {
9: protected void Page_PreInit(object sender, EventArgs e)
10: {
11: // This is necessary because Safari and Chrome browsers don't display the Menu control correctly.
12: // All webpages displaying an ASP.NET menu control must inherit this class.
13: if (Request.ServerVariables["http_user_agent"].IndexOf("Safari", StringComparison.CurrentCultureIgnoreCase) != -1)
14: Page.ClientTarget = "uplevel";
15: }
16: }
17: }
Then make sure all of your pages get inherit from this PageBase.
Solution 2.
1: if (Request.UserAgent.Contains("AppleWebKit")) Request.Browser.Adapters.Clear();
I'm remember that some one have done a smart declarative browser adapting solution which we can control ASP.NET Render to render fine-tuned HTML code for selected Browser in Web.config, but now can't find it back. Please lets me know if you find it around.