如何设置供应商前缀的 CSS 值(不是属性名称)|客户端

2024-04-19

<edit>我实际上猜到会发生这种情况,但发布后几秒钟我就收到了“可能重复”的标志,这是不合适的!这个问题是关于 CSS 值 and 与 CSS 属性名称无关所以这不是重复的this https://stackoverflow.com/questions/17487716/does-css-automatically-add-vendor-prefixes/ or this https://stackoverflow.com/questions/8889014/setting-vendor-prefixed-css-using-javascript问题!!!这也不是一个骗局this one https://stackoverflow.com/questions/21819801/setting-flexbox-display-with-jquery-for-multiple-browsers因为我要求一个通用的解决方案。
如果您仍然不相信或不确定这篇文章的主题,也许您看一下这个问题的底部:“我不寻找什么”和“谁没有完成工作”</edit>

如果需要,有没有办法通过 JavaScript 在客户端设置适当的供应商前缀 CSS 值?

我在寻找什么

例如:background: -prefix-linear-gradient{...}

我很想获得一个关于如何通过 JavaScript 在客户端设置供应商前缀 CSS 值的通用解决方案。除此之外,问题是关于如何在客户端执行此操作并且不作为构建过程的一部分(例如POSTcss)。

但我也很欣赏任何提示

  • JavaScript / jQuery 插件可以完成工作或
  • 额外的资源可以让我自己解决这个问题。

正如你所看到的,我已经自己给出了答案。但我仍在寻找更好的解决方案,因为 Autoprefixer 的有效负载约为 626 KB!


使用案例场景

/*
Unprefixed version of "linear-gradient" will only work for
browsers: IE10+, FF16+, Chrome26+, Opera12+, Safari7+.
So how to generate a prefixed version on the fly if necessary?
*/

var aVal = ['linear-gradient(to bottom, #fefefe 0%,#aaaaaa 100%)', 'linear-gradient(to bottom, #aaaaaa 0%,#fefefe 100%']
    style = document.getElementsByTagName('BODY')[0].style,
    i = 0;
(function toggle () {

  if ( i++ ) { i = 0; }
  style.background = aVal[ i ];
  /* here we need something like:
  style.background = parseForPrefix( aVal[ i ] );
  */
  setTimeout(toggle, 2000)

})();
* {
  height: 100%;
  margin: 0;
  padding: 0;
  width: 100%;
}
Unprefixed version of "linear-gradient" will only work for<br>
browsers: IE10+, FF16+, Chrome26+, Opera12+, Safari7+.<br>
So how to generate a prefixed version on the fly if nessecary?

或者想象一下类似的事情

jQuery('head').append('<style>body{background:linear-gradient(...)}</style>')

这应该是这样的

jQuery('head').append('<style>'
    + parseForPrefix('body{background:linear-gradient(...)}') +
'</style>')

instead.


我不寻找什么

例如:-prefix-transform: translate{...}

如何在 CSS 属性名称上使用供应商前缀的主题已经讨论得足够多了(而不是我所追求的)。
NOTE:我也完全了解用作部分的预处理器和后处理器构建过程。我的整个 CSS 工作流程基于“Grunt : SASS : PostCSS : Autoprefixer”,所以无需对此提出任何建议!


谁没有完成工作

  • -无前缀 http://leaverou.github.io/prefixfree/#test-drive在供应商前缀的 CSS 属性名称上做得很好,但不关心供应商前缀的 CSS 值。
  • 不幸的是,jQuery 也是如此。

为了完成您所要求的操作,您需要一个参考来将当前使用的浏览器与所需的前缀进行比较;喜欢caniuse https://caniuse.com/。或者你可以用 CSS 做一些 mixins@支持规则 https://developer.mozilla.org/en-US/docs/Web/CSS/@supports,但这可能比它的价值更麻烦。

有一个现有的解决方案,自动前缀器 https://github.com/postcss/autoprefixer,但它需要你使用 postcss。自述文件包含各种构建工具插件的示例。我使用 SCSS 和 autoprefixer,我正在实现梦想。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何设置供应商前缀的 CSS 值(不是属性名称)|客户端 的相关文章

  • 打开图层地图,经纬度获取地址

    我正在尝试获取带有经度和纬度的地址 城市 邮政编码 街道地址 但我不知道如何获取 我正在使用开放图层 当我单击地图的一部分时 会获取该位置的经度和纬度 有人有解决方案吗 div class map div
  • 如何在D3中导入json数据?

    如何在D3中导入json文件 I did d3 json temp json 但是我如何在进一步的代码中访问这个数据集呢 到目前为止我已经尝试过 var data d3 json temp json 但使用 data data 在其余代码中
  • TypeScript 中类似字典的对象应使用什么类型?

    在 TypeScript 中 我有时会使用期望 或返回 对象的函数 其中这些对象被视为字典 基本上我的问题是 这里使用的正确类型是什么 我可以用 Record
  • JS 是否支持使用键函数而不是比较器进行排序?

    JavaScript 的array sort https developer mozilla org en US docs Web JavaScript Reference Global Objects Array sort Syntax方
  • Chrome DevTools 脚本黑盒不起作用

    我正在尝试使用 chrome devtools 的新功能 黑盒脚本 这篇 Chrome Devtools 文章列出了脚本黑盒功能 https developer chrome com devtools docs blackboxing wh
  • Postman如何发送请求? ajax,同源策略

    我发现了这个非常有用的 Chrome 扩展程序 名为 Postman 这是一个非常有用的扩展 特别是当您正在编写 RESTful 应用程序时 我感到困惑的一件事是这个插件 扩展如何能够在不同的域上成功发送 POST 请求 我尝试像这样使用
  • CKFinder 如何在选择图像(文件:选择)时获取尺寸 URL 和尺寸(宽度/高度)?

    我正在使用 CkFinder 3 成功上传图像后 我需要能够在用户单击 选择 按钮后进行检测 文件名 ID url 原始图像的宽度和高度 目前我正在使用files choose但我找不到有关 cb 事件的信息 知道如何解决吗 代码示例将不胜
  • ReactJs / Typescript:如何扩展状态接口

    我有以下内容 interface EditViewState
  • 如何只显示 HTML5 datalist 中的文本而不显示值?

    这是一个例子
  • JS 检查深层对象属性是否存在[重复]

    这个问题在这里已经有答案了 我正在尝试找到一种优雅的方法来检查对象中是否存在某些深层属性 因此 实际上试图避免对未定义的情况进行巨大的保护性检查 例如 if typeof error undefined typeof error respo
  • Mustache javascript:如何处理布尔值

    我有一个 JavaScript 对象obj键的值可以是true or false 该值被传递给 Mustache 模板 JavaScript 对象 obj like true or false 模板 span like span 现在我希望
  • HTML5:从存储的二进制字符串播放视频

    我正在尝试使用 FileReader readAsBinaryString Blob File 将视频文件的内容作为二进制字符串读取 如示例中所示http www html5rocks com en tutorials file dndfi
  • 设备收到 GCM Android 通知但未显示

    尽管通知已在应用程序本身中注册 但我的 Ionic Android 应用程序的 GCM Cloud 消息通知未出现在我的设备的主屏幕中 我正在使用 npm 模块node gcm https www npmjs com package nod
  • Bootstrap 中的垂直菜单

    有没有办法使用任何引导类来创建垂直菜单 不是下拉菜单 侧边栏上完全独立的垂直菜单 我可以使用我的 css 创建一个 但只是想知道引导程序中是否有任何内置类 或者可以使用顶部栏通过任何 hack 来完成吗 这个问题现在已经很老了 但如果有人看
  • 如何从对象 URL 获取文件或 blob?

    我允许用户通过拖放和其他方法将图像加载到页面中 当图像被删除时 我正在使用URL createObjectURL转换为对象 URL 以显示图像 我不会撤销该网址 因为我会重复使用它 所以 当需要创建一个FormData对象 以便我可以允许他
  • 常见的 Web UI 样式

    在接下来的几天里 我必须向我的一位客户展示一个 Web 应用程序的原型 问题是我不太擅长 CSS 最糟糕的是我几乎对得到的结果不满意 编写业务逻辑对我来说没有任何挑战 但 UI 设计却占用了我 80 以上的时间 我不需要什么令人惊叹的东西
  • 无法在heroku上推送node.js应用程序

    我尝试在heroku 上推送我的node js 应用程序 但是 无法检测到此应用程序的默认语言 我什至尝试过heroku buildpacks set heroku nodejs 但还是无法推动 Counting objects 31 do
  • 脚本和链接标签的简写 http:// 为 // ?有人以前看过/用过这个吗?

    问题如下 如果您使用 addthis 共享按钮 查看任何网站 一旦您浮动在 addthis 按钮上 并且加载了所有必需的资源 请使用 firebug 或 chrome 检查器查看文档的正文 不是源代码 而是屏幕上的实际文档 对象检查器 你会
  • 如何解析使用YUI数据源返回的NULL值

    我正在使用 YUI 数据表和数据源来渲染我的项目之一中的数据 返回的数据恰好为NULL YUI数据源无法解析它 下面是数据源和数据表的声明代码 为了便于阅读 我将每个声明分开 列说明声明 var columnDescription key
  • 使用 Azure Bot Framework Web 聊天无法单击电话号码

    Setup 我使用以下命令创建了一个 Azure QnA Web 聊天机器人QnAMaker https www qnamaker ai Azure 机器人服务 https azure microsoft com en us service

随机推荐