在我的页面上,我有几个块(div)具有相同的样式background(border菜单面板,信息面板,页脚面板,...)。
现在我只想编写该样式一次,而不是为每个面板重复它。但我没有看到任何合适的方法来做到这一点。
\n\n我研究的一种方法是引入一个专门的类(例如panelClass)来捕获常见的面板样式。然后在 (X)HTML 中,我只需将该类添加到每个应该是面板的元素中。
但这感觉不对。毕竟我会在 (X)HTML 中“揭示实现”。我不再能够轻松地透明地更改内容,因为这需要修改 (X)HTML。
\n\n更不用说它引入了类顺序的问题(以及如果需要的话 CSS 属性将被覆盖的顺序)。
\n\n编辑:(对 kolin 答案的扩展解释)
\n\n通过 \xe2\x80\x9crevealing 实现\xe2\x80\x9d 我的意思是 (X)HTML (\xe2\x80\x9cthe content\xe2\x80\x9d) 与 CSS (\xe2\x80 \x9c演示文稿\xe2\x80\x9d)比我希望的那样。也许我\xe2\x80\x99m追求一个遥不可及的理想(甚至可能是一个不真实的或虚拟的理想!),但我\xe2\x80\x99m试图将\xe2\x80\x9c内容\xe2\x80\x9d与\分开xe2\x80\x9c演示文稿\xe2\x80\x9d。
\n\n因此,拥有一个类menu并不坏,因为它描述的是 \xe2\x80\x9ccontents\xe2\x80\x9d 而不是 \xe2\x80\x9cpresentation\xe2\x80\x9d。而使用类似的类(我从引用的文章和该网站上的其他一些文章中了解到的)menu box bordered left_column是不好的,因为它将演示与内容混合在一起。一旦开始添加此类类,您很可能会将该 CSS 直接添加到style属性中。这肯定会需要更多的工作和无法维护的结果,但从概念上讲(当涉及内容-呈现分离时)它不会\xe2\x80\x99 产生影响。
现在我确实意识到,在现实生活中,对于真实的页面(丰富且漂亮),几乎不可能将内容与演示完全分开。但你仍然可以(应该?)至少尝试一下。
\n\n另外看看文章末尾的 \xe2\x80\x9cBut\xe2\x80\x9d应用于 CSS 的单一责任原则。在我看来,island他使用的课程已经是演示性的,因为它没有描述内容。它描述了如何显示它。一旦你看到他在内容上没有共同点的元素上使用(或可能已经使用)该类的范围有多广,这一点立即显而易见。
结束编辑
\n\n另一种方法是使用选择器分组。所以我会有类似的东西:
\n\n#menu, #info, #footer {\n …Run Code Online (Sandbox Code Playgroud) Java Makefile Parser库是否有任何替代方案?
我可能需要一个 Java 库来解析 make 文件,以便提取一些信息,甚至在给定环境中模拟执行。快速查找表明只有 Java Makefile Parser。但也许我没有找对地方。那么还有其他图书馆吗?
请注意,我并不是说 Java Makefile Parser 有任何问题。我什至还没有尝试过。我只想知道我的选择。
CMake文档(例如当前版本3.11.2)状态
使用简单的标记语言显示CMake警告和错误消息文本。非缩进文本以换行符分隔的换行段落的格式设置。缩进的文本被认为是预格式化的。
但是,它没有提及任何标记格式。除非是“非缩进”还是“缩进”,否则都将涉及“简单标记”。
无论如何,我无法使其与FATAL_ERROR模式一起使用。
此外,我注意到with STATUSmode消息打印有前导--(两个破折号和空格)。而与FATAL_ERROR在该消息中的每个换行变成两条线,其中(IMHO)看上去可怕。
现在,我有一条多行消息,其中列出了错误所在CMAKE_BUILD_TYPE和可接受的值。由于上述问题,我最终将消息打印为,STATUS并在随后的行中缩进了三个空格(因此它们与对齐--)。然后,我FATAL_ERROR仅重复一个简单的“标题行”(说明CMAKE_BUILD_TYPE错误)。控制台输出和都可以接受cmake-gui。(尽管在cmake-gui... 上不需要3个空格缩进)
但是,我很惊讶地描述了这个主题。似乎已经很久了-例如,请参阅问题[CMake]带有SEND_ERROR和FATAL_ERROR的多余空白行吗?至今仍未解决将近9年...
是否有处理此类消息的良好实践,建议或技巧?还是应该首先避免使用它们?
让我们考虑一个简单的类
template< typename T >
class Wrapper {
public:
// Constructors?
private:
T wrapped;
};
Run Code Online (Sandbox Code Playgroud)
应该使用什么构造函数才能有效?
在C++ 0x之前,会有一个构造函数采用以下任一方法:
T const&) - 如果type T为"heavy",T) - 如果type T为"light".确定类型T是"重"还是"轻"并不容易.
可以假设只有内置类型(ints/floats/...)是"轻"的.但这并不完全正确,因为我们自己Wrapper<int>最有可能也应被视为"轻型"类型.
boost::call_traits通过允许类型创建者将类型标记为"轻"(通过提供适当的call_traits专业化),库提供了一些克服此困难的方法.否则它将被视为"沉重".似乎可以接受.
但是C++ 0x使它变得更糟.因为现在你还有rvalue reference(T&&),它允许有效地获取(某些)"重"对象.
因此,你必须选择:
T const&) - 如果类型T是"重"并且不支持移动语义(因为没有任何一个 - 就像大POD一样 - 或者没有写入并且你对它没有影响),T const&)和rvalue reference(T&&) - 如果type T为"heavy"并且支持移动语义,T) - 如果type …对于给定的无上下文语法,是否可以获得"反向语法"?
"反向语法"是指一种语法,它接受由原始语法语言中的反转词组成的语言.
例如,遵循语法
root = r1 [r2] *r3
r1 = "a"
r2 = "b"
r3 = "cd"
Run Code Online (Sandbox Code Playgroud)
反转时看起来像这样:
root = *r3 [r2] r1
r1 = "a"
r2 = "b"
r3 = "dc"
Run Code Online (Sandbox Code Playgroud)
我问这个的原因是我想向后解析字符串(从结束到开始).为此,我需要"反向语法".
那么有一种系统的方法来获得"反向语法"吗?
将恢复每一条规则的工作吗?对我来说似乎如此.但我预计,在我找不到任何东西时会在某处说出这样的"引理".所以也许它只在简单的例子中出现过?
有没有办法手动将修订/提交与Redmine问题关联?
通常我们通过使用适当格式的提交消息来做到这一点(在我们的例子中,"Resolves#...").但我忘记了它并使用了不同的信息.
我现在无权更改提交消息.即使我仍然无法删除Redmine的数据,以便再次重建它.(问题给出的方法Redmine和SVN:如何在提交发生后将修订链接到问题?).
我用"r ..."评论更新了这个问题,该评论与修订版本正确相关.但这只是一个链接.它没有生成"关联修订"作为正确的提交消息.
有没有办法手动强制Redmine看到这样的关联?
根据谷歌向新闻组显示的内容comp.lang.c++.moderated,最后一篇文章现在已经快一年了(从 2016 年 5 月 23 日开始)。
大约一周前我自己写了一篇文章,到目前为止还没有发表。
同时新闻组comp.lang.c++仍然活跃(从今天开始的帖子)。
在comp.lang.c++.moderated正式现已关闭?有没有替代品(除了comp.lang.c++)?