小编vru*_*gel的帖子

在CSS中将@supports与@media查询混合

我是第一次使用CSS网格构建网站。由于并非所有浏览器都支持此功能,因此我设置了一组后备样式,并有条件地使用@supports not (display:grid)。但我也想将其用作移动样式表,并且仅在较大的屏幕上使用CSS网格-这可以通过简单的媒体查询来实现@media screen and (max-width:700px)。现在的问题是-如果其中任何一个都成立,也就是说,如果浏览器不支持CSS网格或者浏览器窗口的宽度不超过700像素,我想使用我的后备样式表。

所以我的问题是-我怎么问的浏览器@supports或@media在同一时间?嵌套它们是行不通的,因为这本质上是在要求它们都为真,并且仅将整个样式表复制粘贴@supports到中,这是错误的@media。

基本上,我想要这样的东西:

(@supports not (display:grid)) or (@media screen and (max-width:700px)){
    /*my stylesheet*/
}
Run Code Online (Sandbox Code Playgroud)

css progressive-enhancement css3 media-queries

6
推荐指数
1
解决办法
854
查看次数

自定义 HTML 元素扩展另一个自定义元素

我有一个自定义 HTML 标签<fancy-foo>,我想扩展其功能。一些<fancy-foo>元素将使用pretty-bar自定义元素进行扩展,以便我可以在我的 HTML 中使用它们作为

<fancy-foo is="pretty-bar">
    <!-- content -->
</fancy-foo>
Run Code Online (Sandbox Code Playgroud)

所以,我定义类FancyFoo和PrettyBar,定义fancy-foo元素并使用扩展它pretty-bar,像这样:

class FancyFoo extends HTMLElement {
  constructor() {
    super();
  }
}

class PrettyBar extends FancyFoo {
  constructor() {
    super();
  }
}

window.customElements.define('fancy-foo', FancyFoo);
window.customElements.define('pretty-bar', PrettyBar, {extends: 'fancy-foo'});
Run Code Online (Sandbox Code Playgroud)

可悲的是,谷歌浏览器吐出错误

未捕获的 DOMException:无法在“CustomElementRegistry”上执行“define”:“fancy-foo”是有效的自定义元素名称

这是一个奇怪的错误。奇怪的是,它说“fancy-foo”是一个有效的自定义元素名称;我知道,但为什么会抛出错误?

这里发生了什么?

html custom-element

5
推荐指数
1
解决办法
331
查看次数

为什么我的原型这么慢?

好的,所以我写了这个简单的javascript函数,使我的代码更具可读性:

Number.prototype.isBetween=function(a,b){
    return(this>=a&&this<b);
};
Run Code Online (Sandbox Code Playgroud)

现在结果非常慢:我尝试了这个"基准"(我真的不知道如何正确地做这些事情,但这证明了我的观点):

var res=0;
var k=20;
var t=new Date().getTime();
for(var i=0;i<10000000;i++){if(k.isBetween(13,31)){res++;}}
console.log(new Date().getTime()-t);
Run Code Online (Sandbox Code Playgroud)

与

var res=0;
var k=20;
var t=new Date().getTime();
for(var i=0;i<10000000;i++){if(k>=13&&k<31)){res++;}}
console.log(new Date().getTime()-t);
Run Code Online (Sandbox Code Playgroud)

并且第一个脚本需要大约3000毫秒的chrome(并且chrome是我正在使用的和我感兴趣的东西),而第二个脚本只需要24ms - 整个因子125 更快.是扩展现有的类javascript提供了一个非常糟糕的主意?这里发生了什么?

javascript benchmarking prototype

4
推荐指数
1
解决办法
108
查看次数

在字符串中的javascript代码中删除新行

我在javascript文件的源代码中有一个带有换行符的字符串,如下所示:

var str = 'new
           line';
Run Code Online (Sandbox Code Playgroud)

现在,我想删除代码中的换行符。我对此一无所获,我不断了解\n和\r。

提前致谢!

javascript newline

-3
推荐指数
1
解决办法
6928
查看次数