溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

xmlplus組件設計之按鈕的示例分析

發(fā)布時間:2021-08-17 09:45:47 來源:億速云 閱讀:104 作者:小新 欄目:web開發(fā)

這篇文章主要介紹xmlplus組件設計之按鈕的示例分析,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

除了圖標以外,按鈕也許是最簡單的組件了,現(xiàn)在來看看如何定義按鈕組件。

使用原生按鈕組件

在 xmlplus 中,HTML 元素也以組件的方式存在。所以,你可以直接通過使用 button 標簽或者 input 標簽來使用按鈕組件。如下示例所示:

Example: {
  xml: "<div id='example'>\
       <button>Default</button>\
       <input type='submit'>Primary</input>\
     </div>"
}

雖然原生按鈕外觀不那么吸引人,但原生按鈕未經(jīng)特殊包裝,所以渲染起來最快,執(zhí)行效率最高。

使用 Bootstrap 樣式的按鈕

如果你的項目在視覺上沒有特別要求的話。使用 Bootstrap 樣式來定義按鈕組件是一個好主意。按傳統(tǒng)方式使用 Bootstrap 按扭,你需要像下面這樣使用。

<button type="button" class="btn btn-default">Default</button>
<button type="button" class="btn btn-primary">Primary</button>
<button type="button" class="btn btn-success">Success</button>

請認真觀察,你是不是覺得它給你的比你要求的要多。你不但發(fā)現(xiàn)了好多的 type=button,還發(fā)現(xiàn)了好多的 btn?,F(xiàn)在下面給出一個組件,它基于 Bootstrap 樣式,但它明顯地簡化了按鈕的使用方式。

Button: {
  xml: "<button type='button' class='btn'/>",
  fun: function (sys, items, opts) {
    this.addClass("btn-" + opts.type);
  }
}

此按鈕組件封裝了原始按鈕需要重復書寫的內容,在使用時,僅需提供 type 屬性即可指明目標按鈕,使用起來更為便捷。下面給出的是新按鈕組件的使用方式。

<Button type='default'>Default</Button>
<Button type='primary'>Primary</Button>
<Button type='success'>Success</Button>

帶有圖標的按鈕

按鈕上除了文字外,還可以附帶圖標。合適的圖標可以使按扭的使用意圖更加生動直觀。這里以 EasyUI 的圖標按鈕為例來說明如何封裝并使用圖標按鈕。我們首先來看看,EasyUI 圖標按鈕的原始使用方式。

<div >
  <a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" class="easyui-linkbutton" data-options="iconCls:'icon-add'">Add</a>
  <a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" class="easyui-linkbutton" data-options="iconCls:'icon-remove'">Remove</a>
  <a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" class="easyui-linkbutton" data-options="iconCls:'icon-save'">Save</a>
</div>

與上一節(jié)對 Bootstrap 按鈕的封裝類似,通過觀察提煉出重復出現(xiàn)的部分,將變化的部分以接口形式展現(xiàn)。上面的按鈕僅圖標類型名和文本是可變的,所以我們可以做出如下的設計:

Button: {
  xml: "<a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" class="easyui-linkbutton"/>",
  fun: function (sys, items, opts) {
    this.attr("data-options" + "iconCls:'icon-" + opts.type);
  }
}

下面是新圖標的使用方式,它明顯比原始的使用方式簡潔多了。

<div >
  <Button type='add'>Add</Button>
  <Button type='remove'>Reomve</Button>
  <Button type='save'>Save</Button>
  <Button type='cut'>Cut</Button>
</div>

自定義你的按鈕組件

使用類似 Bootstrap, EasyUI 等開源框架,可以避免重造輪子。然而,當這些開源項目無法滿足你的需求時,你就需要自己動手了。

為簡單起見,現(xiàn)在假定上述 Bootstrap 框架并不存在,那么如何設計一套上述的按鈕?這樣的實踐是非常有意義的,它有助于你舉一反三。

現(xiàn)在讓我們重新對上面的按鈕組件作觀察。你會發(fā)現(xiàn),Bootstrap 設計了一些可以組合的樣式類,其中 btn 是每一個按鈕都需要的,另外像 btn-default、btn-primary 等等都根據(jù)需要與 btn 形成組合樣式類。好了,根據(jù)這個思路,我們就可以設計出如下的組件框架。

Button: {
  css: "#btn { 這里是按鈕基本的樣式 }\
     #default { 這里是default樣式 }\
     #primary { 這里是primary樣式 }",
  xml: "<button type='button'/>",
  fun: function (sys, items, opts) {
    this.addClass("#btn #" + opts.type, this);
  }
}

上述的設計思路與前面直接使用 Bootstrap 樣式定義按鈕不同點在于,前者已經(jīng)為你定義好了各個全局的樣式類,你只需要直接引用就可以了。而此處你需要在按扭組件內部自行定義相關樣式類。從封裝的角度看,后者的內聚性要強于前者,因為它并不暴露全局類名。下面是該組件的使用示例。

Example: {
  xml: "<div id='example'>\
       <Button type='default'>Default</Button>\
       <Button type='primary'>Primary</Button>\
       <Button type='success'>Success</Button>\
     </div>"
}

注意,為了簡化起見,這里的自定義按鈕組件略去了 hover、active 樣式,所以與 Bootstrap 按鈕有些不一樣。

以上是“xmlplus組件設計之按鈕的示例分析”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。

AI