2013-03-09 79 views
9

我想創建一個Zurb基金會使用Rails上傳圖片的按鈕。我嘗試這樣做:你如何用zurb基礎設計窗體文件字段?

<input class="tiny round disabled button" name="picture[picture]" type="file"> 

不幸的是,它沒有工作,創建讓你選擇一個圖片上兩個不同的按鈕。有什麼我需要專門爲文件字段做?

回答

4

我發現這個資源與造型輸入類型=「文件」非常有幫助:

http://www.quirksmode.org/dom/inputfile.html

這是非常困難的,但是這主要涉及用假一個有層次感的實際輸入您的造型適用於它。

<div class="file-inputs"> 
    <input type="file" class="hidden-input"> 
    <div class="fake-input"> 
     <input> 
     <img src="images/YOURBUTTON.png"> 
    </div> 
</div> 

爲了配合下面的CSS:

div.file-inputs { 
position: relative; 
} 

div.hidden-input { 
position: absolute; 
top: 0px; 
left: 0px; 
z-index: 1; 
} 

input.file { 
position: relative; 
    text-align: right; 
-moz-opacity:0 ; 
filter:alpha(opacity: 0); 
opacity: 0; 
z-index: 2; 
} 
+0

用戶想編輯上面這條評論。在這裏補充:可悲的是,它現在需要做什麼來設置輸入類型=「文件」。您選擇設計CSS和JavaScript完全取決於您。我發現這個由[gabrieleromanato](http://gabrieleromanato.com/)創建的jsfiddle向您展示另一個用於樣式的CSS選項。 – Yakk 2014-02-12 16:19:42

+0

另請參閱:[樣式輸入類型文件?複製](http://stackoverflow.com/questions/4909228/style-input-type-file)[如何樣式「輸入文件」與CSS3/Javascript?](http://stackoverflow.com/questions/3226167/如何樣式輸入文件與css3-javascript)[樣式輸入類型=「文件」按鈕。](http://stackoverflow.com/questions/572768/styling-an-input-type-file -button) – Yakk 2014-02-12 16:20:09

1

自定義文件上傳按鈕使用HTML CSS和JS

HTML代碼:

<div class="custom-file-upload"> 
    <!--<label for="file">File: </label>--> 
    <input type="file" id="file" name="myfiles[]" multiple /> 
    </div> 

CSS:

.custom-file-upload-hidden { 
    display: none; 
    visibility: hidden; 
    position: absolute; 
    left: -9999px; 
} 

.custom-file-upload { 
    display: block; 
    width: auto; 
    font-size: 16px; 
    margin-top: 30px; 
} 
    .custom-file-upload label { 
    display: block; 
    margin-bottom: 5px; 
} 

.file-upload-wrapper { 
    position: relative; 
    margin-bottom: 5px; 
} 

.file-upload-input { 
    width: 300px; 
    color: #fff; 
    font-size: 16px; 
    padding: 11px 17px; 
    border: none; 
    background-color: #c0392b; 
    -moz-transition: all 0.2s ease-in; 
    -o-transition: all 0.2s ease-in; 
    -webkit-transition: all 0.2s ease-in; 
    transition: all 0.2s ease-in; 
    float: left; 
    /* IE 9 Fix */ 
} 

.file-upload-input:hover, .file-upload-input:focus { 
    background-color: #ab3326; 
    outline: none; 
} 

.file-upload-button { 
    cursor: pointer; 
    display: inline-block; 
    color: #fff; 
    font-size: 16px; 
    text-transform: uppercase; 
    padding: 11px 20px; 
    border: none; 
    margin-left: -1px; 
    background-color: #962d22; 
    float: left; 
    /* IE 9 Fix */ 
    -moz-transition: all 0.2s ease-in; 
    -o-transition: all 0.2s ease-in; 
    -webkit-transition: all 0.2s ease-in; 
    transition: all 0.2s ease-in; 
} 

.file-upload-button:hover { 
    background-color: #6d2018; 
} 

JS代碼: http://codepen.io/wallaceerick/pen/fEdrz檢查這一個完整的細節

1

的訣竅是去做一些看起來像這樣:

css file button trick

HTML

<button class="file-upload">Upload 
    <input type="file" name="files" /> 
</button> 

CSS

button.file-upload > input[type='file'] { 
    cursor: pointer; 
    position: absolute; 
    font-size: 0; 
    top: 0; 
    left: 0; 
    opacity: 0; 
    height: 100%; 
    width: 100%; 
} 

使用基礎v5.5.2:http://codepen.io/soyuka/pen/xGMPKJ

+0

這個解決方案存在一個大問題 - 你無法知道你是否已經上傳了一些或者沒有。這會立即殺死UX。 – banesto 2016-02-11 15:38:52

+0

我肯定不會不同意你,只是回答了這個問題。此外,技巧保持不變,您只需調整按鈕大小,以便仍然可以看到文本。或者,你可以用JavaScript處理文件:)。 – soyuka 2016-02-11 19:50:23

+1

我的確如此 - 檢查文件更改並將上傳的文件名稱放在按鈕旁邊的只讀輸入中,但我希望Zurb基金會將此解決方案從盒子中取出。 – banesto 2016-02-11 20:10:21