1. 程式人生 > >使用css去除網頁中存在的特殊預設樣式

使用css去除網頁中存在的特殊預設樣式

使用 iPhone 上的瀏覽器去瀏覽網頁的時候,按鈕總是顯示超大圓角的樣式,顯得超級噁心,但是我們自己定義 border-radius 也沒有效果,經過搜尋發現這是 webikt 核心瀏覽器通過私有屬性 -webkit-appearance 對控制元件設定了預設樣式。

input {-webkit-appearance:none;/*去除input預設樣式*/}

input[type="submit"],

input[type="reset"],

input[type="button"],

input{-webkit-appearance:none;}


我們在寫表單的時候會發現一些瀏覽器對錶單賦予了預設的樣式,如在Chorme瀏覽器下,文字框及下拉選擇框當載入焦點時,都會出現發光的邊框,並 且在火狐及谷歌瀏覽器下,多行文字框textarea還可以自由拖拽拉大,另外還有在IE10下,當文字框輸入內容後,在文字框的右側會出現一個小叉叉, 等等。不容置疑,這些效果是在使用者體驗上得到了提升,但有些時候我們並不需要這些預設的樣式,那怎麼辦呢?下面我們就來分別看一下解決辦法。

1、去除Chrome等瀏覽器文字框預設發光邊框

input:focus, textarea:focus { outlinenone; }

去掉高光樣式:

input:focus{
    -webkit-tap-highlight-color:rgba(0,0,0,0);
    -webkit-user-modify:read-write-plaintext-only;
}

當然這樣以來,當文字框載入焦點時,所有瀏覽器下的文字框的邊框都不會有顏色上及樣式上的變化了,但我們可以重新根據自己的需要設定一下,如:

input:focus,textarea:focus {
outlinenone; border1px solid #f60; }

這樣的話,當文字框載入焦點時,邊框顏色就會變為橙色,給使用者一個反饋。

2、去除IE10+瀏覽器文字框後面的小叉叉

只需下面一句就ok了

input::-ms-clear { displaynone; }

3、禁止多行文字框textarea拖拽

這樣按下面新增屬性多行文字框就不能拖拽放大縮小了:

textarea { resize: none; }

在這裡要提到一個屬性resize,這個是CSS3屬性,用於元素縮放,它可以取以下幾個值:

none 預設值

both 允許水平方向及垂直方向縮放

horizontal 只允許水平方向縮放

vertical 只允許垂直方向縮放

不僅可以針對textarea元素,對大多數元素都適用,如div等,在這裡不一一列舉,但與textarea不同的是,對div使用時需要加上一句overflow: auto;,也就是這樣才有效果:

div { resize: both; overflowauto; }

哦了,以上就是關於去除表單瀏覽器預設樣式的一些內容。

除特別宣告,本站所有文章均為原創,如需轉載請以超級連結形式註明出處:WEB前端開發