在使用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) 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()方法?
假设我有一个基本网页:
<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?
好吧,我现在已经用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)
我没想到这一点,也无法找出它的含义.如果你不知道,我指的是p和P是这些数字后,减法运算符之前.我知道你可以使用后缀来迫使数是一个double,long,float等等,但我从来没有遇到过p或P.我检查了Java API,但没有提到它.某处是否有完整的Java原始数字文字修饰符列表?有人都知道吗?
作为参考,下面是我使用或遇到的那些,其目的是以粗体标记我的问号(#代表相应限制内的任意数字):
后缀:
# = 32位整数 int#L = 64位整数 long#l=另一个64位整数l?#f = 32位浮点 float#F=另一个32位浮点float?#d = 64位浮点 double#D=另一个64位浮点double?#e# =科学记数法 …我有一个带有传真号码的客户,在将他们的地址链接到谷歌地图后,他们的电子邮件带有一个mailto:,而他们的手机带有callto:*,我觉得不对,他们的传真号码没有关联.有什么方法可以链接传真号码吗?
*我会使用tel:,因为这是一个实际标准,但callto:更受支持
我很了解 Swift 的内联。我知道四个函数内联属性之间的细微差别。我使用了@inline(__always)很多,尤其是当我只是制作这样的含糖 API 时:
public extension String {
@inline(__always)
var length: Int { count }
}
Run Code Online (Sandbox Code Playgroud)
我这样做是因为内联它实际上并不涉及成本,但如果不内联,就会产生额外的堆栈帧的成本。对于不太明显的糖,我会根据需要倾向于@inlinable和/或。@usableFromInline
然而,有一个区别令我烦恼。两个可能的参数@inline是never和__always。尽管缺乏实际的文档,但这里的这种拼写选择充当了一种自我文档的作用,这意味着如果您要使用其中一个,您应该倾向于never, 并且__always不鼓励这样做。
但为什么这是 Swift 语言设计者鼓励的方向呢?据我所知,如果根本没有应用任何属性,那么这就是行为:
所以,似乎大多数时候,非内联是默认的。这很好,很花花公子,表面上我对此没有任何问题;不要使可执行文件超出您的需要。
但话说回来,我从来没有理由认为@inline(never)它有用。据我了解,我使用的唯一原因@inline(never)是如果我注意到 Swift 编译器选择内联过多的非注释函数,并且它使我的可执行文件膨胀。这似乎是一个超级小众的现象:
或者,正如Rob在评论中 所说,如果您正在经历一些反汇编,那么自动内联会使其难以阅读。
我无法想象这些是 Swift 语言设计者在设计这个属性时所考虑的用例。特别是由于 Swift 不适用于嵌入式系统,因此二进制大小(以及一般的(反)汇编)并不是真正值得关注的问题。无论如何,我从未见过过大的 Swift 二进制文件(>50MB)。
那么为什么never鼓励多呢__always?我经常遇到为什么应该强制内联函数的原因,但我还没有看到强制函数堆叠的原因,至少在我自己的工作中是这样。
有没有办法创建一个通用链接来创建日历事件作为 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>
我正在研究谷歌的网络字体是如何工作的,发现当一个人放置类似的东西时
@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) 我经常发现自己喜欢在structs、enums 和protocols 的初始化器中如何编写类似self = someValue. 当我有一些预定义值或克隆现有值时,这非常有用。
然而,这个语法对 es 不起作用class。我也实在想不通为什么。
无法赋值:“self”是不可变的
如果关注的是双重初始化,Swift 编译器知道我是否、何时以及在何处调用指定super或self初始化器,因此它知道我是否已完成初始化该实例。如果担心的是我还没有调用指定的初始化程序,那么应该没问题,因为我只是让这个实例成为对另一个实例的引用(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
尝试构建时出现以下错误。它也显示为构建日志中的唯一项目。
以下是我正在使用的软件包:

