小编Mac*_*zyk的帖子

CSS渐变棋盘图案

我想用渐变创建一个棋盘图案.我找到了一个例子,并根据我的需要对其进行了修改,但它只适用于-moz前缀.当我删除-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)

css gradient linear-gradients css3

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

Mongoose - 在一个函数调用中删除多个文档

在文档中有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) {}

这个的正确语法是什么?

database mongoose mongodb node.js mongoose-schema

20
推荐指数
4
解决办法
3万
查看次数

CSS - 像素密度独立设计,桌面上的CSS像素大50%

我在网上做了很多研究,我仍然不确定如何在我的网络应用程序中处理不同的屏幕密度.我发现这个网站上唯一有用的问题和答案是:在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像素是我们的密度无关像素",但这是事实:

100px矩形,笔记本电脑与手机

html javascript css mobile responsive-design

14
推荐指数
1
解决办法
3597
查看次数

WordPress中的自定义svg管理菜单图标

我真的指望你帮助我.我搜索了很多,发现没有解决方案.我想在管理菜单中为我的插件设置一个自定义图标,我希望它与配色方案很好地集成.

我看着这里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不是一个选项,没有适合我的项目的图标.

css wordpress svg

11
推荐指数
3
解决办法
8756
查看次数

以编程方式获取 Svelte 组件实例

是否可以在组件文件之外获取组件的实例?

例如,如果我使用 以编程方式创建一个组件const myComponent = new Component(options),我可以访问它的实例并调用诸如 之类的方法myComponent.$set(props)

是否可以在任何组件范围之外获取某些深层嵌套组件的实例?

要么通过 id(dom 类 svelte-someid)获取它,要么在组件内部获取它(并使用它创建组件实例引用的全局注册表)。

javascript svelte

8
推荐指数
1
解决办法
3953
查看次数

Svelte - 有没有办法在#each 中使用 JS?

我正在迭代一个数据数组,我想在渲染它之前对其进行一些处理。

我知道我可以创建一个新组件并将数组条目传递给 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)

javascript svelte svelte-3

8
推荐指数
2
解决办法
4256
查看次数

TypeScript - 将布尔值作为 void 函数返回的函数

如示例中所示,如果我有一个 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)

操场

typescript

7
推荐指数
1
解决办法
1963
查看次数

类的泛型方法的 TypeScript 返回类型

我无法获取类中泛型方法的类型,尝试这样做会导致解析错误。

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 `&gt;`?(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:<这不是返回类型的问题,而是类型本身的问题 - 不过我会保留原来的问题。我提交了一个问题

typescript typescript-generics

7
推荐指数
1
解决办法
230
查看次数

TypeScript - 获取泛型类参数的类型

我需要实现一个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

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

Rust Linux 版本 glibc 未找到 - 编译不同的 glibc / libc6 版本

我在一个 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 编译程序?

linux rust docker

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