我是Facebook Open Graph Protocol的新手.我一直试图弄清楚HTML prefix属性的含义是什么.Stack Overflow上最接近的帖子我可以找到处理这个主题的是这篇文章非常有用,因为它处理了各种可能的语法之间的区别以及使用哪种语法.
然而,该帖子没有说明这个prefix属性是什么或它做什么.AFAIK这不是标准的HTML属性.我能够找到这个文件,我认为W3C定义了这个属性,但却无法理解它.
有人可以向我解释一下:
该prefix属性有什么作用?
我能写吗?
<html prefix="og:http://ogp.me/ns#">
代替
<html prefix="og: http://ogp.me/ns#">
或者这会是语法错误?
我可以prefix为任何给定的HTML标记包含多个属性吗?
<head prefix="a: http://www.aaa.com/ns#" prefix="b: http://www.bbb.com/ns#">
根据我对HTML的了解,这可能是错误的,但这prefix是一个非标准属性.或许,我想知道的是,我可以写:
<head prefix="a: http://www.aaa.com/ns# b: http://www.bbb.com/ns#">
或者在HTML树中的任何地方指定多个前缀由于某种原因没有意义?
如果此prefix标记不是HTML规范的一部分,那么如何将包含此属性的页面提交给代码验证器会导致我的代码符合标准?
感谢您回答我的问题.
html validation facebook open-graph-protocol facebook-opengraph
"Magento PHP Developer's Guide"的第2章指出:
Zend Framework 2使用100%面向对象的代码并利用PHP 5.3的大多数新功能,即命名空间,后期静态绑定,lambda函数和闭包.
虽然帖子'封闭'和'lambda'之间有什么区别?有一些答案(例如,一个lambda只是一个匿名函数,并且一个闭包是一个可以访问不在其参数列表中的变量的函数),似乎特定于Python编程语言(有一些提到Scheme编程语言).例如,根据帖子,在Python中,似乎可以有不是lambdas的闭包,而不是闭包的lambdas.
但是,我对PHP编程语言感兴趣,而不是Python.下面的答案之一似乎指出,在PHP中,所有闭包都是lambdas,这与与Python相关的帖子相冲突.
在我看来,这些概念在语言和语言的细节上有所不同,我对PHP感兴趣,因此这篇文章.
所有这一切都令人困惑.虽然我认为lambda函数通常只是未命名的函数,但下面的维基百科文章更多地讨论了闭包:
http://en.wikipedia.org/wiki/Closure_%28computer_science%29
虽然在PHP中没有例子.
当然,像Git,(Mercurial,SVN等)这样的源代码控制工具可以很好地管理源代码.但我想知道,这些工具在用于存储PhotoShop PSD和Illustrator AI文件等文件副本时是否为开发人员提供了任何优势?将这些工具与这些文件一起使用是否有意义?我是否会在存储库中存储的数量少于所有这些文件的文件大小总和?即使这些文件的文件格式只是机器可读的,我希望对于这样的应用程序,特别是在处理矢量而不是光栅图形时,这些文件中的一小部分会改变,其余大部分将保持不变.
感谢您的见解.
我的问题与此有关.除了我的问题更为明确,因为它是否可以在查询字符串参数值中使用连字符.
我正在$_SERVER['QUERY_STRING']用PHP 解析.我想知道在查询字符串值中使用连字符是否在语法上是正确的,例如在下面的情况中,或者是否必须在浏览器URL中对连字符进行转义.下划线怎么样?
http://example.com/?q1=query-string-value-one&q2=query-string-value-two
Run Code Online (Sandbox Code Playgroud)
根据这个文件,连字符应该在所有符合标准的浏览器中都可以,但我想仔细检查.
谢谢.
关于折叠边距的CSS 2.1规范的第8.3.1节说明:
如果具有间隙的元素的顶部和底部边距相邻,则其边缘会随着后续兄弟的邻接边缘而折叠,但是所产生的边距不会随着父块的下边缘而崩溃.
这是我的,肯定不稳定的尝试,从这个陈述中做出一些事情:
该语句考虑了一个元素X,其中:
X有间隙,因此"clear:left;","clear:right"中的任何一个.或者"明确:两者;" 属性已应用于它.
由于X的顶部和底部边距是相邻的,在正常流动的情况下,我们正在考虑以下情况:
然后规范说,"它的边缘随着兄弟姐妹的邻接边缘而崩溃",但如上所述,最多只有一个兄弟姐妹,所以这基本上必须意味着如果有一个兄弟姐妹,那么边缘就会崩溃.
"但是由此产生的边际不会随着父块的底部边缘而崩溃." - 我不明白这一点:如果底部边缘与兄弟的上边距相邻,那么除非兄弟的高度为零,否则它不能与父块的下边距相邻.
我完全糊涂了.有人可以用更好的方式解释这个陈述,或许只是举几个例子吗?谢谢.
我刚刚解压缩了一些代码,我想立即将一大堆文件添加到存储库并提交。不幸的是 git add 没有标志--quiet,并且从 tarball 打印每个文件的所有 I/O 都会减慢速度。我怎样才能加快这个操作(通过沉默输出git add?)。
我想做的是:
git add . --quiet
Run Code Online (Sandbox Code Playgroud)
由于此标志不存在,我尝试重定向标准错误:
git add . 2&> /dev/null
Run Code Online (Sandbox Code Playgroud)
不幸的是,当我这样做时,git 奇怪地返回而没有添加任何文件。
我该如何解决这个问题?
谢谢。
这个PHP问题与这个问题有关,但有点不同.我有一个静态工厂方法create(),它实例化一个类实例.我希望该方法动态实例化调用它的(子)类的实例.因此,它必须在运行时确定它实例化的类.但是我想这样做而不必重新定义子类中的静态工厂方法(这在我的例子中完全有效,因为子类没有新的数据成员来初始化).这是可能吗?
class Foo {
private $name;
public static function create($name) {
//HERE INSTED OF:
return new Foo($name);
//I WANT SOMETHING LIKE:
//return new get_class($this)($name);//doesn't work
//return self($this);//doesn't work either
}
private function __construct($name) {
$this->name = $name;
}
public function getName() {
return $this->name;
}
}
// the following class has no private data, just extra methods:
class SubFoo extends Foo {
public function getHelloName() {
echo "Hello, ", $this->getName(), ".\n";
}
}
$foo = Foo::create("Joe"); …Run Code Online (Sandbox Code Playgroud) 我一直在研究html根元素和body子元素在HTML文档中交互的方式.CSS 2.1规范中的以下摘录表明,在框模型中,边距是透明的,我们都知道.
http://www.w3.org/TR/CSS21/box.html#mpb-examples
LI框的边距是透明的 - 边距总是透明的 - 因此UL填充和内容区域的背景颜色(黄色)透过它们.
然而,让我好奇的是,如果边距是透明的,那么如果我给根元素,即html元素,一个边距,这个边距应该通过默认浏览器用户代理画布颜色显示.但是,情况并非如下面的代码段所示.顶级html元素的边距似乎使用与其background属性中指定的颜色相同的颜色.这是代码:
<!doctype html>
<html style="margin: 40px; border: 1px solid black; background: green;">
<head>
<meta charset="utf-8">
<title>Test</title>
<style type="text/css">
* { margin: 0; border: 0; padding: 0; }
</style>
</head>
<body style="margin: 40px; width: 400px; height: 300px; background: pink;">
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
在这里,我们可以看到与html根元素相关的绿色边缘,包含与html根元素相关的黑色边框,包含与body元素相关的绿色边框,包含与body元素相关的粉红色内容.

是否在CSS 2.1规范中的任何位置指定了此行为?如果是这样,那么在哪里?我似乎无法在任何地方找到它.
谢谢.
编辑:
正如BoltClock在下面指出的那样,CSS 2.1规范的第14.2节中提到了这种行为(并且继续使用CSS3规范的背景和边框模块).也就是说,与其他CSS元素不同,html元素的背景也覆盖了边距区域.
但是,正如BoltClock在下面指出的那样,该部分还指出在body元素而不是html元素上设置背景颜色更合适.以下是CSS 2.1规范的相关摘录:
但是,对于HTML文档,我们建议作者指定BODY元素的背景而不是HTML元素.对于其根元素为HTML"HTML"元素或XHTML"html"元素的文档,其中"background-color"的计算值为"transparent",而"background-image"的计算值为"none",则用户代理必须使用在为画布绘制背景时,从该元素的第一个HTML"BODY"元素或XHTML"body"元素子元素计算背景属性的值,并且不得为该子元素绘制背景.如果仅为根元素绘制它们,那么这些背景也必须固定在同一点上.
因此,让我们试着看看如果在我们的原始HTML中我们从html元素的style属性中注释掉背景CSS属性会发生什么,如下所示:
<!doctype html>
<html style="margin: 40px; border: 1px solid black; /* background: green; */">
<head>
<meta charset="utf-8">
<title>Test</title>
<style type="text/css">
* { …Run Code Online (Sandbox Code Playgroud) 我在我的网络浏览器中得到以下结果:
复选标记相对于文本略微凸起,但我希望文本全部对齐。我该怎么办?
我有以下 HTML:
<ul class="train">
<li>
<p><?php echo $pageContents->getContents("comptrainLI1"); ?></p>
<ul class="traininner">
<li>HTML</li>
<li>CSS</li>
<li>JavaScript</li>
<li>jQuery</li>
<li>PHP</li>
<li>SQL</li>
<li>WordPress CMS</li>
<li>Magento CMS</li>
</ul>
</li>
<li>
<p><?php echo $pageContents->getContents("comptrainLI2"); ?></p>
<ul class="traininner">
<li>C</li>
<li>C++</li>
<li>C#</li>
<li>Java</li>
</ul>
</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
和 CSS:
div#mainContent ul.train {
list-style-position: inside;
list-style-image: url("../images/checkmark-round-whiteOnGreen.jpg");
font-size: 18pt;
}
div#mainContent ul.train ul.traininner {
padding-left: 20px;
list-style-image: url("../images/checkmark-round-whiteOnGreen.jpg");
}
Run Code Online (Sandbox Code Playgroud) CSS规则text-transform的效果是什么:如果HTML标记中包含的文本为意大利语,西班牙语,葡萄牙语,法语等,则大写(这些语言AFAIK不使用大写)每个单词的第一个字母,因为它专用于英语,而不是特定于这些语言环境。我想到的是您有一个多语言站点,可以在其中选择要从数据库中提取内容的语言,并从右上角的下拉菜单中将其显示在页面上。在这种情况下,由于CSS可能与语言相同且无关紧要,因此,例如,当开始标记为
<html lang =“ fr”>,<html lang =“ pt”>,<html lang =“ es”>,<html lang =“ it”>等。
代替
<html lang =“ zh-CN”>
?
恕我直言,这应该关闭“文本转换:大写”的行为,如果我错了,请纠正我,或者如果应该以其他方式实现,也许只能通过用每个CSS覆盖另一个CSS文件来覆盖基本CSS文件支持的语言。
感谢您对有关CSS的I18N问题的答复。