司徒正美

Results 147 issues of 司徒正美

http://www.zhihu.com/question/29936125/noti-answers?group_id=576797447574036480

https://github.com/philipwalton/flexbugs/issues http://ued.ctrip.com/webkitcss/prop/flex.html

http://www.w3cplus.com/css3/a-visual-guide-to-css3-flexbox-properties.html http://www.codingserf.com/index.php/2014/08/responsive-and-mobile-2/

https://github.com/Justineo/blog/blob/gh-pages/_posts/2014-11-11-responsive-images-in-practice.md

1 布局1:多列布局 2 布局2: 多栏布局 3 布局3: 三栏三列布局4 布局4: 基于table-cell的多个元素垂直居中 5 布局5: 基于伸缩盒的多个元素垂直居中 6 布局6: 多列等高并出现水平滚动条 7 布局7,伸缩盒里出现垂直滚动条 最近在做uOS APP的布局,研究了一下CSS3自适应布局技术在IE10+中的应用,其他标准浏览器由于具有自动更新功能,只需兼容最近的几个版本就行了——因此我们可以用CSS3来提高工作效率。 前端HTML(结构)+CSS(表现)这部分,无非是两大问题,装饰与布局。装饰某个widget就算再难,我们也可以用图片搞定。布局就不是这回事了,别的不说,display:inline-block有3px BUG,定位布局与浮动布局相关的BUG也不在10以下,关键是用起来非常麻烦,需要许多额外的元素 。早些年够为著名的是圣杯布局,双飞翼布局,近一点的是960grids提倡的栏栅布局,但这些布局都很难与@media配合使用。而@media是面向移动设备响应式布局的利器。 @media无非是在CSS引入条件判定,让相同的几个元素在分支不同时,呈现不同的布局。另,已经的浮动布局,定位布局是无法解决多列等高问题,而浮动时要求出现浮动条的需要,这也是过去不能解决的。 这正是我提倡大胆试用CSS3属性的原因。 CSS3引入了新三种布局,grid布局,伸缩盒布局,多列布局。其中grid布局的文档繁文缛节,可用性不强,目前只有IE10实现了,未来是否完蛋或重来不可知,放弃。 多列布局是针对文本与行内元素的,是为了实现报纸那种布局,与我们这种多widget的富应用不符合,暂不起用。剩下就是伸缩盒布局,是我见过的最操蛋的规范,从2009发布到去年最终定下来,更弦换辙了三次。 Flexbox 规范时间表: 2009年7月...

.mixi-frames () { from {width: 254px;} to {width: 512px;} } @-webkit-keyframes some-animation {.mixi-frames;} @-moz-keyframes some-animation {.mixi-frames;} @-ms-keyframes some-animation {.mixi-frames;} @-o-keyframes some-animation {.mixi-frames;} @keyframes some-animation {.mixi-frames;}

比如你做一个插件,可以写在这里来。或者发现某个模块发了BUG,或者有什么改进的好建议!

``` Module.extend('Util', function(util) { var dom = util.DOM; var setOriginOffset = function(el) { el.IESUCKS = { width : el.offsetWidth, height: el.offsetHeight }; }; var transformKey = function() { style =...

打个比方,原生API相当于沙石,像prototype.js ,jquery等基础库相当于提供了砖瓦, 而框架的一些插件(特指存在界面的)提供了地板,窗户,烟囱, 像YUI,EXT,dojo,它们的UI库则是一个个未装修的房子。 对于用户而言,越是接近成品的东西就越受欢迎。 像应用与游戏就是一一个精装房与公园与王国。

新的版本将不支持严格模式 //将绑定属性的值或插值表达式里面部分转换一个函数compileFn,里面或包含ViewModel的某些属性 //而它们分分种都是setter, getter,成为双向绑定链的一部分 var regEscape = /([-.*+?^${}()|[\]\/\\])/g; function escapeRegExp(target) { //将字符串安全格式化为正则表达式的源码 return target.replace(regEscape, "\\$1"); } var isStrict = (function() { return !this; })(); function insertScopeNameBeforeVariableName(e, text, scopes, names, args,...