Tôi nhận thấy rằng bạn có thể thay đổi màu của văn bản trong hộp văn bản bị vô hiệu hóa trong Firefox áp dụng một lớp đơn giản nhưng không thể có cách để làm điều đó trong IE 6/7. Có ai ngoài kia có một giải pháp thanh lịch để đạt được điều này không.Thay đổi màu phông chữ trong Hộp văn bản trong IE bị tắt
Trả lời
tôi nhận thấy rằng bạn có thể thay đổi màu sắc của văn bản trong textbox đó bị vô hiệu hóa trong Firefox
Tôi nghĩ rằng những gì các câu hỏi đang cố gắng nói là điều này:
<textarea disabled="disabled" style="color: red;">Hello</textarea>
Kết quả trong văn bản màu xám trong IE, so với màu đỏ trong Fox. FWIW, Opera cũng cho màu xám, trong khi trình duyệt WebKit cho màu đỏ.
Đây là vấn đề CSS thuần túy để thực hiện với số lượng trường biểu mẫu được hiển thị theo bộ tiện ích con của hệ điều hành và số lượng theo quy tắc CSS. Điều này luôn là một khu vực có sự khác biệt lớn giữa các trình duyệt. Scripting không liên quan, mặc dù SO muốn "sử dụng jQuery" để trở thành câu trả lời cho mọi câu hỏi.
Cách giải quyết thông thường là sử dụng ‘chỉ đọc’ thay vì ‘bị vô hiệu’, sau đó sử dụng kiểu (ví dụ: dựa trên ‘class =” disabled ”’) để tái tạo bất kỳ hiệu ứng bị tắt nào bạn muốn. Các điều khiển 'chỉ đọc' không được biến thành tiện ích con bị vô hiệu hóa ở cấp độ hệ điều hành, giúp bạn có thêm vĩ độ để tạo kiểu cho chúng.
Cảm ơn lời giải thích ... nhưng tôi có một câu hỏi khác ... Làm thế nào để tôi thực hiện các điều khiển khác như CheckboxLists vv trên biểu mẫu ReadOnly vì chúng dường như không có thuộc tính này trên chúng. – chugh97
Có, chỉ đọc có sẵn cho
Tôi hơi bối rối vì sao đây không phải là câu trả lời được chọn. Cảm ơn. –
Bạn có hai lựa chọn (kể từ IE 6/7 không hỗ trợ: disabled css-selector)
- Sử dụng jQuery (hoặc một số khác js-lib lựa chọn của bạn) và áp dụng một lớp học để tất cả các yếu tố đầu vào bị vô hiệu hóa, giả sử: $ ("input: disabled, textarea: disabled"). addClass ("bị vô hiệu hóa");
- Thêm lớp "vô hiệu hóa" theo cách thủ công ở phía máy chủ, điều này tất nhiên chỉ có thể thực hiện được nếu bạn biết trước khi bàn tay nào sẽ bị vô hiệu hóa và các yếu tố nào sẽ không được.
Afaicr trong HTML có vẻ hơi giống như <textarea disabled="disabled">
phải không? Bạn có thể lấy đi với textarea[disabled="disabled"]
trong IE7 (có thể không hoạt động trong IE6 tuy nhiên).
fredrikholmstrom câu trả lời là giải pháp trình duyệt chéo tốt nhất.
Cần lưu ý rằng việc sử dụng các thuộc tính disabled
làm cho tiềm ẩn <input>
yếu tố không phải nộp trong một hình thức gửi, nơi như readonly
điều khiển được gửi đến máy chủ. Do đó, bạn không nên sử dụng readonly
nếu mã máy chủ của bạn không mong đợi một giá trị từ điều khiển đó.
Đó là kinh nghiệm của tôi mà cố gắng để hack một cái gì đó để có được một bài thuyết trình có thể chấp nhận thường là không có giá trị nó. Tôi khuyên bạn nên thay đổi CSS của bạn để kiểu dáng văn bản bị vô hiệu hóa IE không xung đột với kiểu điều khiển nằm bên dưới của bạn, hoặc bạn sử dụng văn bản được tạo kiểu thay cho điều khiển (vì các điều khiển bị vô hiệu hóa không thành công cho việc gửi anyways). Làm việc với trình duyệt và không chống lại nó.
Điều này có thể rất tốt để biết thực sự –
+1 Đây là câu trả lời đúng, IMO. Hoặc là thay đổi thiết kế của bạn một chút để đầu vào bị vô hiệu hóa của bạn có vẻ ổn trong IE với màu văn bản mặc định hoặc bạn có thể sử dụng div được tạo kiểu theo cách bạn muốn đầu vào bị tắt. – BadHorsie
Bạn có thể sử dụng sau đây để mô phỏng hành vi tàn tật-lĩnh vực với những dòng tiếp theo:
// find all disabled fields
$("input:disabled, textarea:disabled, select:disabled").each(function(index){
// add the class is_disabled
$(this).addClass("is_disabled");
// remove the attribut disabled
$(this).removeAttr('disabled');
// add new attribut readonly
$(this).attr('readOnly', 'readOnly');
});
// on submit remove all fields which are still with class is_disabled
$('form').submit(function() {
// find all fields with class is_isabled
$("input.is_disabled, textarea.is_disabled, select.is_disabled").each(function(index){
// and remove them entirely
$(this).remove();
});
return true;
});
// now don't let anyone click into the fields
// this will simulate the 'disabled' functionality
$('.is_disabled').click(function() {
$('.is_disabled').blur();
});
Tôi đoán bạn có thể viết css cho rằng vì đi về phía trước với JQuery. Tôi chưa thử nghiệm nó. Nhưng nếu bạn vô hiệu hóa một vùng văn bản, nó sẽ tự động xử lý các kiểu. Thêm phần này vào stylesheet của bạn và cho tôi biết ....
input[disabled][type='text'], textarea[disabled]{ color: rgb(0,0,0); background-color:Silver;}
Thật bất ngờ nó làm việc cho tôi trong IE8, tôi đã không thử nghiệm nó trong IE7 –
@ user197586 Bạn đã có cơ hội để kiểm tra điều này trong IE7 chưa? – user007
Vấn đề với trình duyệt IE mà nó không thể áp dụng phong cách để kiểm soát khuyết tật, đó là lý do tại sao trước hết chúng ta cần phải loại bỏ nó từ textbox của chúng tôi, sau đó thêm phong cách của chúng tôi và vô hiệu hóa tập trung vào kiểm soát. Tôi đã thử cũng unbind ('tập trung') nhưng nó đã không hoạt động.
Vì vậy, tôi sử dụng jQuery cho việc này:
var disabledControls = $("input:disabled, textarea:disabled");
disabledControls.removeAttr('disabled');
disabledControls.addClass("is-disabled");
disabledControls.focus(function() {
this.blur();
});
lớp CSS:
.is-disabled {
background-color: #EBEBEB;
color: black !important;
}
trình một cách hoàn hảo trong IE8 \ 9 và Chrome ...
Vì bạn đã loại bỏ thuộc tính đã tắt của đầu vào, giá trị sẽ được gửi đến máy chủ khi bạn gửi biểu mẫu. – BadHorsie
tôi đã cùng một vấn đề cho <select>
các phần tử trong IE10 và tìm thấy giải pháp:
Có một psuedo-yếu tố Microsoft cho phép màu sắc văn bản được sửa đổi:
select[disabled='disabled']::-ms-value {
color: #000;
}
Nguyên tắc phải nằm riêng của nó, bởi vì các trình duyệt khác khác sẽ bỏ qua toàn bộ quy tắc do lỗi cú pháp. Xem http://msdn.microsoft.com/en-us/library/ie/hh869604(v=vs.85).aspx cho các phần tử psuedo chỉ có trong Internet Explorer khác.
EDIT: Phần tử psuedo -ms-value
được giới thiệu trong IE10 vì vậy sẽ không hoạt động trên các phiên bản trước đó.
Điều đó dường như không thay đổi phong cách trong IE8. Vẫn nổi màu xám trên máy của tôi. – Snekse
Tôi đã tìm kiếm giải pháp và tìm kiếm gần như toàn bộ internet và không thể tìm thấy giải pháp cho hộp chọn bị tắt và hoạt động này! Cảm ơn! – Edrees
Tôi nghi ngờ có lẽ tốt hơn nên sử dụng 'select: disabled :: - ms-value' (xem https://developer.mozilla.org/es/docs/Web/CSS/:disabled) hoặc' select [disabled]: : -ms-value' (tuy nhiên tôi chưa cài đặt IE vào lúc này vì vậy chưa thử nghiệm, xin lỗi). – robocat
Tôi cũng tìm kiếm một giải pháp đơn giản, không có văn bản. Sau đây đã làm việc cho tôi trong IE 8. Ý tưởng là sử dụng tính trong suốt nền và bộ lọc để biến đổi và tô màu văn bản. Điều này làm tối văn bản bị tắt chỉ đủ để làm cho nó dễ đọc.
textarea[disabled], select[disabled], input[type='text'][disabled] {
/*required*/
background-color:transparent;
filter: light;
/*fine tuning*/
font-weight:100;
font-family: Tahoma;
border: 1px solid;
letter-spacing:1px;
}
Các select
không có một bóng thả, do đó làm cho văn bản rất dày để có được một tương tự hiệu ứng font-weight.
select[disabled] {
font-weight:900;
}
đầu vào [tắt] và đầu vào [readonly] làm việc trong IE 7, 8 và 9 khi bạn thêm dòng này vào file html:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
Sử dụng một lớp phủ nhãn:
<asp:Label ID="lblTxtHider" runat="server" Text="" CssClass="hidden" Enabled="false"></asp:Label>
<asp:TextBox ID="TextBox1" runat="server" CssClass="frmItem" Visible="false" OnTextChanged="TextBox1_TextChanged"></asp:TextBox>
Sau đó, trong CSS:
.disabledColorChanger {
position: absolute;
font-family: Arial;
font-size: 13px;
margin-top: 3px;
margin-left: 4px;
}
.disabledColorChanger[disabled] {
display:none;
}
Và trong mã khi thiết hoặc vô hiệu hóa:
private void SetEnabled(bool enabled)
{
lblTxtHider.Enabled = !enabled;
TextBox1.Enabled = enabled;
lblTxtHider.Text = TextBox1.Text;
}
Và mã SỬA CHỮA để phát hiện ví dụ:
<script>
$(document).ready(function() {
var isIE = /*@[email protected]*/false || !!document.documentMode;
if (isIE) {
document.getElementById("<%=lblTxtHider.ClientID%>").className = "disabledColorChanger";
}
});
</script>
Chỉ cần đặt label = giá trị đầu vào. Làm việc cho tôi.
- 1. Cách thay đổi màu phông chữ của đầu vào bị tắt trong Firefox
- 2. Làm thế nào để thay đổi màu phông chữ trong hộp văn bản trong C#?
- 3. Đặt màu phông chữ Java trong trường văn bản bị tắt
- 4. thay đổi màu phông chữ trong hộp văn bản bằng CSS khi giá trị được nhập vào hộp
- 5. Thay đổi phông chữ của văn bản trong richtextbox
- 6. Javascript - Thay đổi màu phông chữ của văn bản nhất định trong textarea
- 7. Thay đổi màu văn bản trong các hộp CHỌN
- 8. Thay đổi màu chữ trong Eclipse
- 9. Thay đổi màu và màu của văn bản trong hộp văn bản
- 10. Thay đổi màu văn bản trong một WebView?
- 11. Màu văn bản nhập bị tắt
- 12. Thay đổi Phông chữ của Vùng Văn bản
- 13. tự động thay đổi màu phông chữ TextView trong ListView
- 14. phông chữ văn bản thay đổi kích thước
- 15. Nút Thích của Facebook - thay đổi màu phông chữ?
- 16. Đặt màu phông chữ trong tôm
- 17. Thay đổi màu văn bản trong MoreNavigationController
- 18. Làm thế nào để thay đổi màu phông chữ của một TextBox bị vô hiệu hóa?
- 19. Thay đổi màu nền và màu phông chữ
- 20. Thay đổi màu văn bản trong trường văn bản
- 21. Làm cách nào để thay đổi màu nền của hộp văn bản có định dạng khi nó bị tắt?
- 22. Phông chữ mặc định cho Hộp văn bản nhiều dòng khác với Hộp văn bản đơn?
- 23. Phông chữ nhúng văn bản trong PDF
- 24. Thay đổi màu văn bản
- 25. Whats phông chữ và màu sắc của văn bản UITableViewCell?
- 26. Chọn văn bản trong hộp văn bản bị tắt trong C#
- 27. Màu chế độ xem văn bản Android không thay đổi khi bị tắt
- 28. Thay đổi màu phông chữ và màu nền của TMemo trong FireMonkey
- 29. Thay đổi Kiểu phông chữ
- 30. cách thay đổi màu nhãn văn bản QCheckBox trong Qt?
Tôi không sử dụng jQuery và không biết cách sử dụng nó ... Tôi đang tìm kiếm một giải pháp thanh lịch trong CSS – chugh97