2011-10-19 45 views
15

Tôi có phần tử <div> thay đổi kích thước khi cửa sổ trình duyệt đổi kích thước.HTML/CSS - điều chỉnh kích thước phông chữ để lấp đầy chiều cao và chiều rộng của bố mẹ

Bên trong <div> Tôi có một đoạn văn bản:

<div style="width:80%; height:80%; margin:10%;"> 
    <p>Paragraph of text. Paragraph of text. Paragraph of text.</p> 
</div> 

Tôi muốn các văn bản để thay đổi font-size như tôi thay đổi kích thước <div>, do đó văn bản sẽ occuypy 100% của không gian có sẵn.

Làm cách nào để đạt được hiệu ứng này?
Nó sẽ có tỷ lệ phần trăm phông chữ?
Tôi có phải sử dụng Javascript không?

Cảm ơn trước!

+0

Kích thước phông chữ 100% sẽ xem kích thước phông chữ đang sử dụng và đi tới 100% kích thước mặc định của nó. . – animuson

+0

@animuson Cảm ơn bạn đã thông tin! Đó là những gì tôi nghĩ. Bất kỳ giải pháp? –

+1

margin là gì: 80% làm gì? – Jawad

Trả lời

9

Có một plugin jquery cho việc này: http://fittextjs.com/

+4

Ồ, và bạn không dám để chúng tôi bắt bạn bằng FitText trên văn bản đoạn. Điều này chỉ dành cho văn bản hiển thị khổng lồ! – Jawad

+1

Cảm ơn các plugin! Còn gì nhẹ hơn không? jQuery là một chút béo phì cho trang web tìm kiếm tốt của tôi.:) –

+0

Có điều gì hỗ trợ các đoạn văn không? –

1

HTML

<div id="change" style="margin:10%;"> 
    <p>Paragraph of text. Paragraph of text. Paragraph of text.</p> 
</div> 

CSS

#change { 
    width: 80%; 
    height: 80%; 
    border: 1px solid black; 
    overflow: hidden; 
    font-size: 1em; 
} 

JAVASCRIPT

$(function() { 
    while($('#change div').height() > $('#change').height()) { 
     $('#change div').css('font-size', (parseInt($('#change div').css('font-size')) - 1) + "px"); 
    } 
}); 
+0

được lấy từ - http://stackoverflow.com/questions/6112660/how-to-resize-automatically-a-font-size-inside-a-div – Jawad

+0

Tại sao nên sử dụng JS, trong khi có một tùy chọn với CSS thuần túy? –

0

fittext.js không hoạt động chính xác cho tôi (plugin cho jQuery, cũng như có nguồn gốc phiên bản jquery-free), cũng không phải với việc sử dụng các thuộc tính nén, vì vậy tôi tìm thấy một giải pháp:

http://www.dhtmlgoodies.com/?whichScript=text_fit_in_box (ai đó làm việc khác)

mà hoạt động hoàn hảo cho tôi - văn bản dài hơn cũng như văn bản ngắn hơn.

Nó chỉ không phản ứng với thay đổi kích thước của cửa sổ (nó hoạt động chỉ một lần vào tải của trang), vì vậy tôi đã viết mã ngắn này để chạy nó tự động sau mỗi lần thay đổi kích thước cửa sổ (nó làm việc cho tôi):

<script> 
     function calculate_font_sizes() 
     { 
     fitTextInBox('login-h1'); 
     fitTextInBox('subtittle'); 
     } 
     calculate_font_sizes(); 
     window.addEventListener('resize', calculate_font_sizes); 

</script> 

Tôi hy vọng nó có thể giúp ích cho ai đó.

+0

Tại sao sử dụng JS, trong khi có một tùy chọn với CSS tinh khiết? –

+0

@Zeus Zdravkov: Cách nào? –

2

Những gì bạn cần là gọi vw. Ví dụ CSS: font-size: 80vw;. vw có nghĩa là chiều rộng của chế độ xem và 80vw = 80% chiều rộng màn hình thiết bị

+0

Điều gì sẽ xảy ra nếu văn bản của bạn thay đổi? Làm cách nào để đảm bảo văn bản vẫn chiếm toàn bộ không gian có sẵn? –

+0

@ SébastienTromp: Có 2 biến thể. Biến thể 1: Với tập lệnh thay đổi văn bản của bạn, cũng thay đổi thuộc tính kích thước phông chữ. Biến thể 2: Sử dụng JS để tính kích thước văn bản và sau đó đặt thuộc tính kích thước phông chữ –

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