Tôi chắc chắn vấn đề này đã được hỏi trước đây nhưng dường như tôi không thể tìm ra câu trả lời.
Tôi có đánh dấu sau:
<div id="foo">
<div id="bar">
here be dragons
</div>
</div>
Mong muốn của tôi là làm cho foo có chiều rộng là 600px( width: 600px;) và làm cho thanh có các hành vi sau:
padding-left: 2px;
padding-right: 2px;
margin-left: 2px;
margin-right: 2px;
outerWidth: 100%;
Nói cách khác, thay vì đặt chiều rộng của thanh, 592pxtôi muốn đặt chiều rộng bên ngoài của thanh để 100%nó được tính toán 592px. Điều quan trọng ở đây là tôi có thể thay đổi chiều rộng của foo thành 800pxvà thanh sẽ tính toán khi hiển thị thay vì tôi phải làm phép toán cho tất cả các trường hợp này theo cách thủ công.
Điều này có khả thi trong CSS thuần túy không?
Một số thú vị hơn với nó:
- Nếu
#barlà một cái bàn thì sao? - Nếu
#barlà một textarea thì sao? Nếu
#barlà đầu vào thì sao?Điều gì xảy ra nếu
#foolà một ô trong bảng (td)? (Điều này có thay đổi vấn đề không hay vấn đề giống hệt nhau?)
Cho đến nay table#bar, input#barđã được thảo luận. Tôi chưa thấy giải pháp tốt cho textarea # bar. Tôi nghĩ rằng một vùng văn bản không có viền / lề / đệm với một divlớp bọc có thể hoạt động với divkiểu được tạo kiểu để làm việc như các đường viền cho textarea.