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, 592px
tô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 800px
và 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
#bar
là một cái bàn thì sao? - Nếu
#bar
là một textarea thì sao? Nếu
#bar
là đầu vào thì sao?Điều gì xảy ra nếu
#foo
là 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 div
lớp bọc có thể hoạt động với div
kiểu được tạo kiểu để làm việc như các đường viền cho textarea
.