2010-02-02 23 views
9

我正在一個大的窗體上,它包含了很多按鈕,所以我試圖得到工作輸入[type =「button」 ]在我的主要CSS文件,所以它會捕獲所有的按鈕,無需添加一個類到每一個,由於某種原因,這不適用於IE7,在檢查網絡後,它說IE7應該支持這一點。輸入類型=「按鈕」的Css屬性選擇器不工作在IE7

它也必須是type =「button」而不是type =「submit」,因爲並非所有按鈕都會提交表單。

有人可以給我一個提示我做錯了什麼?

input[type="button"] { 
    text-align:center; 
} 

我也曾嘗試input[type=button]

+0

這可能是相關的:http://stackoverflow.com/questions/2112783/attribute-selectors-javascript-and-ie8 – 2010-02-02 16:51:56

+0

我寫了[一篇文章](http://sarfraznawaz.wordpress.com/2010/ 02/22/css-attribute-selector /)以及一些關於CSS屬性選擇器的詳細信息。 – Sarfraz 2010-04-01 06:16:12

回答

25

我一直在努力獲得input[type=button]在IE7或IE8工作的選擇器。問題原來是因爲HTML頁面缺少「!DOCTYPE」聲明。一旦我加入

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 

然後一切正常。您顯然可以使用不同的「!DOCTYPE」聲明來滿足您的要求。

+0

iv'e注意到.aspx!DOCTYPE如下: <!DOCTYPE html PUBLIC「 - // W3C // DTD XHTML 1.0 Transitional // EN」「http://www.w3.org/TR/ xhtml1/DTD/xhtml1-transitional.dtd「> 你會在哪裏添加你建議的html部分?我應該用它替換XHTML 1.0嗎? – 2011-10-01 19:55:38

+0

我推測有任何種類的'DOCTYPE'定義會導致選擇器的工作。他們是不是在用你上面列出的文檔類型爲你工作? – ipr101 2011-10-03 19:15:15

+0

它不起作用,但我想起來,我只在Google chrome上檢查過它(可能它只針對瀏覽器) – 2011-10-03 23:59:51

1

屬性選擇器,遺憾的是,目前還沒有很好的所有主流瀏覽器實現的,因爲它是CSS3,而不是2.1,目前的標準。因爲W3C的人在做決定時並不那麼敏捷,所以最好不要將自己的期望設得太高,因爲我們很快就無法使用css3。它的某些方面已經實現,但這不是(當然不在IE6中)。

因此,正如您已經說過的那樣,將您的所有輸入提供給一個班級會更好,並且每當您創建一個表單時都會有這樣的習慣。當你編寫表單時,它總是很方便,而且工作量不大。

當我創建一個形式,我總是添加一個輸入的類型,一類,例如:

尤其是最後兩天會派上用場,在很多情況下,因爲你不要單獨設計.button和.submit風格,但如果您願意的話,您可以選擇。

+0

+1。值得注意的是,如果OP不想添加類,他可以使用JavaScript或js框架(如jQuery)來做類似的事情。 :) – munch 2010-02-02 16:30:34

+0

屬性選擇器是CSS 2,而不是3,並且長期以來一直是完整的W3'建議'。 (即使CSS3選擇器是一個「建議推薦」,這是相當長的一段時間,並在IE以外的世界很好實施!) – bobince 2010-02-02 16:35:44

+0

好吧,我的錯誤,但它仍然沒有改變它沒有很好地實現它的事實,因爲你稱之爲'IE的世界',現在仍然是一個需要處理的大世界。 – 2010-02-04 12:59:59

1

他們在IE7中爲我工作(兩種形式,有和沒有引號)。

也許還有另一個遮罩你的選擇器。你可以嘗試讓你的選擇更具體的,爲了給它更多的優先級,例如:

body form input[type="button"] { 
background: red; 
} 
8
input[type="button"]{ text-align:center; } 

你有什麼期望呢?默認情況下,<input type="button">中的文本已居中。

如果要對齊父項按鈕本身,你必須設置text-align父元素,而不是按鈕。

屬性選擇器 - 帶或不帶引號 - 做IE7工作。這是IE6,這是那裏的問題瀏覽器。

3

我已經沒有任何問題越來越CSS語句就像在IE7這工作; IE6始終是問題,但我相信這個CSS也可以在那裏工作。所以我不認爲IE7是問題。

的第一件事情是,你的CSS樣本只會影響按鈕,也不會影響提交按鈕。但這是一個簡單的解決方案;改變你的css爲:

input[type="submit"], input[Type="button"] 
{ text-align: center; } 

其次,正如Manolo Santos所說,你能否擁有另一個覆蓋文本對齊設置的CSS語句?只是輸入元素的設置?可能值得使用像Firebug這樣的開發者工具或者Chrome或IE8中內置的開發者組件來幫助找到CSS問題。

0

這個問題是舊的,但如果有人有一個相關的問題。我花幾分鐘的時間試圖解決一個類似的問題

輸入[類型=「提交」]在IE7不工作(儘管IE的正如我在開發工具中看到的,將樣式正確地分配給輸入)。

解決方案:我從切換提交提交它的工作!

我在這裏發佈,因爲它可能在調試時幫助某人。

0

無論出於何種原因,有時在IE7中顯示頁面之前屬性選擇器將不會應用。這實際上只是發生在我身上。我的選擇是table[bgColor="#c0c0c0"],並不適用於頁面加載。自從我使用IE9(瀏覽器模式:IE7,文檔模式:IE7標準)以來,我可以使用F12 Developer Tools查看我的CSS文件。我取消選中選擇器,然後再次檢查。之後應用的屬性。這是可以重現的良好的醇'IE7,所以我將不得不找到解決辦法。 (注意:既不使用單引號,雙引號,也不使用任何引號或大寫形式的變化會對此產生影響。)

1

我很確定每個人都意識到向頭添加DockType的解決方案isn'一直都有可能。

例如,我開發了DotNetNuke(DNN)環境,開發人員無法訪問標題。然後它幾乎不可能添加!DocType。

在這種情況下,除了將CssClass關聯到按鈕並在CSS模塊中顯式引用它外,沒有太多的選項。