小编Rou*_*ica的帖子

阐明 <meta name="format-detection"> 的正确用法

我找不到以下标准的W3WHAT-WG(甚至非标准第三方)规范

<meta name="format-detection">
Run Code Online (Sandbox Code Playgroud)

我有两个原则问题。

问题1:元标记中可以引用哪些格式?format-detection

最常见的是,第三方参考文献引用telephone.

偶尔email还是date被引用。

更罕见的是,address被引用。

一个来源 ( https://www.goodemailcode.com/email-code/template.html ) 引用了这一点url

这给出了以下格式列表:

  • telephone
  • email
  • date
  • address
  • url

这是完整的格式列表吗?还有其他人吗?

问题 2:必须单独引用每种格式,还是可以在单个元标记中一起引用任意数量的格式?

即问,是否需要声明:

<meta name="format-detection" content="telephone=no">
<meta name="format-detection" content="email=no">
<meta name="format-detection" content="date=no">
<meta name="format-detection" content="address=no">
<meta name="format-detection" content="url=no">
Run Code Online (Sandbox Code Playgroud)

或者这是完全可以接受的:

<meta name="format-detection" content="telephone=no, email=no, date=no, address=no, url=no">
Run Code Online (Sandbox Code Playgroud)

如果format-detection不是公认的标准,我非常乐意参考非标准规范(或博客文章),只要该文档具有一定的权威性并且不仅仅是第三方的观察或评论。

html format specifications detection meta-tags

6
推荐指数
0
解决办法
1201
查看次数

使用PHP explode()函数时出现"空分隔符"警告

在javascript中,var myStringToArray = myString.split('');完全可以接受.

但在PHP中,$My_String_To_Array = explode('', $My_String);抛出一个错误:

警告:explode()空分隔符

PHP手册(http://php.net/manual/en/function.explode.php)解释说:

如果分隔符是空字符串(""),则explode()将返回FALSE.

那么我应该在现代PHP中使用什么而不是explode('', $My_String)

到目前为止,我能看到的替代方案是:

  • split("", $My_String) - 自PHP 5.3.0起已弃用
  • str_split($My_String)
  • preg_split('//', $My_String)

七年前,str_split()本来是使用的正确选择.

str_split()仍然在当代使用或我应该只看preg_split()

或者我应该看别的东西?

php split explode php-7

5
推荐指数
2
解决办法
7462
查看次数

在同一页面上,内联SVG可以缩放,但是作为<img>嵌入的SVG不会 - 为什么不呢?

我有一个SVG,我想在新网站上经常使用.

因此,不是在许多页面上内联编写SVG,而是将每个页面上的SVG包含为可缓存<img>,这在首次下载后可以从浏览器缓存中检索.

我调用的SVG <img>与我内联写入的内容相同 - 但是内联SVG与浏览器宽度相对应,SVG调用的<img>则没有.

我需要做什么,以确保SVG <img>上下调用的方式与内联中包含的方式完全相同?

例:

.handsoffhri-campaign-logo {
width: 80.5vw;
height: 12vw;
background-color: rgba(0,0,0,0.4);
}

pre, p pre {
display: inline;
}
Run Code Online (Sandbox Code Playgroud)
<p>Expand this window to <em>Full Page</em> and then narrow and widen the browser viewport to see how the two SVGs behave differently (though they are identical). How can I get the SVG called by <b>&lt;img&gt;</b> to scale up and down like the inline SVG?</p>

<h2>SVG called by <pre>&lt;img&gt;</pre></h2>
<img …
Run Code Online (Sandbox Code Playgroud)

html css html5 svg css3

5
推荐指数
0
解决办法
246
查看次数

如何在 2019 年监听 window.location.search 的变化

我想在window.location.search 不重新加载文档的情况下进行更新,然后根据window.location.search.

当用户单击按钮时,该按钮的onclick事件会触发以下函数:

window.history.pushState({action : 'myAction'}, document.title, '?action=myAction');
Run Code Online (Sandbox Code Playgroud)

到现在为止还挺好。window.location.search浏览器 URL 栏中的更新。

但是我找不到检测此更新的通用后台事件侦听器-类似于onhashchange查询字符串。

我能想到的最好的是:

window.history.pushState({action : 'myAction'}, document.title, '?action=myAction');
window.history.pushState({action : 'myAction'}, document.title, '?action=myAction');
window.history.back();

window.addEventListener('popstate', () => console.log(event.state.action));
Run Code Online (Sandbox Code Playgroud)

这有效,但我相信必须有更优雅的方法。

html javascript query-string pushstate popstate

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

使用 &lt;use&gt; 标签更改 SVG 填充颜色不起作用

我只想更改 svg 填充颜色和悬停颜色。但我看到这个 svg 像这样附加:

<use xlink:href="#search-magnify"></use>
Run Code Online (Sandbox Code Playgroud)

我认为它指的是网站上某个地方的这个 svg。我只想更改填充颜色而不编辑原始 svg。所以我尝试用这种方式用类和样式将它包裹在跨度上。

.icon svg path{
  fill: red;
  color: red;
}
Run Code Online (Sandbox Code Playgroud)

但它根本不起作用。这是小提琴

我在这里缺少什么?难道这不能通过css实现吗?

html css jquery svg

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

哪些 CSS 属性会穿透 WebComponent 的 Shadow Root?

Shadow Root是否有维护一个官方列表,其中包含渗透到的CSS 属性的最新详细信息WebComponent

我认为有以下几点:

  • color
  • line-height
  • font-family
  • font-size
  • font-weight

都是这样,但至少还有十几个吧?

css web-component shadow-dom

5
推荐指数
0
解决办法
466
查看次数

关于 this.attachShadow({mode: 'open'}) 和 this.shadowRoot 的澄清

关于原生WebComponents

constructor()开头的方法中class,通常将影子 DOM 树附加到Custom Element并返回对其的引用ShadowRoot

class myCustomElement extends HTMLElement {

  constructor() {
    super();
    const shadowroot = this.attachShadow({mode: 'open'});
  }

 [... REST OF CODE HERE...]

}
Run Code Online (Sandbox Code Playgroud)

当然,引用的名称可以是任何名称。

我见过:

  • var shadow = this.attachShadow({mode: 'open'});(看:Element.attachShadow()
  • this.root = this.attachShadow({mode: 'open'});

我们可以很容易地使用:

  • const myShadowRootzzz = this.attachShadow({mode: 'open'});

然而,已经存在Element.shadowRoot作为参考ShadowRoot

那么为什么语法是

const shadow = this.attachShadow({mode: 'open'});
Run Code Online (Sandbox Code Playgroud)

在示例中经常使用,简单说明时:

this.attachShadow({mode: 'open'});
Run Code Online (Sandbox Code Playgroud)

就足够了,因为......任何时候ShadowRoot需要引用,该引用字面意思是:

this.shadowRoot 
Run Code Online (Sandbox Code Playgroud)

为什么 WebComponent …

web-component shadow-dom custom-element native-web-component

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

哪些是准确测量页面加载时间的正确指标?

我正在使用 JavaScript Performance API,并且试图找出正确的指标组合,以便在请求和加载任何单个页面时在控制台上记录页面加载时间。

TLDR: 我想使用 JavaScript 的性能 API来获取接近Firefox 开发人员工具(或任何浏览器开发人员工具)的“网络”选项卡load上报告的数字的数字。

请参阅下图中右侧的数字:

Firefox 开发者工具性能指标

我不会有任何问题,但事实上,我尝试过的组合都无法始终接近loadFirefox 开发者工具的“网络”选项卡上报告的数字 - 有时我得到的最终数字高达百分之几第二次下,有时相同的量超过。

也许我已经达到了尽可能接近的数字,但我想确保我做到了,并且不会意外地引用不适当的指标。

以下是我正在使用的指标(来自PerformanceNavigationTiming的界面Performance API):

  • domainLookupEnd
  • connectEnd- 我以前用过这个,但现在没有
  • responseEnd
  • loadEventStart

这就是我目前所拥有的:

window.addEventListener('load', () => {
  
  let domainLookupEnd = performance.getEntriesByType('navigation')[0].domainLookupEnd;
  let connectEnd = performance.getEntriesByType('navigation')[0].connectEnd;
  let responseEnd = performance.getEntriesByType('navigation')[0].responseEnd;
  let loadEventStart = performance.getEntriesByType('navigation')[0].loadEventStart;
 
  console.log(`
domainLookupEnd: ${domainLookupEnd}
connectEnd: ${connectEnd}
responseEnd: ${responseEnd}
loadEventStart: ${loadEventStart}

Page loaded in: (${responseEnd} - ${domainLookupEnd})
Page built in: (${loadEventStart} - ${responseEnd})
Page …
Run Code Online (Sandbox Code Playgroud)

javascript load-time page-load-time firefox-developer-tools

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

有没有办法用var( - current-color)重现currentColor?

我不currentColor经常使用,但是当我这样做时,它非常有用.

所以我对CSS变量的到来感到有些兴奋.

我们来一个红绿灯.

NB请相信我,日本的红绿灯变成琥珀色到蓝色.我知道这很难相信.我知道蓝灯看起来很绿.但它不是,它是蓝色的.

div {
float: left;
width: 200px;
}

div div {
float: none;
}

.top {
color: rgb(255,0,0);
}

.middle {
color: rgb(255,227,0);
}

.bottom {
color: rgb(63,255,63);
}

.jp .bottom {
color: rgb(0,255,191);
}

.light {
text-align: center;
}

.light::before {
content: '';
display: block;
margin: 6px auto 0;
width: 25px;
height: 25px;
border-radius: 15px;
background-color: currentColor;
}
Run Code Online (Sandbox Code Playgroud)
<div class="uk">
<h2>UK Traffic Lights</h2>
<div class="top light">Red</div>
<div …
Run Code Online (Sandbox Code Playgroud)

css css3 css-variables

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

从 javascript 数组中删除所有虚假值,包括 NaN 但不包括 0 和空字符串

我有以下数组:

const values = ['', 0, 'one', NaN, 1, 'two', 2, null, 'three', undefined, 3, false];
Run Code Online (Sandbox Code Playgroud)

我想filter()所有falsy,除了''0

我知道有一个有用的速记:

return values.filter(Boolean)
Run Code Online (Sandbox Code Playgroud)

但这会删除包括在内的所有falsy值。 ''0

我尝试了以下方法:

return values.filter(value => [NaN, null, undefined, false].indexOf(value) < 0);
Run Code Online (Sandbox Code Playgroud)

它几乎是正确的......但它不会删除NaN.

const values = ['', 0, 'one', NaN, 1, 'two', 2, null, 'three', undefined, 3, false];
Run Code Online (Sandbox Code Playgroud)

有什么方法可以达到与上一个示例相同的结果,但也可以删除NaN

javascript arrays nan filter falsy

3
推荐指数
2
解决办法
121
查看次数