亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > HTML > 正文

被遺忘掉的button標簽

2024-08-26 00:08:46
字體:
來源:轉載
供稿:網友
注:這篇文章已經有人翻譯過重新認識button 標簽,但是感覺其中有很多地方值得推敲,不太好理解。因此本人結合個人學習體會重新翻譯而成此文。
英文原文:http://particletree.com/features/rediscovering-the-button-element/

       對于每個程序設計者來說,為用戶提供一個風格統一的界面是一項不變的要求。但是在網頁上實現這種風格統一卻顯得格外困難,因為不同操作系統、不同瀏覽器對網頁內容的表現方式存在著差異,而且這種差異幾乎毫無規律性。在處理表單元素過程中這個問題顯得格外突出,其中,讓很多人束手無策的就是“submit”按鈕表現標準統一化的問題。

比如說,屬性為type="submit"的input標簽在不同的瀏覽器中要么顯得非常丑陋(在firefox中),要么就是存在這樣那樣的缺陷(在internet explorer),甚至表現得十分死板(在safari中)。應對這個問題的解決辦法通常是通過設置input的屬性為image然后自己動手設計一個按鈕圖片出來。但我們卻因此而不得不在每次需要使用按鈕時增加大量額外煩人的工作。因此,我們需要一個更好的解決辦法,一個對設計者來說更具靈活性、更有意義的方法。幸運的是,這種方法實際中已經存在,需要的是我們再做一點點工作。朋友們,現在請允許向大家介紹我們這位可愛的小盆友<button>同學!

input vs button

下面是你正在使用的提交按鈕標簽:
<input type="submit" value="submit" />

他們在不同的瀏覽器中的表現樣式分別如下:

而我們使用<button>創建如上按鈕時代碼:
<button type="submit">submit</button>

他們表現樣式如下:


這些按鈕和我們上面創建的按鈕在運行和表現行為中沒有任何區別。除了用他們來提交表單為,你還可以設置他們為不可用,添加快捷鍵或者設定一個tabindex等。還好,除了表現樣式不同外,safari都支持這些功能(和input的按鈕相比,safari中button按鈕缺少表面的液態效果)。<button>標簽最酷的功能就是我們可以在其內部放置一些有用的html元素,比如可以使用下面的代碼加入圖片:
<button type="submit"><img src="" alt="" /> submit</button>

他們在瀏覽器的外觀如下:

還不錯哦。實際上,根據w3c的定義,<button>元素就是為了解決這些表現上的差異才應運而生的。

    buttons created with the button element function just like buttons created with the input element, but they offer richer rendering possibilities: the button element may have content. for example, a button element that contains an image functions like and may resemble an input element whose type is set to “image”, but the button element type allows content.

    the button element - w3c


因此我們要為此尋找一個設計方案,好在擁有海量資料的互聯網可以為我們提供一些有用的幫助來解決這個問題。這的確很方便,但是不幸的是很設計者和網站開發者甚至都不知道這個元素的存在。在我決定用button元素替換掉wufoo(本文作者的一款網絡產品,dudo注)前,我得肯定這個標簽和css能滿足以下的需求:

需求條件:
1、他們必須具有按鈕的外觀
2、在不同瀏覽器中有相同的表現樣式
3、button中所應用的樣式同樣可以在超級鏈接上使用(因為wufoo中的交互總是使用表單提交的方式和鏈接觸發ajax的方式中的某一個實現的,他們可能經常會緊挨在一起,因此我需要他們具有相同的表現樣式)
4、在不同的情況下標簽能夠表現靈活,易于修改
5、對于信息傳遞過程中發生的事件能夠用圖標和顏色有效地區分


面對上面的問題,我首先寫出一些css來,然后再解決跨瀏覽器的問題。接下來我們就會看到:
最終結果


這并沒有什么大驚小怪的,他很簡單,但是卻非常的有效。我之所以喜歡用這種方式和處理按鈕是因為我不必為創建10000個圖標而去啟動photoshop一一創建。如果我們仔細觀察一下代碼,你就會發現后面兩個按鈕其實是兩個鏈接。

<div class="buttons">
    <button type="submit" class="positive">
        <img src="/images/icons/tick.png" alt=""/>
        save
    </button>

    <a href="/password/reset/">
        <img src="/images/icons/textfield_key.png" alt=""/>
        change password
    </a>

    <a href="#" class="negative">
        <img src="/images/icons/cross.png" alt=""/>
        cancel
    </a>
</div>


這樣做的目的是因為在網頁應用程序中很多動作都是事件(rest)驅動的,因此通過一個特定的url發送用戶請求可以把這些動作初始化。使用在兩種元素上都可以應用的樣式,使我們在維持ajax和標準提交按鈕引起的交互時的樣式統一手段更加靈活。

現在你可能會問,為什么我要把圖像元素的alt屬性留成空白呢?alt是img元素的必要屬性,它用于解釋圖像的內容,而這里卻沒有圖像的相關說明,這的確有點費解。不過,與“缺少”屬性不同,屬性值“為空”是完全符合標準的,他告訴瀏覽器這些圖像代表了一些完全可以忽略的信息,這也使瀏覽者不用因為提示信息的遮擋而找不到下一個按鈕。由于此處的圖標完全是多余的,因此我們寧愿不去浪費用戶的時間去查看這個完全是為了實現界面風格統一而使用的圖標。

css樣式表

用于控制這些按鈕樣式的css大部分內容都很直觀,不同瀏覽器中的稍許差別,就會導致我們下面的代碼中要分別為他們應用不同的padding值,還好,這一切都是完全可以實現的。

/* buttons */

.buttons a, .buttons button{
    display:block;
    float:left;
    margin:0 7px 0 0;
    background-color:#f5f5f5;
    border:1px solid #dedede;
    border-top:1px solid #eee;
    border-left:1px solid #eee;

    font-family:"lucida grande", tahoma, arial, verdana, sans-serif;
    font-size:100%;
    line-height:130%;
    text-decoration:none;
    font-weight:bold;
    color:#565656;
    cursor:pointer;
    padding:5px 10px 6px 7px; /* links */
}
.buttons button{
    width:auto;
    overflow:visible;
    padding:4px 10px 3px 7px; /* ie6 */
}
.buttons button[type]{
    padding:5px 10px 5px 7px; /* firefox */
    line-height:17px; /* safari */
}
*:first-child+html button[type]{
    padding:4px 10px 3px 7px; /* ie7 */
}
.buttons button img, .buttons a img{
    margin:0 3px -3px 0 !important;
    padding:0;
    border:none;
    width:16px;
    height:16px;
}


還有一個問題就是,internet explorer在呈現長按鈕時存在一些bug。有關這方面的信息你可以在jehiah.cz上找到,不過在上面的css代碼中我們通過聲明width和overflow的值會在一定程度上避免問題的出現。

為按鈕添加一點色彩

在wufoo中,我們為中性動作(這里,作者把change password一類的動作叫作中性動作,把“確定”、“提交”一類的動作叫作正向動作,而把“放棄”、“取消”一類的動作叫作負向動作)的hover值設為藍色,而把正向動作和負向動作分別設為綠色和紅色。下面的樣式代碼中就是我們用不同的顏色區分“添加”、“保存”一類的正向動作和“取消”、“刪除”一類的負向動作的。感覺還不錯,當然你也可以選擇你喜歡的他顏色來使用。

/* standard */

button:hover, .buttons a:hover{
    background-color:#dff4ff;
    border:1px solid #c2e1ef;
    color:#336699;
}
.buttons a:active{
    background-color:#6299c5;
    border:1px solid #6299c5;
    color:#fff;
}

/* positive */

button.positive, .buttons a.positive{
    color:#529214;
}
.buttons a.positive:hover, button.positive:hover{
    background-color:#e6efc2;
    border:1px solid #c6d880;
    color:#529214;
}
.buttons a.positive:active{
    background-color:#529214;
    border:1px solid #529214;
    color:#fff;
}

/* negative */

.buttons a.negative, button.negative{
    color:#d12f19;
}
.buttons a.negative:hover, button.negative:hover{
    background:#fbe3e4;
    border:1px solid #fbc2c4;
    color:#d12f19;
}
.buttons a.negative:active{
    background-color:#d12f19;
    border:1px solid #d12f19;
    color:#fff;
}


總結

最后要說的是,這僅僅是我們應對wufoo中需求而設計的解決方案,不過在我們的努力下它表現還不錯。但是這并不是唯一方法,你可以找到更多有趣的辦法把按鈕變成圓角甚至更加豐富多彩。由于<button>標簽之間幾乎可以放置任意其他元素,因此你還可以通過插入<span>標簽然后按照alex griffioen最新提供的方法來創建一個真正好看的圓角立體按鈕。說實話,我希望對于所有為程序的界面重復使用而努力的設計者來說這僅僅是一個開始。不管怎么說,我希望你能夠在打開photoshop制作input按鈕前多思考一下,多看一眼這個幾乎被遺忘的<button>標簽,也許他會給你驚喜。

附錄:
html4.0/xhmtl1.0中的<button>元素


定義和用法

定義一個按鈕。在 button 元素內部,您可以放置內容,比如文本或圖像。這是該元素與使用 input 元素創建的按鈕之間的不同之處。

<button> 控件 與 <input type="button"> 相比,提供了更為強大的功能和更豐富的內容。<button> 與 </button> 標簽之間的所有內容都是按鈕的內容,其中包括任何可接受的正文內容,比如文本或多媒體內容。例如,我們可以在按鈕中包括一個圖像和相關的文本,用它們在按鈕中創建一個吸引人的標記圖像。

唯一禁止使用的元素是圖像映射,因為它對鼠標和鍵盤敏感的動作會干擾表單按鈕的行為。

可選擇的屬性

屬性                        值                      描述                                            dtd
disabled                     disabled                     禁用此按鈕。                               stf
name                        button_name             規定此按鈕的唯一名稱。                     stf
type                          * button
                                * reset                      定義按鈕的類型。                           stf
                                * submit    
value                         some_value               規定按鈕的初始值。此值可被腳本修改。       stf

標準屬性:

id, class, title, style, dir, lang, xml:lang, accesskey, tabindex

事件屬性:

onfocus, onblur, onclick, ondblclick, onmousedown, onmouseup, onmouseover, onmousemove, onmouseout, onkeypress, onkeydown, onkeyup
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品久久99久久| 亚洲深夜福利视频| 一区二区三区 在线观看视| 日韩欧美中文在线| 久久伊人免费视频| 日韩欧美极品在线观看| 国产成人亚洲综合91| 韩国国内大量揄拍精品视频| 亚洲国产另类 国产精品国产免费| 91精品国产综合久久男男| 国产精品自拍偷拍| 亚洲人成77777在线观看网| 精品久久久香蕉免费精品视频| 欧美老女人在线视频| 欧美成人自拍视频| 中文字幕亚洲综合久久筱田步美| 亚洲精品欧美一区二区三区| www.亚洲天堂| 亚洲精品永久免费| 亚洲成人精品av| 亚洲精品乱码久久久久久金桔影视| 亚洲人成在线播放| 亚洲人a成www在线影院| 亚洲日本成人网| 亚洲欧美日韩图片| 国产精品久久久久久久久久久久久| 精品久久久久久久久久久久久久| 成人欧美一区二区三区黑人| 成人亚洲激情网| 91久久久精品| 国产成人极品视频| 欧美视频二区36p| 992tv在线成人免费观看| www日韩中文字幕在线看| 国产日本欧美一区| 久久久精品国产亚洲| 狠狠久久五月精品中文字幕| 国产精品日韩在线| 日韩av手机在线| 中文字幕免费精品一区高清| 欧美大肥婆大肥bbbbb| 中文字幕一区二区精品| 91精品综合久久久久久五月天| 国产亚洲精品日韩| 国产精品91免费在线| 一区二区三区视频在线| 亚洲久久久久久久久久久| 成人久久一区二区三区| 久久精品国产99国产精品澳门| 最近免费中文字幕视频2019| 色青青草原桃花久久综合| 最近2019中文免费高清视频观看www99| 中文字幕精品在线视频| 久久久久久亚洲精品中文字幕| 日韩精品视频免费| 国产视频亚洲精品| 久久成人精品电影| 亚洲三级黄色在线观看| 亚洲精品大尺度| 亚洲影院在线看| 亚洲精品v天堂中文字幕| 精品伊人久久97| 精品久久久999| 欧美另类暴力丝袜| 国产成人精品优优av| 亚洲欧美精品suv| 亚洲影院高清在线| 日本免费一区二区三区视频观看| 高清欧美性猛交xxxx黑人猛交| 久久国产精品视频| 国产精品久久久久久影视| 红桃av永久久久| 日韩美女毛茸茸| 久久亚洲精品一区二区| 91免费国产视频| www亚洲欧美| 91中文字幕一区| 国产欧美精品一区二区三区介绍| 狠狠色香婷婷久久亚洲精品| 国产精品九九久久久久久久| 日韩中文字幕免费看| 日韩成人激情在线| 欧美性高潮床叫视频| 欧美日韩中文字幕在线视频| 永久免费看mv网站入口亚洲| 91精品国产综合久久男男| 国产91精品久久久久| 久久视频在线免费观看| 亚洲一区二区三区成人在线视频精品| 国产欧美一区二区| 一本色道久久综合狠狠躁篇的优点| 成人激情视频免费在线| 欧美xxxx14xxxxx性爽| 中文字幕无线精品亚洲乱码一区| 九九久久国产精品| 亚洲视频在线播放| 亚洲电影免费观看| www.美女亚洲精品| 亚洲欧美制服丝袜| 欧美做受高潮电影o| 日韩精品高清在线观看| 91嫩草在线视频| 中文在线资源观看视频网站免费不卡| 久久99亚洲热视| 久久久久久久久久久成人| 亚洲高清色综合| 国产精品va在线播放| 欧美日韩中国免费专区在线看| 亚洲成av人乱码色午夜| 97视频在线观看网址| 在线播放国产一区中文字幕剧情欧美| 日韩精品福利网站| 久久久电影免费观看完整版| 91精品啪aⅴ在线观看国产| 成人免费观看网址| 国产精品99久久久久久久久久久久| 久久成人在线视频| 91夜夜未满十八勿入爽爽影院| 国产精品一区二区三区久久久| 最近中文字幕2019免费| 日韩欧美在线一区| 欧美极品在线视频| 欧美一级大片视频| 91国产美女视频| 性色av一区二区咪爱| 国产91av在线| 2019国产精品自在线拍国产不卡| 国产成人一区二区| 精品少妇一区二区30p| 亚洲一区999| 九九热这里只有精品6| 亚洲精品www久久久久久广东| 欧美多人爱爱视频网站| 国产精品va在线| 亚洲自拍av在线| 欧美综合在线第二页| 国产精品爽爽爽| 久久精品国产2020观看福利| 日韩精品视频中文在线观看| 亚洲国产精品嫩草影院久久| 日韩视频在线免费| 欧美日韩在线影院| 欧美激情va永久在线播放| 亚洲午夜未满十八勿入免费观看全集| 日本久久亚洲电影| 国产亚洲福利一区| 福利一区福利二区微拍刺激| 国产亚洲精品久久久久久777| 欧美日韩电影在线观看| 亚洲精选在线观看| 国产精品爽爽爽| 中文字幕精品影院| 国产精品久久久久久久av大片| 国产有码在线一区二区视频| 日韩网站免费观看| 欧美—级a级欧美特级ar全黄| 久久精品久久久久电影| 国产成人精品久久久| 欧洲亚洲免费在线| 九九久久综合网站| 亚洲精品一区二三区不卡| 亚洲va码欧洲m码| 粉嫩老牛aⅴ一区二区三区| 国产一区二区三区三区在线观看|