简述css的vertical-align属性

直译,就是垂直居中。

通常,应用于行内元素,图片、文字、图标等。vertical-align属性,我的理解就是相对于某个元素对比而言的。

w3c有一段相关信息如下:

Value:   baseline | sub | super | top | text-top | middle | bottom | text-bottom | <percentage> | <length> | inherit
Initial:   baseline
Applies to:   inline-level and ‘table-cell’ elements
Inherited:   no
Percentages:   refer to the ‘line-height’ of the element itself
Media:   visual
Computed value:   for <percentage> and <length> the absolute length, otherwise as specified

可应用范围可以理解为,在行内和表格内的元素。
图片,按钮,文字和单元格 都可以使用vertical-align属性。

动了念头,想自己去画图标了……

一直以来用的font-awesome的免费图标库,虽然是足够用了,但是,想自己做一套的图标库的野心也是存在的。

起码,AI(Adobe Illustrator)软件还是会用的,sketch也行,总是觉得该试试了,今天偶然看到一个国人设计师自己实现的一套图标库,有些触动了,更想自己去试试。关键是,常用图标几乎都大同小异,创新很难,雷同甚至完全一样都很有可能,所以,就更想试试,起码,起初临摹是可以的,先熟练画图标的技巧。

其实,大概的流程是了解的。通过阿里的iconfont平台,可以上传svg文件生成iconfont,实现图标字体化。

好吧,暂时算是立下个flag,抽时间试着画一个先。

css中的!important及版本迭代的前因后果

css的!important该如何使用,何时使用,坦白说,时至今日,我也没有很深刻的认识,这个提升css属性权重的写法,在关键时候很有用,不过,需要明白的是,这个权重的提升,事实上是覆盖了其他的同名写法,提升了权限;往往,你需要提权的地方,可能只是一个唯一的,或者临时需要用到的地方。

所以,要慎重使用。

在2.0版本的框架中,我肆无忌惮的使用了!important,只是为了某些情况下的偷懒。

2.0版本中的!important
在2.0版本中,我使用了2631个!important

在2.0版本的实践中,我发现了严重的问题,往往因为这些大范围的提权的写法,导致各种场景的冲突,这说明了,css的写法及应用范围,前后排序存在严重的逻辑问题。

总的来说,3.0版本的诞生,除了优化class命名,更多的,还是修正!important的滥用。

3.0版本中的!important
在3.0版本中,!important锐减至72个

很好,3.0版本在实践中,逐步完善了很多细节,完全可以投入到生产环境中了。虽然修正或者修改了前版的class命名冗长的问题,但,还是觉得不够简洁。再加上,忽略了flex布局,于是,决定衍生4.0版本。

4.0版本,目前处于进行时态,对于!important的使用,暂时是少于3.0版本。至少,证明了我这套css框架已经趋于成熟了。

4.0版本中的!important
目前为止,使用了56个!important

最后,总结一下,关于!important,并非是完全不用,只是,尽可能的避免使用,一旦使用了,要保证用法的唯一性,独立性。至少不会影响后期维护。

4.0版本完善之后的计划……

在4.0框架逐步完善之后,计划之一,就是css的scss转化。

或者,可以考虑less?

另外,可能的话,还是要规划一个网站,专门把这套框架细分一下,写一个使用指南。如同大部分的框架一样,需要给这套框架一个名份,不能就这么默默无闻。

虽然一直是个人使用的框架,但还是希望能有更多人的参与进来,提供帮助,斧正错误,完善细节。

关于Python缩进和冒号

刚开始学习Python,找了一段九九乘法表的代码,自己敲出来后,发现输出结果跟示例截然不同,而代码又完全一样,没有错误。

仔细观察发现,缩进不一样,然后就查了一下Python的缩进和冒号,原来,对于Python而言,代码缩进是一种语法,Python没有像其他语言一样采用{}或者begin…end分隔代码块,而是采用代码缩进和冒号来区分代码之间的层次。

缩进的空格数量是可变的,但是所有代码块语句必须包含相同的缩进空格数量,这个必须严格执行。