我寫了一個非常複雜的小部件,它使用OnDemandList創建一個允許完全編輯(包括添加)存儲的小部件。CSS類和小部件:三個問題
現在......我不完全是一個CSS大師(完全相反),並會喜歡一些指導,只是爲了檢查我是否以半理智的方式做事。
當我創建我的插件的編輯,我做的事:
buildRendering: function(){
// ...
this.domNode = put('div');
// ...
},
postCreate: function(){
// ...
// This is here, because if I set the class in buildRendering, it gets zapped by className (the widget's declaration)
put(this.domNode, '.editable-list');
// ...
},
然後當編輯時動態添加:
put(row.element, editingWidget.domNode);
put(editingWidget.domNode, '.editable-list-row-editor');
我也需要確保每一行都有位置:絕對讓編輯得到放置在正確的位置:
domStyle.set(row.element, 'position', 'relative');
在CSS,我有:
.editable-list-row-editor {
position: absolute;
top: 0;
z-index: 20;
}
問題:
1)它是在最佳實踐方面確定,甚至添加一個樣式像我domStyle.set(row.element, 'position', 'relative');
沒有...?或者我應該用CSS來做到這一點?我以編程的方式做到了,因爲它的確是重要的是它的relative
。
2)在CSS方面是否可以將事情儘可能地放在非特定的位置?這個想法是,用戶可能(也可能會)最終編寫自己的CSS,並通過編寫更具體的規則來壓倒性的東西......是嗎?或者,也許我應該寫:
.editable-list .editable-list-row-editor {
position: absolute;
top: 0;
z-index: 20;
}
或者更好:
.editable-list .row-editor {
position: absolute;
top: 0;
z-index: 20;
}
...?
3)從我所看到的,widget的CSS類應該在postCreate
而非buildRendering
設置,否則道場似乎用className
扎普任何設置有...是什麼你通常用做一個創建自己的domNode的小部件?
我的好領主多麼美妙的答案...... – Merc