小编Sup*_*tar的帖子

制作纯CSS Dock

在使用CSS 3之后,我有了一个疯狂的想法,用它制作一个OS X风格的底座(一个带有元素的DIV容器,使用CSS:hover子类,在鼠标悬停时增加大小).但是,实现它时我遇到了一些奇怪的效果.到目前为止,这是我尝试过的:


<html>
<head>
<style>
body{
    margin:0;
}
.dockHolder{
    width:100%;
    position:absolute;
    text-align:center;
    display:block;
    bottom:0;
}
.dock{
    margin-left:auto;
    margin-right:auto;
    bottom:0;
    text-align:center;
}
.dockItem{
    height:50%;
    display:inline-block;
    position:relative;
    bottom:0;
    vertical-align:bottom;
    text-align:center;

    transition-property:width, height;
    -o-transition-property:width, height;
    -moz-transition-property:width, height;
    -webkit-transition-property:width, height;
    transition-duration:.25s;
    -o-transition-duration:.25s;
    -moz-transition-duration:.25s;
    -webkit-transition-duration:.25s;
    transition-timing-function:linear;
    -o-transition-timing-function:linear;
    -moz-transition-timing-function:linear;
    -webkit-transition-timing-function:linear;
}
.dockItem:hover{
    height:100%;
    width:auto;
}
</style>
</head>
<body>
<div class="dockHolder" style="height:64px;max-height:64px;border:1px solid black;">
    <div class="dock" style="background-color:lightgray;">
        <center>
            <div class="dockItem" style="background-color:magenta;"><img height="100%" src="pony.png" /></div>
            <div class="dockItem" style="background-color:magenta;"><img height="100%" src="bhs256.png" /></div>
        </center>
    </div>
</div>
</body>
</html> …
Run Code Online (Sandbox Code Playgroud)

html html5 dock cross-browser css3

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

为什么java.lang.Cloneable不会覆盖java.lang.Object中的clone()方法?

java.lang.Cloneable接口的Java规范将自己定义为表示扩展它的任何对象也实现了clone()休眠的方法java.lang.Object.具体来说,它说:

类实现Cloneable接口以向该java.lang.Object#clone()方法指示该方法合法地为该类的实例制作字段的字段副本.

对我来说,这意味着应该假设每个扩展的类Cloneable也都有一个public Object clone()方法.这使得很容易假设以下是有效的方法:

public static makeACloneFrom(Cloneable c)
{
  return c.clone();
}
Run Code Online (Sandbox Code Playgroud)

然而,情况并非如此,因为整个Cloneable源代码(sans javadoc)很简单

package java.lang;

public interface Cloneable {
}
Run Code Online (Sandbox Code Playgroud)

这意味着它Cloneable#clone()不存在(并且尝试编译上面的示例方法会引发编译时错误,例如" cannot find symbol: method clone()").不应该Cloneable包含某些东西的源代码的效果public Cloneable clone();

为什么我们不允许假设一个实现的类Cloneable有一个public Cloneable clone()方法?

java clone cloneable

6
推荐指数
2
解决办法
4239
查看次数

如何将样式应用于仅使用CSS检查其复选框的标签?

假设我有一个基本网页:

<LABEL ID="THE_LABEL" FOR="THE_CHECKBOX"><INPUT TYPE=checkbox ID="THE_CHECKBOX"/> Blue when checked!</LABEL>
Run Code Online (Sandbox Code Playgroud)

现在让我们说我希望标签文本在未选中时为红色,在选中时为蓝色.我该怎么做?我想要一些基本的东西,如下所示.在这里,我使用一个假设的运算符" <",这意味着"有孩子",但当然它不起作用,因为没有这样的运算符:

#THE_LABEL{
  color:red;
}
#THE_LABEL < #THE_CHECKBOX[checked]{
  color:blue;
}
Run Code Online (Sandbox Code Playgroud)

除了理论" <" 之外的所有东西都是有效的CSS,这让我想知道是否有一种实现这种行为的真正方法.有没有人知道有效的CSS 3(或更低版本)方式根据其复选框的状态设置标签样式,而不使用JavaScript?

html css checkbox styles css3

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

什么是Java原始数据类型修饰符?

好吧,我现在已经用Java编程了三年的时间,并认为自己非常有经验.但是,在查看Java SE源代码时,我碰到了一些我没想到的东西:

class Double:

public static final double MIN_NORMAL = 0x1.0p-1022; // 2.2250738585072014E-308

public static final double MIN_VALUE = 0x0.0000000000001P-1022; // 4.9e-324
Run Code Online (Sandbox Code Playgroud)

我没想到这一点,也无法找出它的含义.如果你不知道,我指的是pP是这些数字后,减法运算符之前.我知道你可以使用后缀来迫使数是一个double,long,float等等,但我从来没有遇到过pP.我检查了Java API,但没有提到它.某处是否有完整的Java原始数字文字修饰符列表?有人都知道吗?

作为参考,下面是我使用或遇到的那些,其目的是以粗体标记我的问号(#代表相应限制内的任意数字):

后缀:

  • # = 32位整数 int
  • #L = 64位整数 long
  • #l=另一个64位整数l
  • #f = 32位浮点 float
  • #F=另一个32位浮点float
  • #d = 64位浮点 double
  • #D=另一个64位浮点double
  • #e# =科学记数法 …

java primitive modifier prefix primitive-types

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

是否有"faxto"或类似的协议?

我有一个带有传真号码的客户,在将他们的地址链接到谷歌地图后,他们的电子邮件带有一个mailto:,而他们的手机带有callto:*,我觉得不对,他们的传真号码没有关联.有什么方法可以链接传真号码吗?

*我会使用tel:,因为这是一个实际标准,但callto:更受支持

html anchor uri fax hyperlink

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

说你的函数永远不应该被内联有什么好处?

我很了解 Swift 的内联。我知道四个函数内联属性之间的细微差别。我使用了@inline(__always)很多,尤其是当我只是制作这样的含糖 API 时:

public extension String {
    @inline(__always)
    var length: Int { count }
}
Run Code Online (Sandbox Code Playgroud)

我这样做是因为内联它实际上并不涉及成本,但如果不内联,就会产生额外的堆栈帧的成本。对于不太明显的糖,我会根据需要倾向于@inlinable和/或。@usableFromInline

然而,有一个区别令我烦恼。两个可能的参数@inlinenever__always。尽管缺乏实际的文档,但这里的这种拼写选择充当了一种自我文档的作用,这意味着如果您要使用其中一个,您应该倾向于never, 并且__always不鼓励这样做。

但为什么这是 Swift 语言设计者鼓励的方向呢?据我所知,如果根本没有应用任何属性,那么这就是行为:

  • 如果一个函数(等)在声明它的模块中使用,编译器可能会选择内联或不内联它,这取决于哪个会产生更好的代码(通过某种措施)
  • 如果该函数(等)在模块外部使用,则其实现不会以允许内联的方式公开,因此它永远不会被内联。

所以,似乎大多数时候,非内联是默认的。这很好,很花花公子,表面上我对此没有任何问题;不要使可执行文件超出您的需要。

但话说回来,我从来没有理由认为@inline(never)它有用。据我了解,我使用的唯一原因@inline(never)是如果我注意到 Swift 编译器选择内联过多的非注释函数,并且它使我的可执行文件膨胀。这似乎是一个超级小众的现象:

  1. 我的软件运行良好
  2. Swift 编译器用于决定是否内联某些内容的算法没有为我的代码做出正确的选择
  3. 我非常关心二进制文件的大小,以至于我仔细检查它以发现函数自动内联太多
  4. 问题仅出在我编写到自己的模块中的代码中;不是我从其他模块使用的代码

或者,正如Rob在评论中 所说,如果您正在经历一些反汇编,那么自动内联会使其难以阅读。

我无法想象这些是 Swift 语言设计者在设计这个属性时所考虑的用例。特别是由于 Swift 不适用于嵌入式系统,因此二进制大小(以及一般的(反)汇编)并不是真正值得关注的问题。无论如何,我从未见过过大的 Swift 二进制文件(>50MB)。

那么为什么never鼓励多呢__always我经常遇到为什么应该强制内联函数的原因,但我还没有看到强制函数堆叠的原因,至少在我自己的工作中是这样。

inline swift

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

HTML 锚点到日历?

有没有办法创建一个通用链接来创建日历事件作为 HTML 锚点的 URI?例如,您可以创建一个使用 来创建电子邮件的链接<a href="mailto:address@example.com?Subject=Subject%20line&body=Body%20content.">Link text</a>,也可以使用 来创建一个发起电话呼叫的链接<a href="callto:5551234567">Link text</a>是否有这样的日历语法不是特定于程序的?(我知道有些东西像outlook://iCal 可以使用.ics文件,但我想要一个与程序无关的东西)

我正在寻找类似的东西<a href="cal:Event%20title?start=timestamp&end=timestamp&description=Arbitrary%20description%20text>Link text</a>

html anchor uri

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

为什么 Google 不压缩他们的网络字体 CSS?

我正在研究谷歌的网络字体是如何工作的,发现当一个人放置类似的东西时

@include url('https://fonts.googleapis.com/css?family=Archivo+Narrow:400,400italic,700,700italic');
Run Code Online (Sandbox Code Playgroud)

在样式表中,CSS 解释器会获取给定 URL 中的内容:

/* latin-ext */
@font-face {
  font-family: 'Archivo Narrow';
  font-style: normal;
  font-weight: 400;
  src: local('Archivo Narrow Regular'), local('ArchivoNarrow-Regular'), url(https://fonts.gstatic.com/s/archivonarrow/v5/DsLzC9scoPnrGiwYYMQXpj3sPXe5Q4a3bCZMR7ryN4o.woff2) format('woff2');
  unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Archivo Narrow';
  font-style: normal;
  font-weight: 400;
  src: local('Archivo Narrow Regular'), local('ArchivoNarrow-Regular'), url(https://fonts.gstatic.com/s/archivonarrow/v5/DsLzC9scoPnrGiwYYMQXpkU-p1xzoRgkupcXIqgYFBc.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
}
/* latin-ext */
@font-face {
  font-family: 'Archivo Narrow';
  font-style: normal;
  font-weight: …
Run Code Online (Sandbox Code Playgroud)

css compression google-webfonts

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

为什么 Swift 不允许在类 init 中给 self 赋值,但在协议 init 中却不允许?

我经常发现自己喜欢在structs、enums 和protocols 的初始化器中如何编写类似self = someValue. 当我有一些预定义值或克隆现有值时,这非常有用。

然而,这个语法对 es 不起作用class。我也实在想不通为什么。

无法赋值:“self”是不可变的

如果关注的是双重初始化,Swift 编译器知道我是否、何时以及在何处调用指定superself初始化器,因此它知道我是否已完成初始化该实例。如果担心的是我还没有调用指定的初始化程序,那么应该没问题,因为我只是让这个实例成为对另一个实例的引用(2 vars 1 指针)。如果担心的是并发访问可能导致self已经被初始化...那么这是无意义的,因为我们在初始化器中,而Swift 初始化器不易受此影响

毕竟我发现我可以通过一次性协议来解决这个问题:

class MyClass {
    let content: String
    
    init(content: String) {
        self.content = content
    }

    convenience init(from1 other: MyClass) {
        self = other // Cannot assign to value: 'self' is immutable
    }
}



protocol MyProto {}

extension MyClass: MyProto {}



extension MyProto {
    
    init(from2 other: Self) { …
Run Code Online (Sandbox Code Playgroud)

initialization initializer pass-by-reference pass-by-value swift

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

“Package.resolved 文件很可能已严重过期,无法正确解析”

尝试构建时出现以下错误。它也显示为构建日志中的唯一项目。

包加载:Package.resolved 文件很可能已严重过期,无法正确解析; 删除已解析的文件并重试

以下是我正在使用的软件包:

项目设置中列出了 5 个 Swift 包:SimpleLogging、OptionalTools、FunctionTools、SpecialString 和 Swift-TODO。 前 3 个是 git 文件的 URL(它们以 .git 结尾),最后 2 个是存储库本身的 URL(它们以斜杠结尾)。与上面相同的 5 个包,但列在侧栏中,证明它们已成功解析。

xcode swift-package-manager

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