Effective C++ 44:将参数无关代码重构到模板外去

Effective-C++ C++ 内存 多态 模板

把模板中参数无关的代码重构到模板外便可以有效地控制模板产生的代码膨胀。另外代码膨胀也可以由类型模板参数产生:对于非类型模板参数产生的代码膨胀,用函数参数或数据成员来代替模板参数即可消除冗余;对于类型模板参数产生的代码膨胀,可以让不同实例化的模板类共用同样的二进制表示。

CSS 选择符总结

CSS DOM HTML 伪类 选择符

我们知道CSS是由选择符和属性/值列表构成的,选择符的重要性自然不言而喻。 作为前端开发者选择符想必不是问题,然而前几天面试还真问到了~+是干吗用的! 长时间不用的选择符自然就会忘了,来总结一下吧!

万维网联盟在 HTML 4.0 之外提出层叠样式表(CSS),使用CSS完成样式与内容的分离。层叠样式表(Cascading Style Sheets,CSS), 又称串样式列表、层次结构式样式表文件,一种用来为结构化文档(如HTML文档或XML应用)添加样式(字体、间距和颜色等)的计算机语言,由W3C定义和维护。

CSS共有5种基本选择器:

  1. 类型选择器(h1,p等):用于选择指定类型的HTML标签;
  2. 类选择器(.classname):用于选择指定class的HTML标签;
  3. ID选择器(#idname):用于选择指定id的HTML标签;
  4. 通配符选择器(*):用于选择所有类型的HTML标签;
  5. 属性选择器([foo='bar']):用于选择某属性为指定值的HTML标签;

和2种伪选择器:

  1. 伪类选择器:用于选择特定状态的元素。
  2. 伪元素选择器:如:before,:first-letter,用于向某些选择器设置特殊效果,以实现复杂的样式。

还有各种组合选择符(例如 , +, >, ~),用来选择拥有特定层级的元素。至于CSS选择器发生冲突时它们的优先级,参见另一篇文章: CSS规则的优先级匹配

上一页 下一页