2010-07-21 31 views
41

Tôi có một div gọi là "divContainer" bên trong mà tôi có vài yếu tố đầu vào như hộp văn bản, nút radio và .. Làm thế nào tôi có thể xác định kiểu cho sau đó trong CSS? Tôi muốn đề cập đến phong cách cho các yếu tố bên trong div.not purticular cho toàn bộ hình thức.CSS: Định nghĩa kiểu cho các phần tử đầu vào bên trong div

Ví dụ: Đối với hộp văn bản, tôi cần chiều rộng là 150px; Đối với các nút radio tôi cần chiều rộng 20px;

Trả lời

61

Bạn có thể xác định quy tắc phong cách mà chỉ áp dụng đối với các yếu tố cụ thể bên trong div của bạn với id divContainer như thế này:

#divContainer input { ... } 
#divContainer input[type="radio"] { ... } 
#divContainer input[type="text"] { ... } 
/* etc */ 
+0

Tốt điểm Mike; Tôi đã sửa đổi mẫu mã để sử dụng bộ chọn CSS3. Cảm ơn. –

+1

Nếu bạn không sử dụng CSS3, bạn nên bao gồm javascript tại đây để thực hiện công việc này: http://www.dustindiaz.com/input-element-css-woes-are-over/ – Swift

2

Như thế này.

.divContainer input[type="text"] { 
    width:150px; 
} 
.divContainer input[type="radio"] { 
    width:20px; 
} 
+0

Điều này không nhất thiết phải tương thích ngược với các trình duyệt không hỗ trợ CSS3 – Swift

+0

http://www.quirksmode.org/css/contents.html hoạt động trở lại IE 6, đủ tốt cho hầu hết mọi người. –

3

Khi bạn nói "được gọi", tôi sẽ giả sử bạn có nghĩa là thẻ ID.

Để làm cho nó ngang hơn, tôi sẽ không đề xuất sử dụng CSS3 [], mặc dù đây là một tùy chọn. Điều này đang được nói, cung cấp cho mỗi hộp văn bản của bạn một lớp như "tb" và nút radio "rb".

Sau đó:

#divContainer .tb { width: 150px } 
#divContainer .rb { width: 20px } 

này giả định bạn đang sử dụng các lớp học tương tự ở nơi khác, nếu không muốn nói, điều này sẽ đủ:

.tb { width: 150px } 
.rb { width: 20px } 

Như @ David đã đề cập, để truy cập vào bất cứ điều gì trong việc phân chia bản thân:

#divContainer [element] { ... } 

Trong đó [element] là bất kỳ phần tử HTML nào bạn cần.

6

CSS 3

divContainer input[type="text"] { 
    width:150px; 
} 

CSS2 thêm một lớp "text" để đầu vào văn bản thì trong css của bạn

.divContainer.text{ 
    width:150px; 
} 
+1

Bạn có thể sử dụng javascript được liên kết ở trên để loại bỏ thêm lớp học. – Swift

+1

đúng, nhưng sau đó bạn có thể nhận được 'màn hình pop' như javascript được đánh giá và thay đổi css. Đối với những thay đổi về phong cách liên quan đến kích thước, cá nhân tôi muốn tránh sử dụng js trên chúng nếu có thể. Nhưng đó là tôi :) –

+0

'.divContainer.text' phải là' .divContainer input.text' – zvone

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