2012-07-16 51 views
5

Có thể đặt kích thước phông chữ thành phần trăm kích thước vùng chứa không? Tôi có một danh sách các mục có hình ảnh, tiêu đề và mô tả. Hình ảnh sẽ tự động thay đổi kích thước khi người dùng thay đổi kích thước cửa sổ. Tôi muốn font tiêu đề để làm như vậy.CSS, kích thước phông chữ tương đối

chỉnh sửa: Javascript/JQuery là tốt.

+0

Theo kích thước vùng chứa, ý của bạn là bao gồm phần đệm, bao gồm phần đệm và đường viền, hoặc bao gồm phần đệm, đường viền và lề? –

+1

Ngoài ra, IMO, tôi không khuyến khích bạn thay đổi kích thước phông chữ dựa trên kích thước khung nhìn/cửa sổ. Nó ngăn ngừa khả năng đọc lớn. –

+0

container, cửa sổ, đệm, bất cứ điều gì. Tôi chỉ muốn nó có thể được thay đổi kích cỡ tự động so với bất kỳ thứ gì khác thay đổi khi cửa sổ và do đó bố cục được thay đổi kích thước ... –

Trả lời

5

Chỉ cần mở rộng về câu trả lời của Tyler, đây là những gì javascript là có nghĩa là cho, mặc dù tôi chút chắc chắn rằng bạn có thể đạt được thành tích này cùng sử dụng khung nhìn CSS3, bạn sẽ tốt hơn bằng cách sử dụng jQuery (đó là thường trong bộ nhớ cache của trình duyệt nhất và luôn lưu trữ trên Google vì vậy không cần phải lo lắng :)

Nếu bạn có một css như thế này:

#body #mytext { 
    font-size: 50%; 
} 

bạn có thể tự động thay đổi kích thước trong jQuery như thế này:

$(window).resize(function(){ 
    $('#body #mytext').css('font-size',($(window).width()*0.5)+'px'); 
}); 
+8

Chỉ là một FYI, bạn không phải chỉ định rằng '# mytext' là hậu duệ của' # body' trừ khi bạn đang cố gắng tăng giá trị cụ thể (điều này hoàn toàn sai nếu bạn sử dụng id) . –

+0

Nó phụ thuộc vào kịch bản, không có gì sai về việc sử dụng CSS theo cách này. Mặc dù, nó chỉ là một bản demo ... –

+3

Sai như trong cú pháp, không. Sai như trong ngữ nghĩa, vâng. –

3

Không, điều này chỉ có thể được thực hiện bằng JavaScript.

+0

như Tyler đã nói, phông chữ được tính liên quan đến phông chữ được đặt hiện tại của trình duyệt , nếu bạn sử dụng các kích thước phông chữ động như các giá trị "em" hoặc "%". Bạn phải tính toán kích thước phông chữ với javascript nếu bạn muốn có kích thước tùy thuộc vào chiều cao/chiều rộng của thẻ – r3bel

-1

Tôi đã thực hiện điều đó với jquery trong quá khứ. Hãy xem bài viết này nếu bạn quan tâm đến nó. Bạn cũng có thể sử dụng CSS để phát hiện chiều rộng thiết bị (không phải trình duyệt và nó không được hỗ trợ trong các trình duyệt cũ).

http://css-tricks.com/resolution-specific-stylesheets/

1

jquery là một tùy chọn?

siêu dễ dàng nếu nó là: fiddle

<div id="container"> 
    <p>HELLO WORLD!</p> 
</div>​ 


<script> 
$(document).ready(function() { 
    var sizeMe = ($('#container').height()/100) * 90; /* 90% of container */ 
    $('p').css('font-size', sizeMe); 
}; 
</script> 
+1

Có nhiều thuộc tính khác về mặt lý thuyết cần phải được thay đổi (tức là văn bản thụt dòng, chiều cao dòng, v.v.). –

+0

Nhưng sau đó một lần nữa, OP không hỏi về điều đó. :) –

+0

Điều này không làm việc cho tôi, ngay cả trong jsfiddle. ? –

11

Trong CSS3, có đơn vị vw, viết tắt của 1/100 chiều rộng khung nhìn. Ví dụ:

h1 { font-size: 5.5vw; } 

đặt kích thước phông chữ tiêu đề thành 5,5% chiều rộng khung nhìn.

Tuy nhiên, điều này dường như chỉ hoạt động trên IE 9 (Chế độ tiêu chuẩn). Hơn nữa, IE 9 không tự động thay đổi giá trị của đơn vị khi cửa sổ trình duyệt được thay đổi kích thước, chỉ khi tải lại.

+5

Điều này là không tương đối kích thước của container, mặc dù. –

+0

Điều này mang lại hiệu quả tương tự, nhưng bất kỳ thay đổi nào đối với kích thước của vùng chứa cho dù đó là JavaScript hay bằng cách thay đổi CSS, điều này sẽ không hoạt động hoàn toàn đúng. Người ta phải nhớ cập nhật điều này khi thay đổi kích thước của vùng chứa. –

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