2013-11-22 29 views
13

Sau đây:Tại sao yếu tố <input> mất lề trái/phải khi được cho chiều rộng?

<!DOCTYPE html> 
<form> 
    <input type=text> 
</form> 

Tạo mô hình khung bên dưới, trong Chrome:

box model no width

Tuy nhiên, nếu loại đầu vào theo kiểu với một width:

<!DOCTYPE html> 
<form> 
    <input type=text style="width: 100px;"> 
</form> 

Các trái và lề phải được xóa:

enter image description here

Tại sao điều này?

+0

Hình như user-agent chrome bị vô hiệu hóa nếu phong cách được áp dụng. – isherwood

+0

Sao chép bằng jsfiddle bằng chrome: http://jsfiddle.net/Jh9ng/ Câu hỏi hay. Tôi thực hiện trong jsfiddle vì imgur bị chặn tại nơi làm việc của tôi. – edhedges

+0

Bạn có thể thấy nó tốt hơn ở đây: http://jsfiddle.net/isherwood/Jh9ng/1 – isherwood

Trả lời

10

"Mục đích của lề nội tại là cố gắng ngăn chặn các điều khiển liền kề chống lại nhau. Đặc biệt với các điều khiển được làm tròn, điều này có vẻ khủng khiếp. Lý do bạn thấy giá trị thay đổi là chúng ta chỉ đặt lề nội tại khi chúng ta nghĩ rằng nó Nếu tác giả chỉ định chiều cao/chiều rộng rõ ràng trên điều khiển, thì chúng tôi giả định nhà thiết kế cần kiểm soát chính xác pixel và vì vậy chúng tôi tắt lề để tránh làm gián đoạn bố cục trang. "

https://code.google.com/p/chromium/issues/detail?id=128306#c20

+0

tuyệt vời. cảm ơn vì đã chia sẻ kiến ​​thức sâu sắc. có vẻ như đó là một điều cụ thể của Chrome. – HorseloverFat

+1

Tin tốt là nếu bạn chỉ muốn xóa lề nội tại mà không cần chạm vào * bất kỳ kiểu nào khác, bạn vẫn có thể tự thiết lập thuộc tính 'lề'. – BoltClock

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