2012-03-26 24 views
7

Tôi đã cố gắng thiết lập position:absolute và sau đó left, top, rightbottom các giá trị cố định bằng pixel, nhưng trừ khi tôi cũng đặt widthheight tôi không thể làm cho nó hoạt động đúng trên Firefox 11.Về sử dụng trái/trên/phải/đáy trên tuyệt đối textarea vị trí

Kết xuất có vẻ ổn trên safari/chrome ... nhưng đây có phải là lỗi của Firefox hoặc một thứ không thực sự chuẩn? Sử dụng 100% cho widthheight đôi khi là giải pháp, nhưng không phải khi phần tử không hoàn toàn bao trùm vùng chứa chính.

Xem http://jsfiddle.net/EjS7v/6/

Chrome, no 100% width/height Đây là Chrome (và kết quả mong muốn)

Firefox, width/height to 100% Firefox (chiều rộng/chiều cao đến 100%)

Firefox, without width/height Firefox (không có chiều rộng/chiều cao)

Có lựa chọn thay thế nào để sử dụng Javascript để tính toán chiều rộng và chiều cao khi chạy không?

Lưu ý rằng trong ví dụ này tôi đã sử dụng div có kích thước cố định làm vùng chứa, nhưng trường hợp thú vị và hữu ích nhất là khi vùng chứa đàn hồi.

Trả lời

6

Thực tế có một giải pháp thay thế đơn giản, sử dụng đánh dấu trình bày để chứa văn bản đó và sau đó chỉ chiều cao 100% chiều rộng cho chính vùng văn bản.

Thật vậy, CSS rất hạn chế.

+0

Thực ra giải pháp là tầm thường, tôi không hiểu tại sao tôi không nghĩ về nó ... cảm ơn. – 6502

+0

Vâng. Tôi đã làm điều đó sai nhiều lần trước khi tôi nghĩ về cách tiếp cận đó thay vì ... niềm vui của tôi. –

4

này được vì textarea, không giống như, nói rằng, một div, có default width and height:

Nếu nguyên tố này có một thuộc tính cols, và phân tích giá trị của thuộc tính rằng việc sử dụng các quy tắc để phân tích các số nguyên không âm doesn' t tạo ra lỗi, sau đó tác nhân người dùng được mong đợi sử dụng thuộc tính làm gợi ý giới thiệu cho thuộc tính chiều rộng trên phần tử, với giá trị là độ rộng hiệu dụng của văn bản (như được định nghĩa bên dưới). Nếu không, tác nhân người dùng được mong đợi sẽ hoạt động như thể nó có quy tắc trang định kiểu cấp tác nhân người dùng đặt thuộc tính chiều rộng trên phần tử thành độ rộng hiệu dụng của văn bản.

Các textarea hiệu quả chiều rộng của một yếu tố textarea kích thước × trung bình + SBW, nơi kích thước là chiều rộng nhân vật của phần tử, trung bình là chiều rộng nhân vật trung bình của phông chữ chính của phần tử, trong CSS pixel và sbw là chiều rộng của thanh cuộn, bằng pixel CSS. (Thuộc tính khoảng cách chữ cái của phần tử không ảnh hưởng đến kết quả.)

Nếu phần tử có thuộc tính rows và phân tích giá trị của thuộc tính bằng cách sử dụng quy tắc để phân tích các số nguyên không âm sẽ không tạo ra lỗi, thì người dùng tác nhân được dự kiến ​​sẽ sử dụng thuộc tính dưới dạng gợi ý giới thiệu cho thuộc tính chiều cao trên phần tử, với giá trị là chiều cao hiệu dụng của văn bản (như được định nghĩa bên dưới). Nếu không, tác nhân người dùng được mong đợi sẽ hoạt động như thể nó có quy tắc trang định kiểu cấp tác nhân người dùng đặt thuộc tính chiều cao trên phần tử cho chiều cao hiệu quả của văn bản.

chiều cao hiệu ứng văn bản của phần tử textarea là chiều cao CSS pixel của số dòng được chỉ định chiều cao ký tự của phần tử, cộng với chiều cao của thanh cuộn trong CSS pixel.

+0

Cảm ơn ... các tài liệu dường như thực sự rõ ràng về điều đó. Có vẻ như câu trả lời cho nếu có thể tránh được việc định vị Javascript là không :-( – 6502

+2

Và thực tế, lý do duy nhất nó "hoạt động" trong Safari/Chrome là do lỗi WebKit: https://bugs.webkit.org/ show_bug.cgi? id = 81863 –

+1

@BorisZbarsky: hoặc nó có nghĩa là (logic) lỗi là trong thông số kỹ thuật tiêu chuẩn :-) ... Tôi đã mong đợi ví dụ một số cách để đặt 'hàng' và' cols' để '" auto "' hoặc một cái gì đó tương tự. Phần tử 'textarea' có vẻ khá bị phá vỡ từ một quan điểm thiết kế (bao gồm cả sự lộn xộn khủng khiếp về các dòng mới mềm/cứng). – 6502

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