2008-09-23 37 views
13

Thông thường bạn có thể làm điều này:Đặt thuộc tính kích thước của thẻ thông qua css?

<select size="3"> 
    <option>blah</option> 
    <option>blah</option> 
    <option>blah</option> 
</select> 

Và nó sẽ trả lại như một selectionbox nơi cả ba tùy chọn có thể nhìn thấy (không rơi xuống)
Tôi đang tìm kiếm một cách để thiết lập thuộc tính kích thước này từ css.

Trả lời

7

Không có tùy chọn để đặt kích thước, nhưng nếu bạn đặt kích thước, một số trình duyệt sẽ cho phép bạn đặt thuộc tính chiều rộng/chiều cao thành bất kỳ thứ gì bạn muốn qua CSS.

Một số = Firefox, Chrome, Safari, Opera.

công trình

Không có nhiều trong IE mặc dù (không ngạc nhiên)

Bạn có thể tuy nhiên, nếu bạn muốn, biểu thức sử dụng CSS trong IE, để kiểm tra xem các thuộc tính kích thước được thiết lập, và nếu như vậy, chạy JS để (lại) đặt nó thành kích thước bạn muốn ... ví dụ

size = options.length; 
+0

Đã thử nghiệm 'size = 2' trong HTML &' height: 20em' trong CSS và nó hoạt động trong IE8, FF13, Chrome19, Opera12. – some

-2

Tôi không tin rằng điều này là có thể không

6

Tôi không nghĩ rằng điều này là có thể.

Thuộc tính CSS rất chung chung (áp dụng cho bất kỳ phần tử nào) và không thể thay đổi chức năng của phần tử theo bất kỳ cách nào (chỉ là giao diện).

Kích thước thuộc tính đang thay đổi các chức năng của phần tử ít nhất là trong trường hợp kích thước = 1/size! = 1.

0

Nói chung bạn không thể thêm thuộc tính được đặt trong html qua CSS. Bạn có thể thêm vào html bằng cách sử dụng bộ chọn giả: trước và sau, nhưng đó là về nó, cộng với chúng vẫn không tương thích trên tất cả các trình duyệt. Nếu bạn thực sự cần phải làm điều này, tôi nghĩ bạn sẽ phải sử dụng Javascript.

+0

Tôi đồng ý. Điều này đánh tôi như một công việc cho jQuery. –

2

tôi không đồng ý, tôi đã có thể thiết lập chọn chiều rộng và chiều cao sử dụng CSS với một cái gì đó như thế này:

select { width: 5em; height: 5em; } 

trình trong IE (7) cũng như tôi chỉ thử nghiệm nó.

+0

Đây là một câu hỏi cũ nhưng tôi đã gặp sự cố với Safari bỏ qua thuộc tính ** size = ** khi sử dụng kích thước <4. Tôi đã có thể sử dụng đề xuất ở trên trong css 'height: 3em;' để luôn đặt nhiều lựa chọn cho khoảng 2 dòng (FF8, IE9, Safari4, Chrome15). Dường như là sự thay thế hợp lý cho thuộc tính ** size = 2 ** – toyNN

+0

Câu trả lời này không áp dụng được cho câu hỏi - OP đang nói về thuộc tính kích thước, không phải kích thước vật lý. Thuộc tính kích thước biến danh sách thả xuống thành danh sách các phần tử 'n' có thể cuộn được, trong đó' n' là kích thước. – Ben

2

Hãy thử điều này:

select[attr=size] { 
    width:auto; 
    height:auto; 
} 
+2

Xin chào marco, chào mừng bạn đến với StackOverflow! Vui lòng cố gắng giải thích thêm một chút về câu trả lời của bạn thay vì chỉ đăng mã. Điều này sẽ giúp mọi người tìm và hiểu câu trả lời của bạn. –

+0

Điều này thực sự có thể là một câu trả lời cho tiêu đề của câu hỏi. Cơ thể thực sự yêu cầu một vấn đề hơi khác.Tôi đã chỉnh sửa tiêu đề để làm rõ hơn. –

0

Bạn có thể sử dụng sau CSS selector để mục chọn phong cách với các thuộc tính kích thước:

select[size]{ 
/*your style here */ 
} 
+0

Điều này thực sự có thể là câu trả lời cho tiêu đề của câu hỏi. Cơ thể thực sự yêu cầu một vấn đề hơi khác. Tôi đã chỉnh sửa tiêu đề để làm rõ hơn. –

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