Closed Justineo closed 11 years ago
@errorrik 这个#container
只是个例子,在实际使用的时候,不管什么方式指定要应用布局的元素,加上.xxx-layout
的mixin就行。外层容器不直接用className,而内部的结构需要满足一定className上的规约。都加上est-
前缀没问题,主要还是调用的时候怎么写参数我比较纠结。
举个你郁结摇摆不定的栗子?
@errorrik
比如.est-full-height-layout
现在可以设置一个固定高度header和一个固定高度footer,那我在调用的时候可以这么写:
//只有header,高90px
.est-full-height-layout(header, 90px);
//只有footer,高80px
.est-full-height-layout(footer, 80px);
//都有,header高90px,footer高80px
.est-full-height-layout(90px, 80px);
我现在想加上一个设置,让header/footer都可以分别设置是否fixed在视口,这个参数还没找到很舒服的写法。
@errorrik 我把上面说的这个API改成了这个样子:
.est-full-height-layout(@header-config [, @footer-config])
config
格式为[<length> <style>] | <length> | <style>
,<style>
可以是normal
/fixed
/none
。
支持这样写:
// header高60px,footer高30px并且内容不足一屏时置底
.est-full-height-layout(60px, 30px);
// 没有header,footer高90px且fixed定位
.est-full-height-layout(none, 90px fixed);
// header高60px,没有footer
.est-full-height-layout(60px normal);
不过内部实现感觉就脏了不少...
@Justineo
我觉得实现纠结是因为让.est-full-height-layout
做了太多事了。
看了注释,分 只有页头, 只有页脚, 有页头和页脚 三种情况。
能不能抽成三个mixin
对外提供呢?分开之后API会简单点,用起来应该更舒服。
@firede
其实不只是注释里写的这些,页头和页脚都可以是normal
/fixed
/none
,即使除掉两个都是none
的情况也有8种组合...都描述清楚的话mixin名字没法起了。页头页脚在这种布局下面不同设置会互相影响,所以也不太适合把页头页脚分作两个mixin。
@Justineo
虽然你的设计看起来包含了很多东西,但是还是覆盖不了所有的case。比如:没有header和footer,没有header只有footer。
我个人建议和 @firede 一样,分mixin。
.est-layout-header-footer( @header-config, @footer-config, @layoutType ) .est-layout-header( @header-config, @layoutType ) .est-layout-footer( @footer-config, @layoutType )
layoutType可以是full-height | auto
我懒了,应该是
.est-layout-header-body-footer .est-layout-header-body .est-layout-body-footer
layoutType不符合命名style,应该是layout-type
@errorrik
目前的实现header和footer都可以是none
/normal
/fixed
中的一种,也就是有9种可能的组合。
如果是这样的设计风格,那我有两个建议
在 2013-7-11,下午4:02,GU Yiling notifications@github.com 写道:
@errorrik 目前的实现header和footer都可以是none/normal/fixed中的一种,也就是有9种可能的组合。
— Reply to this email directly or view it on GitHub.
目前我采取的方式如下:
layout.less
:HTML:
LESS:
layout.less
已有的布局:还想增加header/footer fixed定位的设置,参数怎么加也感觉比较纠结。目前这些东西的 mixin API 还没最后确定,想听听大家的意见。