Jquery IE8使用较少变量的REM回退
我需要一个IE8的REM回退,有大量的mixin通过计算px等价物并将其置于REM样式之上作为回退来解决这个问题,但是我的REM被声明为变量的一部分,因此我认为这不可行 我试过Chuck Carpenter的polyfill,由于某些原因,它不能与我编译的样式表一起工作 我想到的另一件事是在IE8中使用带有em的条件样式表而不是rems,但这需要在每次普通样式表进行任何更改时进行更新和转换,因此我认为手动操作是不可行的 另一种可能是使用某种条件方法将变量声明为IE8的像素,但我认为这在更少的版本中不受支持 这里是我的REM声明的地方:Jquery IE8使用较少变量的REM回退,jquery,html,css,internet-explorer-8,less,Jquery,Html,Css,Internet Explorer 8,Less,我需要一个IE8的REM回退,有大量的mixin通过计算px等价物并将其置于REM样式之上作为回退来解决这个问题,但是我的REM被声明为变量的一部分,因此我认为这不可行 我试过Chuck Carpenter的polyfill,由于某些原因,它不能与我编译的样式表一起工作 我想到的另一件事是在IE8中使用带有em的条件样式表而不是rems,但这需要在每次普通样式表进行任何更改时进行更新和转换,因此我认为手动操作是不可行的 另一种可能是使用某种条件方法将变量声明为IE8的像素,但我认为这在更少的版本
@size-gnt: 4.5rem; /* 72px /16 */
@size-spr: 3rem; /* 48px /16 */
@size-big: 2.25rem; /* 36px /16 */
@size-lrg: 1.75rem; /* 28px /16 */
@size-med: 1.25rem; /* 20px /16 */
@size-nml: 1rem; /* 16px /16 */
@size-sml: 0.6875rem; /* 11px /16 */
@size-tny: 0.5rem; /* 8px /16 */
@baseline: 1.4375rem; /* 23px /16 */
@1px: 0.0625rem; /* 1px /16 */
.spc-pad {padding: @baseline}
这是我使用它们的一个例子:
@size-gnt: 4.5rem; /* 72px /16 */
@size-spr: 3rem; /* 48px /16 */
@size-big: 2.25rem; /* 36px /16 */
@size-lrg: 1.75rem; /* 28px /16 */
@size-med: 1.25rem; /* 20px /16 */
@size-nml: 1rem; /* 16px /16 */
@size-sml: 0.6875rem; /* 11px /16 */
@size-tny: 0.5rem; /* 8px /16 */
@baseline: 1.4375rem; /* 23px /16 */
@1px: 0.0625rem; /* 1px /16 */
.spc-pad {padding: @baseline}
我提到的polyfill:
对于纯CSS/Less解决方案,我想最简洁的方法是使用一些“基本单元”声明所有这些变量,然后在编译IE8样式表时更改这个基本单元(使用任何合适的方法),例如:
@u: 1rem;
@size-gnt: 4.5 * @u;
@size-spr: 3 * @u;
@size-big: 2.25 * @u;
@size-lrg: 1.75 * @u;
// etc.
// then for IE8 just override it with
@u: 16px;
例如,创建IE8样式表的一种方法是只编译如下文件:
@import "your-main-stylesheet.less";
@u: 16px;
就是这样。这是一个非常好的解决方案,我只是担心未来的开发人员不会编译IE8样式表,因为人们往往不阅读注释!