Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery IE8使用较少变量的REM回退_Jquery_Html_Css_Internet Explorer 8_Less - Fatal编程技术网

Jquery 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的像素,但我认为这在更少的版本

我需要一个IE8的REM回退,有大量的mixin通过计算px等价物并将其置于REM样式之上作为回退来解决这个问题,但是我的REM被声明为变量的一部分,因此我认为这不可行

我试过Chuck Carpenter的polyfill,由于某些原因,它不能与我编译的样式表一起工作

我想到的另一件事是在IE8中使用带有em的条件样式表而不是rems,但这需要在每次普通样式表进行任何更改时进行更新和转换,因此我认为手动操作是不可行的

另一种可能是使用某种条件方法将变量声明为IE8的像素,但我认为这在更少的版本中不受支持

这里是我的REM声明的地方:

@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样式表,因为人们往往不阅读注释!