小编spr*_*aff的帖子

CSS背景图像适合宽度,高度应按比例自动缩放

我有

body {
    background: url(images/background.svg);
}
Run Code Online (Sandbox Code Playgroud)

期望的效果是该背景图像的宽度等于页面的宽度,高度变化以保持比例.例如,如果原始图像恰好是100*200(任何单位)且正文宽度为600px,则背景图像最终应为1200px高.如果调整窗口大小,高度应自动更改.这可能吗?

目前,Firefox看起来正在调整高度,然后调整宽度.这可能是因为高度是最长的尺寸而且它试图避免裁剪?我垂直裁剪,然后滚动:没有水平重复.

此外,Chrome将图像置于中心,不重复,即使background-repeat:repeat明确给出,这仍然是默认值.

html css

333
推荐指数
7
解决办法
77万
查看次数

UIPageViewController手势识别器

我已经在申请了一段时间,但由于NDA,我无法提出这个问题.

我的Viewcontroller加载了UIPageViewController.视图控制器具有由PageViewControllers手势识别器覆盖的按钮.例如,我在viewcontroller的右侧有一个按钮,当你按下按钮时,PageViewController接管并更改页面.

如何让按钮接收触摸并取消PageViewController中的手势识别器?

我认为PageViewController使我的ViewController成为其视图的子视图.

我知道我可以关闭所有的手势,但这不是我正在寻找的效果.

宁愿不子类PageViewController苹果表示,这个类是不是要被继承.

uigesturerecognizer ios

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

宽度和高度似乎不起作用:在伪元素之前

是一个小提琴.

<p>foo <a class="infolink" href="#">bar</a> baz</p>
Run Code Online (Sandbox Code Playgroud)

a.infolink::before
{
    content: '?';
    background: blue;
    color: white;
    width: 20ex;
    height: 20ex;
}
Run Code Online (Sandbox Code Playgroud)

'?' 出现,但显然没有20ex大小.为什么不?在Firefox和Chrome中测试过.

css pseudo-element

54
推荐指数
3
解决办法
5万
查看次数

使用括号扩展范围中的变量馈送到for循环

这是myscript.sh

#!/bin/bash
for i in {1..$1};
do
    echo $1 $i;
done
Run Code Online (Sandbox Code Playgroud)

如果我运行myscript.sh 3输出是

3 {1..3}
Run Code Online (Sandbox Code Playgroud)

代替

3 1
3 2
3 3
Run Code Online (Sandbox Code Playgroud)

显然$3包含正确的值,为什么不像for i in {1..$1}for i in {1..3}直接写的一样?

bash for-loop brace-expansion

46
推荐指数
3
解决办法
5万
查看次数

为什么C++ 11的POD"标准布局"定义是这样的?

我正在研究C++ 11中新的,轻松的POD定义(第9.7节)

标准布局类是一个类:

  • 没有非标准布局类(或此类类型的数组)或引用类型的非静态数据成员,
  • 没有虚函数(10.3),也没有虚基类(10.1),
  • 对所有非静态数据成员具有相同的访问控制(第11条),
  • 没有非标准布局基类,
  • 或者在最派生类中没有非静态数据成员,并且最多只有一个具有非静态数据成员的基类,或者没有具有非静态数据成员的基类,并且
  • 没有与第一个非静态数据成员相同类型的基类.

我突出了让我感到惊讶的一些事情.

如果我们容忍具有不同访问控制的数据成员会出什么问题?

如果第一个数据成员也是基类会出什么问题?即

struct Foo {};
struct Good : Foo {int x; Foo y;};
struct Bad  : Foo {Foo y; int x;};
Run Code Online (Sandbox Code Playgroud)

我承认这是一个奇怪的结构,但为什么要Bad被禁止但不是Good

最后,如果不止一个组成类有数据成员,会出现什么问题?

c++ pod standard-layout c++11

41
推荐指数
3
解决办法
6446
查看次数

未命名结构的前向声明

赏金问题:所以,这两个Foo不是一回事.精细.第二种形式在图书馆中给出.鉴于我无法改变它,我该如何转发声明呢?


我一直以为C和C++允许重复声明,前提是没有重复的定义.然后我在尝试编写扩展C库的C++代码时遇到了这个问题.

struct Foo;
typedef struct {} Foo;
Run Code Online (Sandbox Code Playgroud)

这会出现以下错误:

'struct Foo'之前的声明为'struct Foo'

我想转发声明,嘲笑它!这有什么不对?

c c++ struct typedef forward-declaration

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

智能指针如何在删除和删除[]之间进行选择?

考虑:

delete new std :: string [2];
delete [] new std :: string;
Run Code Online (Sandbox Code Playgroud)

每个人都知道第一个是错误.如果第二个不是错误,我们就不需要两个不同的运算符.

现在考虑:

std :: unique_ptr <int> x (new int [2]);
std :: unique_ptr <int> y (new int);
Run Code Online (Sandbox Code Playgroud)

是否x知道使用delete[]而不是 delete


背景:当我认为指针的数组类型限定将是一个方便的语言功能时,这个问题浮现在我脑海中.

int *[] foo = new int [2]; // OK
int *   bar = new int;     // OK
delete [] foo;             // OK
delete bar;                // OK
foo = new int;             // Compile error
bar = new int[2];          // Compile error
delete foo; …
Run Code Online (Sandbox Code Playgroud)

c++ smart-pointers shared-ptr delete-operator c++11

33
推荐指数
2
解决办法
4745
查看次数

为什么我可以使用operator =但不使用operator == C++ 11 brace-initializers?

看这个例子:

struct Foo
{
    int a;
    int b;

    bool operator == (const Foo & x)
    {
        return a == x.a && b == x.b;
    }
};

int main ()
{
    Foo a;

    a = {1, 2};

    if (a == {1, 2}) // error: expected primary-expression before ‘{’ token
    {
    }
}
Run Code Online (Sandbox Code Playgroud)

这条线a={1,2}很好.大括号转换为a Foo以匹配隐式operator=方法的参数类型.如果operator=是用户定义的,它仍然有效.

if (a=={1,2}})指示的行错误.

为什么表达式{1,2}不能转换Foo为与用户定义的operator==方法匹配?

c++ c++11

32
推荐指数
2
解决办法
949
查看次数

OpenSSL作为CA而不涉及certs/crl/index/etc环境

我认为我有正确的OpenSSL命令来签署证书,但我已经卡住了,我发现的教程使用了不同的参数格式(我使用的是OpenSSL 0.9.8o 2010年6月1日).

openssl ca -cert cert.pem -keyfile key.pem

(私钥未加密,CSR在stdin上.)

它给出了这个错误

Using configuration from /usr/lib/ssl/openssl.cnf
./demoCA/index.txt: No such file or directory
unable to open './demoCA/index.txt'
Run Code Online (Sandbox Code Playgroud)

查看该配置文件:

[ ca ]
default_ca = CA_default    # The default ca section

[ CA_default ]
dir      = ./demoCA        # Where everything is kept
certs    = $dir/certs      # Where the issued certs are kepp
crl_dir  = $dir/crl        # Where the issued crl are kept
database = $dir/index.txt  # database index file.
Run Code Online (Sandbox Code Playgroud)

我没有这个设置.我不想设置任何这个.

它是严格的nessecary,还是有"不打扰"选项?

我尝试创建空目录和文件,但我陷入困境.我真正想要的是上面的命令工作,输出在stdout上,而不触及文件系统上的任何东西 …

openssl x509

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

CPU架构演变如何影响虚拟函数调用性能?

几年前,我正在学习x86汇编程序,CPU流水线,缓存未命中,分支预测以及所有爵士乐.

这是两个半的故事.我在处理器viz指令重新排序,缓存预加载,依赖性交错等方面阅读了冗长流水线的所有优点.

缺点是规范的任何偏差都是非常昂贵的.例如,IIRC在早期千兆赫时代的某个AMD处理器每次通过指针(!)调用函数时都会有40个周期的惩罚,这显然是正常的.

这不是一个可以忽略不计的"别担心"号码!请记住,"良好设计"通常意味着"尽可能地考虑您的功能"和"在数据类型中编码语义",这通常意味着虚拟接口.

权衡是不执行此类操作的代码每个周期可能获得两个以上的指令.这些是在编写高性能C++代码时需要担心的数字,这些代码在对象设计上很重要并且可以解决数字运算问题.

据我所知,随着我们进入低功耗时代,长CPU流水线趋势已经逆转.这是我的问题:

最新一代x86兼容处理器是否仍然遭受虚拟功能调用,坏分支预测等的严重处罚?

cpu instruction-set cpu-architecture cpu-speed

30
推荐指数
1
解决办法
3917
查看次数