2013-04-06 28 views
26

Tôi đang xây dựng trang web đáp ứng và tôi tự hỏi tôi nên sử dụng đơn vị nào? Tôi đã nhìn thấy rất nhiều trang web sử dụng pixel (px) cho các phép đo và tôi đã thấy một số trang sử dụng phần trăm (%). Có cách nào được ưu tiên - hay đúng đắn để thực hiện thiết kế đáp ứng?Đơn vị ưu tiên khi thực hiện thiết kế đáp ứng là gì?

Tôi đã tìm thấy phần trăm khó sử dụng, vì nó làm cho việc tính toán trở nên khó khăn và tôi đã kết thúc với các giá trị như 2,754% v.v. khi thiết lập chiều rộng/lề vv trừ, nhưng tôi đã đọc rằng nó không phải là "bằng chứng trong tương lai" hoặc một cái gì đó như thế và sẽ không quy mô đúng nếu người dùng phóng to trong cửa sổ trình duyệt. Điều đó vẫn đúng?

Nếu bạn có bất kỳ kinh nghiệm hoặc chuyên môn nào, vui lòng chia sẻ! Tôi rất thích nghe những gì các bạn phải nói!

Cảm ơn!

+1

_Responsive_ và _absolute values_ (như pixel) mâu thuẫn với nhau một chút. Thông thường, việc sử dụng các giá trị tương đối cho các thuộc tính thuần túy của bạn ('width') và các giá trị tuyệt đối cho min/max (' max-width', 'min-width') sẽ dễ dàng hơn. Bằng cách đó nó vẫn còn đáp ứng, nhưng bạn có thể làm cho một số giả định về chiều rộng của container theo kiểu. – Zeta

+0

Xem [câu hỏi này] (http://stackoverflow.com/questions/12450961/responsive-layout-px-em-or) – Bigood

+0

Tôi nghĩ câu trả lời chủ yếu là đúng. Dù sao, có rất nhiều đơn vị trong CSS. Xem bài đăng này từ Chris Coyier: http://css-tricks.com/the-lengths-of-css/ – pzin

Trả lời

4

Sử dụng tỷ lệ phần trăm cùng với chiều rộng tối thiểu và chiều rộng tối đa tính bằng pixel. Điều này dừng tỷ lệ phần trăm làm cho div của bạn quá nhỏ hoặc quá lớn. ví dụ:

div { 
    width:100%; //full width of browser 
    max-width: 960px; //this means it will be 100% of the browser until 960px then it will stop expanding 
} 
9

Tất nhiên bạn phải sử dụng tỷ lệ phần trăm. Nhưng với các phím số min-height, max-height, min-width, max-width CSS.

Đối với thế hệ tiếp theo

vwvh. Vw là 1/100 chiều rộng của cửa sổ và vh bằng 1/100 chiều cao của cửa sổ. Để đáp ứng, họ sẽ là đơn vị mới.

+0

Tôi đã thử nó trên Firefox 20. Nó hoạt động. – zkanoca

+0

Tôi nghĩ rằng họ làm việc trong một vài trình duyệt, không có nơi gần sẵn sàng cho phát triển phi thử nghiệm mặc dù: P –

29

Đối bố trí loại những thứ như kích thước của hộp, bạn muốn sử dụng % bởi vì bạn sẽ thường có nhiều cột có kích thước như một tỷ lệ của công ty mẹ của họ mà sẽ ngăn xếp trên đỉnh của nhau tại một breakpoint nhất định (width:100%) . Không có đơn vị nào khác cho phép bạn lấp đầy 100% không gian như %.

Đối với padding/margins sử dụng em, thông thường bạn sẽ muốn không gian các phần tử của bạn liên quan đến kích thước văn bản của bạn. Với em (với ký tự 'M'), bạn có thể dễ dàng nói rằng tôi muốn khoảng cách khoảng 1 ký tự ở đây.

Đối với giáp bạn có thể sử dụng px hoặc em, có sự khác biệt. Nếu bạn muốn đường viền của mình trông rộng một pixel trên tất cả các thiết bị, hãy sử dụng 1px. Tuy nhiên, nó có thể không phải là một pixel trên tất cả các thiết bị, màn hình có mật độ cao chuyển đổi 1px thành 2px chẳng hạn. Nếu bạn muốn đường viền của mình có kích thước dựa trên phông chữ, hãy sử dụng em.

Đối phông chữ sử dụng em (hoặc %), việc sử dụng em mang thông qua cha mẹ với con cái và nó chỉ là một đơn vị đẹp hơn để làm việc với hơn px.

+1

Điều này rất xa một bộ quy tắc. Câu trả lời này là một hướng dẫn tốt nhưng có rất nhiều trường hợp khi sử dụng các đơn vị khác có thể hoạt động tốt hơn rất nhiều –

+1

Đối với các đường viền, bạn cũng có thể sử dụng 'thin',' medium' và 'thick'. Chúng tương ứng với '1px',' 3px' và '5px' nhưng cũng có thể mở rộng tùy thuộc vào thu phóng của bạn, v.v. Chúng cũng tốt hơn' em' vì đường viền được xác định bằng 'em' chỉ biến mất khi bạn thu nhỏ và chiều rộng của nó trở nên nhỏ hơn '1px'. – tomasz86

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