問題描述

我有一個表單,其中有一個”Submit” 按鈕和一個”Cancel” 錨點。 HTML 是這樣的:

<input type="submit" value="Submit" />
<a href="some_url">Cancel</a>

我想讓這兩個人看起來和行為一樣。沒什麼奇怪的,只是類似於”Ask Question” 的錨點在 StackOverflow 上看起來。

我可以得到兩個看起來有點相似,有邊框,背景顏色和懸停的背景顏色,但我不能很好地獲得高度和垂直對齊來相互玩得很好。我會發布我的 CSS,但這是一個混亂,在這一點上,我認為可能會更容易從頭開始,獲得一個準系統的 CSS 佈局工作,然後繼續從那裏。

附:我知道我可以使用一個而不是一個錨點,並連接 onClick 事件來做重定向。現在幾乎是一個原則問題,現在要使用一個錨點來獲得這個權利 (另外還有網絡蜘蛛考慮在這裏考慮) 。

最佳解決方案

你可以用簡單的風格獲得最好的東西就像:

.likeabutton {
    text-decoration: none; font: menu;
    display: inline-block; padding: 2px 8px;
    background: ButtonFace; color: ButtonText;
    border-style: solid; border-width: 2px;
    border-color: ButtonHighlight ButtonShadow ButtonShadow ButtonHighlight;
}
.likeabutton:active {
    border-color: ButtonShadow ButtonHighlight ButtonHighlight ButtonShadow;
}

(可能有一些修復,以阻止 IE6-IE7 處理聚焦按鈕為 「活動」 。)

雖然這不一定看起來像本機桌面上的按鈕; 事實上,對於許多桌面主題,將無法在簡單的 CSS 中重現按鈕的外觀。

但是,您可以要求瀏覽器使用本機渲染,這是最好的:

.likeabutton {
    appearance: button;
    -moz-appearance: button;
    -webkit-appearance: button;
    text-decoration: none; font: menu; color: ButtonText;
    display: inline-block; padding: 2px 8px;
}

不幸的是,正如你可能從 browser-specific 前綴猜到的,這是一個 CSS3 feature,並沒有被支持到處。特別是 IE 和 Opera 會忽略它。但是,如果您將其他樣式作為備份,支持 appearance 的瀏覽器會刪除該屬性,更喜歡顯式的背景和邊框!

您可以做的是默認使用 appearance 樣式,並根據需要進行 JavaScript 修復,例如:

<script type="text/javascript">
    var r= document.documentElement;
    if (!('appearance' in r || 'MozAppearance' in r || 'WebkitAppearance' in r)) {
        // add styles for background and border colours
        if (/* IE6 or IE7 */)
            // add mousedown, mouseup handlers to push the button in, if you can be bothered
        else
            // add styles for 'active' button
    }
</script>

次佳解決方案

我希望這將有所幫助。

<a href="url"><button>SomeText</button></a>

第三種解決方案

我建議您使用輸入提交/按鈕而不是錨點,並將這行代碼 onClick="javascript:location.href = 'http://stackoverflow.com';"
放在您要作為鏈接工作的輸入提交/按鈕中。

提交舉例

<input type="submit" value="Submit" onClick="javascript:location.href = 'some_url';" />

按鈕示例

<button type="button" onClick="javascript:location.href = 'some_url';" />Submit</button>

參考文獻

注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇