2013-02-25 23 views
10

Các mục nhập ngày tháng như <input type="date" name="due_date" id="due_date" min="2011-09-01" maxlength="10" class="span8"> trong Chrome được sử dụng để cho phép người dùng xem lịch "cửa sổ bật lên" để giúp chọn ngày. Tôi nhận thấy ngày hôm qua rằng hành vi đã dừng lại; đầu vào chỉ cho phép người dùng mũi tên lên/xuống các phần ngày (tháng/ngày/năm). Tôi đã truy cập blog Chrome và chạy tìm kiếm trên Google nhưng không thể tìm thấy bất kỳ đề cập nào về thay đổi này. Tại sao hành vi của input type="date" bị thay đổi? Thật kỳ lạ, thay đổi này dường như bị giới hạn đối với Bootstrap, vì http://www.w3schools.com/html/tryit.asp?filename=tryhtml5_input_type_date vẫn hiển thị ngày tháng.Tại sao hành vi của `input type =" date "` bị thay đổi?

+0

đã tạo ra một JSFiddle bằng cách sử dụng CSS Bootstrap và dường như không ảnh hưởng đến cửa sổ bật lên của Chrome - http: //jsfiddle.net/BxVDx/3/ – Kasaku

+0

Tôi vừa xác nhận đây là vấn đề Bootstrap bằng cách vào tài liệu của Bootstrap và "chèn" '' vào ví dụ mẫu mặc định tại http://twitter.github.com/bootstrap/base-css.html#forms. –

+1

@PirateKitten: I * do * thấy vấn đề này trong câu đố của bạn. Tôi đang sử dụng Chrome .... Phiên bản 25.0.1364.97 m. Bạn? –

Trả lời

13

Cập nhật Nhóm Chromium chấp nhận lỗi và gửi patch back to WebKit. Ý chính của thay đổi là các điều khiển ngày sẽ được hiển thị bên trong phần tử hộp linh hoạt bất kể kiểu được áp dụng cho điều khiển nhập [loại = 'ngày'].


Tôi là một trong số that reported the defect referenced here to Chromium. Một giải pháp được đề xuất là áp dụng display: inline-block; vào bộ chọn lịch:

input[type="date"]::-webkit-calendar-picker-indicator{ 
    display:inline-block; 
} 

Tuy nhiên, đó là giải pháp khả quan vì các điều khiển vẫn được chuyển sang vị trí khác với quyền được kiểm soát trên đầu vào [loại = "ngày"].

lựa chọn khác là nổi ngay:

input[type="date"]::-webkit-calendar-picker-indicator { 
    display:inline-block; 
    margin-top:2%; 
    float:right; 
} 
input[type="date"]::-webkit-inner-spin-button { 
    display:inline-block; 
    float:right; 
} 

này có tác dụng phụ của đảo ngược các spinner và chọn lịch điều khiển.

tốt nhất hack, tôi nghĩ là để loại bỏ các spinner và nổi phải:

input[type="date"]::-webkit-calendar-picker-indicator{ 
    display:inline-block; 
    margin-top:2%; 
    float:right; 
} 
input[type="date"]::-webkit-inner-spin-button { 
    /* display: none; <- Crashes Chrome on hover */ 
    -webkit-appearance: none; 
    margin: 0; 
} 

chrome 25 input[type="date"] defect hack-arounds

+1

+1 để mở lỗi bằng Chrome. –

+2

Lưu ý rằng nếu bạn đang thả nổi một phần tử, màn hình hiển thị của nó được đặt thành 'khối', vì vậy không có điểm nào cố gắng đặt nó thành bất kỳ phần tử nào khác. Xem [bài viết về Thủ thuật CSS] này (http://css-tricks.com/implied-block/) hoặc chỉ xem phong cách được tính toán trong công cụ dành cho nhà phát triển Chrome. Nói về những công cụ này, mọi người có thể không biết rằng bạn có thể vào Cài đặt> Phần tử> Hiển thị Shadow DOM để xem các phần tử ('-webkit-inner-spin-button', vv) được tham chiếu trong câu trả lời này. – CherryFlavourPez

+0

Phiên bản Chrome 26.0.1410.43 m hiển thị mọi thứ chính xác một lần nữa. –

6

cập nhật

Tìm thấy vấn đề

Bootstrap sử dụng 2 kiểu thuộc tính ..

1 - display: inline-block mà làm cho google phá vỡ các mũi tên lên dòng khác

2 - chiều cao: 20px mà ngăn không cho bạn thấy điều này "dòng"

screenshot of findings

+0

Tôi thấy các thay đổi tương tự khi tôi tắt 'padding'. –

2

Cập nhật

Vấn đề Google Chrome đã được đánh dấu là một hồi quy, vì vậy đây hy vọng sẽ sớm được khắc. Là một workaround tạm thời, sau đây sẽ làm việc:

input[type=date]::-webkit-calendar-picker-indicator { 
    display: inline-block; 
} 

Bằng cách này bạn có thể giữ cho đầu vào hiển thị bất động sản thiết lập để bất cứ điều gì bạn thích và mọi thứ hoạt động như nó đã làm trước đó.

gốc đáp ứng

Thiết display: -webkit-inline-flex (mà dường như là mặc định cho <input type="date" />) sẽ khắc phục vấn đề này, tuy nhiên điều này có thể làm thay đổi cách bố trí, như các đầu vào được đối xử như một yếu tố nội tuyến.

Điều này có vẻ như một lỗi đối với tôi, tôi sẽ xem liệu có ai đó đã gửi báo cáo lỗi hay không.

+1

Có sự cố trong trình gỡ lỗi Chromium, vui lòng gắn dấu sao cho thông báo đó khi được cập nhật và thể hiện sự quan tâm của bạn về việc này được giải quyết: https://code.google.com/p/chromium/issues/detail ? có thể = 2 & bắt đầu = 0 & num = 100 & q = ngày% 20picker & colspec = ID% 20Pri% 20Mstone% 20ReleaseBlock% 20OS% 20Area% 20Tính năng% 20Status% 20Owner% 20Summary & groupby = & sort = & id = 178175 – ximi

+0

Tham khảo nhận xét trước của tôi :) –

+0

Thanks @ximi . Tôi cũng đã mở một vé Bootstrap: http://github.com/twitter/bootstrap/issues/7061 –

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