我想用渐变创建一个棋盘图案.我找到了一个例子,并根据我的需要对其进行了修改,但它只适用于-moz
前缀.当我删除-moz
前缀时,模式完全不同.
如何使这个-moz
棋盘图案无前缀地工作linear-gradient
?
body {
background-image:
linear-gradient(45deg, #808080 25%, transparent 25%),
linear-gradient(-45deg, #808080 25%, transparent 25%),
linear-gradient(45deg, transparent 75%, #808080 75%),
linear-gradient(-45deg, transparent 75%, #808080 75%);
background-size:20px 20px;
background-position:0 0, 10px 0, 10px -10px, 0px 10px;
}
Run Code Online (Sandbox Code Playgroud) 在文档中有deleteMany()方法
Character.deleteMany({ name: /Stark/, age: { $gte: 18 } }, function (err) {});
Run Code Online (Sandbox Code Playgroud)
我想删除多个具有一个共同属性而另一个属性不同的文档.像这样的东西:
Site.deleteMany({ userUID: uid, id: [10, 2, 3, 5]}, function(err)
{}
这个的正确语法是什么?
我在网上做了很多研究,我仍然不确定如何在我的网络应用程序中处理不同的屏幕密度.我发现这个网站上唯一有用的问题和答案是:在Android上获取Chrome中的物理屏幕尺寸/ dpi /像素密度
根据评价最高的答案,"50px应该在所有移动设备上看起来大致相同,它可能会有所不同,但CSS Pixel是我们独立于设备构建一致文档和UI的方式"
是真的吗?也许对于大多数移动设备来说,这是真的,我在2个手机上测试了我的应用程序,其中一个有144ppi和其他288ppi,它看起来有点相同.但是在桌面上,它要大得多.桌面上的CSS像素大约增加50%.这是一个问题,因为即使您对大屏幕和小屏幕进行单独设计,也有很多移动设备应该被视为大屏幕,例如横向模式的平板电脑.所以,假设您为桌面设计了一些东西,只是感到失望的是它在平板电脑上看起来要小50%.
在我看来,像设备像素比率的东西是不对的.我用这个网站来测试我的屏幕:https: //bjango.com/articles/min-device-pixel-ratio/笔记本电脑屏幕是96dpi,-webkit-min-device-pixel-ratio = 1.0智能手机是144dpi和设备像素比率为1.5
所以理论上,根据这个信息,元素应该在移动设备上显示相同.144/1.5 = 96但事实并非如此.就像DPR工作不正常一样.
Update1:我在MDN上发现了这个
默认比率取决于显示密度.在密度小于200dpi的显示器上,比率为1.0.在密度介于200和300dpi之间的显示器上,比率为1.5.对于密度超过300dpi的显示器,比率是整数层(密度/ 150dpi).请注意,仅当视口比例等于1时,默认比率才为真.否则,CSS像素和设备像素之间的关系取决于当前缩放级别.
我不知道它是否仍适用于所有设备,但在我的例子中它似乎是.这真是太糟了.50%的差异是巨大的.我无法相信网络没有更好的提供.webkit-min-device-pixel-ratio显示1.5也很奇怪,但实际上它是1.0
Update2:
好的,我正在开始赏金.我只想要一些答案,最佳实践,CSS像素不成比例的其他可能情况,一些链接.任何可以帮助我在这种情况下的东西.
让我再说一次我的具体问题.我有一个跨平台的网络应用程序,应该在桌面,手机和平板电脑上运行.由于像素密度不同,96dpi笔记本电脑屏幕上应用的每个元素都比移动设备(144 dpi)大约高50%.有一两件事,真正让我感兴趣就是为什么即使是window.devicePixelRatio = 1.5此设备,浏览器将它喜欢它为1.0(否则会看起来一样在桌面上).
我使用一种设计用于台式机和平板电脑,分辨率无关紧要.我的网络应用程序是独立的,因此桌面用户可以将窗口宽度设置为800px.但与平板电脑相比,台式机上的东西太大了.我将不得不在平板电脑和台式机上为元素设置不同的大小.我想到的一件事是使用媒体查询(min-device-pixel-ratio:1.5)将为移动设备设置样式.
所以我得到了一个可能的解决方法,但我想更多地了解CSS像素的不一致性.是仅仅针对移动设备还是桌面设备还是存在更多问题?在我看来,它在移动设备上或多或少相同,但我无法测试它.我想讨论一下这个主题,其他可能的解决方法,最佳实践,一些资源.我搜索过,我在网上找不到任何东西.每个人都说,"CSS像素是我们的密度无关像素",但这是事实:
我真的指望你帮助我.我搜索了很多,发现没有解决方案.我想在管理菜单中为我的插件设置一个自定义图标,我希望它与配色方案很好地集成.
我看着这里https://codex.wordpress.org/Function_Reference/add_menu_page
在$icon_url
(WP 3.8+)如果'data:image/svg + xml; base64 ...',指定的SVG数据图像用作CSS背景
但是,如果我在那里放置一个SVG图标的URL,我得到的只是在其src属性中使用SVG的img,因此它根本不与颜色方案集成.它应该是一个CSS背景.
另外,我不明白这data:image/svg+xml;base64...
究竟是什么意思?
我尝试嵌入内联SVG,$icon_url
但很明显,它不会起作用,但我只是不得不尝试一下.
Dashicons不是一个选项,没有适合我的项目的图标.
是否可以在组件文件之外获取组件的实例?
例如,如果我使用 以编程方式创建一个组件const myComponent = new Component(options)
,我可以访问它的实例并调用诸如 之类的方法myComponent.$set(props)
。
是否可以在任何组件范围之外获取某些深层嵌套组件的实例?
要么通过 id(dom 类 svelte-someid)获取它,要么在组件内部获取它(并使用它创建组件实例引用的全局注册表)。
我正在迭代一个数据数组,我想在渲染它之前对其进行一些处理。
我知道我可以创建一个新组件并将数组条目传递给 i,并在该子组件中进行处理,或者我可以添加一个辅助函数getClass(entry)
,或者我可以内联一个十元运算符,
但我想知道是否有一种方法可以做这样的事情,将一些代码内联到每个块中。非功能性示例:
<div class="Menu">
{#each menuEntries as entry, i }
{{
let classes = entry.classes;
if (entry.submenu) {
classes += ' has-submenu';
}
}}
<div class="menu-entry {classes}">...</div>
{/each}
</div>
Run Code Online (Sandbox Code Playgroud)
这似乎是一个像这样的解决方法。唯一的事情是classes
必须在循环之前定义。
<script>
let classes = '';
</script>
<div class="Menu">
{#each menuEntries as entry, i }
{(() => {
classes = entry.classes;
if (entry.submenu) {
classes += ' has-submenu';
}
return ''; // return empty string so Svelte does not print it
})()}
<div class="menu-entry …
Run Code Online (Sandbox Code Playgroud) 如示例中所示,如果我有一个 void 函数的类型定义,则返回布尔值的函数将通过该类型检查。
这是一个错误还是有正当理由?有解决方法吗?
type ReturnsVoid = () => void
type ReturnsNumber = () => number
const a: ReturnsVoid = () => { }
// Surprisingly there is no error
const b: ReturnsVoid = () => { return false; }
// Error - expected
const c: ReturnsNumber = () => { return false; }
// Error - expected
const d: void = false;
Run Code Online (Sandbox Code Playgroud)
我无法获取类中泛型方法的类型,尝试这样做会导致解析错误。
class MyClass<T extends string> {
public myMethod<U extends string>(arg: U): [T, U] {
}
}
type returnType = ReturnType<MyClass<'test'>['myMethod']<'test'>>;
// Unexpected token. Did you mean `{'>'}` or `>`?(1382)
Run Code Online (Sandbox Code Playgroud)
有没有办法做到这一点?
更新:我编辑了示例以避免混淆,之前未知的类型只是为了使示例简单。返回类型还取决于类泛型和方法泛型。
另外,不可能像这样隔离方法
type method = MyClass<'test'>['myMethod']
type returnType = ReturnType<method<'test'>>;
Run Code Online (Sandbox Code Playgroud)
因为method
不是泛型。并将其设为通用会导致完全相同的解析错误。
Update2:<这不是返回类型的问题,而是类型本身的问题 - 不过我会保留原来的问题。我提交了一个问题。
我需要实现一个GetClassParameter<T>
像这样工作的类型:
class Foo<T> {
}
type foo = Foo<string>
type x = GetClassParameter<foo>; // should be string
Run Code Online (Sandbox Code Playgroud)
很抱歉,如果它是重复的,我找不到它。我只找到了一个硬编码的解决方案(来源):
type GetFooParameter<T extends Foo<any>> = T extends Foo<infer R> ? R : unknown;
Run Code Online (Sandbox Code Playgroud)
我试图做这样的事情:
class Foo<T> {
public value: T;
public value2: string;
constructor (value: T) {
this.value = value;
}
}
type BaseT<T> = {
value: T // if removed, it wouldn't work
}
type GetClassParameter<T extends BaseT<any>> = T extends BaseT<infer R> ? R : unknown; …
Run Code Online (Sandbox Code Playgroud) javascript typescript typescript-generics typescript-typings
我在一个 Linux 系统上编译了 Rust 二进制文件,并尝试在另一个 Linux 系统上运行它。当我运行该程序时,我得到:
./hello-rust: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.32' not found (required by ./hello-rust)
Run Code Online (Sandbox Code Playgroud)
系统上安装了 GLIBC 又名 libc6,但是版本是 2.31 有没有办法为较新版本的 libc6 编译程序?