2014-12-17 3 views
2

Привет, ребята, можно определить версию браузера, используя меньше, например, у меня есть немного меньше кода, который я не хочу загружать в браузер IE8, и я обнаружил меньше охранников, которые, кажется, нужно, но моя проблема заключается в том, как обнаружить браузер с меньшим количеством, чтобы установить защитный параметр true или false.Обнаруживать версию браузера с помощью LESS

http://lesscss.org/features/#mixin-guards-feature

.my-optional-style() when (@my-option = true) { 
    button { 
    color: white; 
    } 
} 
.my-optional-style() 

;

+3

Почему бы не вставить его в файл, который загружается в условных комментариях HTML? – adeneo

+0

Не лучше ли использовать условные комментарии? Если перед развертыванием вы предварительно компилируете файл Less в CSS, это было бы совершенно невозможно. Динамическая компиляция в браузере на самом деле не рекомендуется. – Harry

ответ

3

Увидев, что вы отметили Javascript, я предоставлю ниже - хотя это примечание, это не родной подход LESS.

Я Wouldnt рекомендую браузер пристреливать таким образом против условных комментариев для загрузки CSS или любого другого числа возможных альтернатив .... Однако, если вы решили, здесь вы идете:

Используйте JS:

var b = document.documentElement; 
     b.setAttribute('data-useragent', navigator.userAgent); 
     b.setAttribute('data-platform', navigator.platform); 
     b.className += ((!!('ontouchstart' in window) || !!('onmsgesturechange' in window))?' touch':''); 

Чтобы добавить, например, ниже к html тегу:

data-useragent='Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C)' 
data-platform='Win32' 

позволяет вам гнезда вашего МЕНЬШЕ в, например, (Вам нужно будет сосредоточить правило, ниже только пример)

html:not([data-useragent*='IE/8']){ 
    // non IE8 styles 
} 
1

Я всегда предпочитал использовать условные комментарии для добавления классов на <html> элемент подход к прямому до агента пользователя нюхает. Условные комментарии видны только Internet Explorer и игнорируются другими браузерами, поэтому указанные версии IE являются единственными, которые получают имена классов. Для меня основной преимуществом является то, что вам не нужно полагаться на Javascript.

Он работает немного как это:

HTML:

<!--[if IE 8]><html class="ie8"><![endif]--> 
<!--[if gt IE 8]><!--><html><!--<![endif]--> 

МИНУС:

.ie8 { 
    .selector { 
     color: red; 
    } 
} 

Вложение в LESS/Сасс позволяет легко сгруппировать все ваши IE8 переопределяет стили в этом случае. Вы можете прочитать больше об этом подходе здесь:

http://www.paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/

А вот еще некоторые общие сведения об условных комментариев:

http://msdn.microsoft.com/en-us/library/ms537512%28v=vs.85%29.aspx

Смежные вопросы