CSS, с если/затем логика браузера

Различие сводится к проектному решению Microsoft и Sun.

Дженерики в Java реализованы до стирание типа компилятором, что означает, что проверка типа происходит во время компиляции, и информация о типе удалена. Этот подход был проявлен для хранения унаследованного кода совместимым с новым кодом с помощью дженериков:

Из Учебных руководств по Java, Дженерики: Введите Стирание :

, Когда универсальный тип инстанцируют, компилятор переводит те типы техникой, названной стиранием типа — процесс, куда компилятор удаляет всю информацию, связанную с параметрами типа и аргументами типа в классе или методе. Стирание типа включает JAVA-приложения, которые используют дженерики для поддержания совместимости на уровне двоичных кодов с библиотеками Java и приложениями, которые были созданы перед дженериками.

Однако с дженерики в C# (.NET) , нет никакого стирания типа компилятором, и проверки типа выполнены во время времени выполнения. Это обладает его преимуществами, что информация о типе сохраняется в скомпилированном коде.

Из Википедии:

Это проектное решение усилено для обеспечения дополнительной функциональности, такой как разрешение отражения с сохранением универсальных типов, а также облегчением некоторых ограничений стирания (таких как неспособность создать универсальные массивы). Это также означает, что нет никакого хита производительности из бросков во время выполнения и обычно дорогих преобразований упаковки.

Вместо того, чтобы говорить "дженерики.NET лучше, чем дженерики Java", нужно изучить различие в подходе для реализации дженериков. В Java кажется, что сохранение совместимости было высоким приоритетом, в то время как в.NET (когда представлено в версии 2.0), понимание полного преимущества использования дженериков было более высоким приоритетом.

5
задан Jeremy 8 September 2009 в 23:07
поделиться

7 ответов

Вот пример того, как вы можете включить специфичный для IE6 CSS, чтобы переопределить определенные классы CSS для IE 6 или ниже:

<link rel="stylesheet" type="text/css" href="/css/screen.css" title="MySiteStyle" media="screen" />
<!--[if lte IE 6]>
<link rel="stylesheet" type="text/css" href="/css/screen-ie6.css" title="MySiteStyle" media="screen" />
<![endif]--> 

В качестве альтернативы вы можете сделать это для каждого элемента следующим образом:

<!--[if (!IE) | (gt IE 6)]>
<div class="header">
<![endif]--> 
<!--[if lte IE 6]>
<div class="ie6_header">
<![endif]--> 

MSDN содержит дополнительные сведения о поддержке условных комментариев IE .

9
ответ дан 18 December 2019 в 09:51
поделиться

Что ж, вы можете использовать javascript для обнаружения браузера и применения класса на его основе. Например, см .:

Атрибуты JQuery

2
ответ дан 18 December 2019 в 09:51
поделиться

Вы можете использовать CSS-хаки . Но не надо.

2
ответ дан 18 December 2019 в 09:51
поделиться

Вы можете до некоторой степени использовать выражения CSS.

См. http://gadgetopia.com/post/2774 для некоторых примеров. Они не обходятся без условных атрибутов CSS как таковых, но они позволяют динамически изменять значения атрибутов CSS.

1
ответ дан 18 December 2019 в 09:51
поделиться

Вы можете использовать условные комментарии :

<!--[if lt IE 7]>
  <style>
    /*your style for IE <=6*/
  </style>
<![endif]-->

<![if !IE | (gte IE 7)]>
  <style>
    /*your style for other browsers*/
  </style>
<![endif]>

Я считаю, что это самое чистое решение для такого рода вещей.

2
ответ дан 18 December 2019 в 09:51
поделиться

в подсказке jQuery проверьте этот плагин: http://jquery.thewikies.com/browser/

плагин, делающий то, что предлагает ghills, это хороший чистый способ.

1
ответ дан 18 December 2019 в 09:51
поделиться

Следующая страница покажет вам 6 хаков CSS специально для IE7. Вам не следует их использовать, но это самый простой способ придать вашему сайту идеальный вид.

0
ответ дан 18 December 2019 в 09:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: