2013-03-09 32 views
9

Tôi đang cố tạo nút bằng Zurb Foundation bằng Rails để tải ảnh lên. Tôi đã thử điều này:Làm thế nào để bạn tạo kiểu cho các trường tệp mẫu với nền tảng zurb?

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

Thật không may, nó không hoạt động và tạo hai nút khác nhau cho phép bạn chọn ảnh. Có điều gì tôi cần làm đặc biệt cho các trường tệp không?

Trả lời

4

tôi đã tìm thấy khu vực này là rất hữu ích với kiểu phong cách input = "file":

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

Đó là điều rất khó khăn nhưng điều này chủ yếu liên quan đến layering đầu vào thực tế bằng một IP giả mà có bạn kiểu dáng được áp dụng cho nó.

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

Để đi với CSS sau đây:

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

Một người sử dụng muốn chỉnh sửa trên với nhận xét này. Thêm vào đây: Đáng buồn thay, những gì bạn phải làm để kiểu đầu vào kiểu = "tập tin" tại thời điểm này. CSS và JavaScript bạn chọn để tạo kiểu cho nó hoàn toàn tùy thuộc vào bạn. Tôi tìm thấy jsfiddle này được tạo bởi [gabrieleromanato] (http://gabrieleromanato.com/) để hiển thị cho bạn một tùy chọn CSS khác để tạo kiểu. – Yakk

+0

Xem thêm: [Kiểu tệp kiểu đầu vào? duplicate] (http://stackoverflow.com/questions/4909228/style-input-type-file) [Làm cách nào để tạo kiểu "tệp đầu vào" bằng CSS3/Javascript?] (http://stackoverflow.com/questions/3226167/ how-to-style-input-file-với-css3-javascript) [Tạo kiểu đầu vào = nút "tệp".] (http://stackoverflow.com/questions/572768/styling-an-input-type-file -button) – Yakk

1

Tuỳ chỉnh nút tập tin tải lên sử dụng html css và js

Html mã:

<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 Mã sản phẩm: http://codepen.io/wallaceerick/pen/fEdrz kiểm tra này để biết chi tiết hoàn chỉnh

1

Bí quyết là phải làm cái gì đó trông như thế này:

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%; 
} 

Sử dụng nền tảng v5.5.2: http://codepen.io/soyuka/pen/xGMPKJ

+0

Có một vấn đề lớn với giải pháp này - bạn không thể biết nếu bạn đã tải lên một cái gì đó hay không .. mà giết chết UX ngay lập tức. – banesto

+0

Tôi chắc chắn không đồng ý với bạn, chỉ trả lời câu hỏi. Ngoài ra, mẹo vẫn giữ nguyên, bạn chỉ cần điều chỉnh kích thước nút để bạn vẫn có thể xem văn bản. Hoặc, bạn có thể xử lý các tệp bằng javascript :). – soyuka

+1

Tôi đã thực hiện chính xác thay đổi tập tin đã chọn và đặt tên tệp được tải lên vào đầu vào chỉ đọc bên cạnh nút, nhưng tôi hy vọng nền tảng Zurb sẽ có giải pháp này ra khỏi hộp .. – banesto

Các vấn đề liên quan