2011-09-15 20 views
18

Tôi có một thẻ đoạn mà tôi đã xác định ở nơi khác với chiều cao dòng là 15px và tôi có một thẻ đoạn khác ở phía dưới trang nơi tôi muốn tạo chiều cao dòng khoảng 10px. Điều thú vị là, nó sẽ không cho phép tôi giảm xuống 10px hoặc bất cứ điều gì nhỏ hơn thế, nhưng khi tôi đặt nó thành 25px hoặc cao hơn, thuộc tính chiều cao dòng có vẻ đang hoạt động.Tại sao tính năng 'chiều cao dòng' của thuộc tính CSS không cho phép tôi tạo các không gian dòng chặt chẽ trong Chrome?

Tôi đã kiểm tra CSS có liên quan (tất cả được mã hóa bằng tay) thông qua công cụ dành cho nhà phát triển web của trình duyệt Chrome (phiên bản Chrome Firebug của Chrome) và không thể tìm thấy bất kỳ nội dung nào có liên quan. Có một lỗi CSS phổ biến mà ngăn cản tôi từ thu hẹp chiều cao dòng vượt quá một số tiền tối thiểu nhất định?

+0

bạn đã thử một cái gì đó như '{line-height: 0.75em}' nó hoạt động tốt đối với tôi. – Nathan

+0

Đồng ý, câu trả lời của mhenry chắc chắn xứng đáng giành chiến thắng về điều này. – ConorLuddy

Trả lời

-7

chiều cao dòng có liên quan đến kích thước phông chữ, bạn không thể thấp hơn bất kỳ giá trị nào trừ khi bạn khai báo lề âm.

+5

False, bạn có thể đặt 'line-height: 0.5' và văn bản của bạn sẽ chồng lên nhau. Bạn thậm chí có thể đặt nó thành '0'. –

53

Tôi đã nhận thấy trong cả Firefox lẫn Chrome rằng nếu bạn đặt loại tài liệu HTML5 có chiều cao dòng tối thiểu cho các phần tử nội tuyến. Đối với các yếu tố khối, bạn có thể đặt chiều cao dòng cho bất kỳ thứ gì bạn muốn, thậm chí làm cho các đường chồng lên nhau.

Nếu bạn không đặt loại tài liệu HTML5, không có chiều cao dòng tối thiểu cho phần tử khối hoặc nội tuyến.

+8

Bật. Ví dụ, nếu bạn có một 'span', đặt nó thành' display: block' sẽ giải quyết vấn đề này. Mặc dù tôi tự hỏi nếu đây là một tính năng dự định của tiêu chuẩn html5. Nó có vẻ rất lộn xộn với tôi. – alex

+2

Đây phải là câu trả lời được chấp thuận. Nhận ra điều này đã giải quyết được vấn đề của tôi. –

+0

Đó là quá xấu, tôi muốn có chiều cao dòng chặt hơn trong khi vẫn giữ 'display: inline' và HTML5. Bất kỳ ý tưởng nào khác có thể? – jvannistelrooy

18

Tôi chạy vào cùng một vấn đề, làm việc tốt với:

.element { display: block; line-height: 1.2; } 
+5

'khối' là màn hình chính – dlopezgonzalez

+0

: khối; trên span của tôi đã làm các trick. cảm ơn! – jimmyplaysdrums

2

Sau khi thử nghiệm này trong IE 8-11, Firefox 38.0.1 và Chrome 43, hành vi này là như nhau: yếu tố nội tuyến có một chiều cao dòng tối thiểu mà chúng sẽ không dưới đây. Có vẻ chiều cao tối thiểu này xuất phát từ số CSS spec:

Trên phần tử vùng chứa có nội dung bao gồm các phần tử nội tuyến, 'chiều cao dòng' chỉ định chiều cao tối thiểu của các hộp dòng trong phần tử. Chiều cao tối thiểu bao gồm chiều cao tối thiểu trên đường cơ sở và độ sâu tối thiểu bên dưới đường cơ sở, chính xác như khi mỗi dòng hộp bắt đầu bằng hộp nội tuyến có chiều rộng bằng 0 với thuộc tính chiều cao của phông chữ và thuộc tính. Chúng tôi gọi hộp tưởng tượng đó là "strut".

Nếu bạn muốn duy trì một số lợi ích của các yếu tố nội tuyến, bạn có thể sử dụng display: inline-block. Bạn cũng có thể sử dụng display: block. Cả hai sẽ cho phép bạn làm cho chiều cao dòng bất cứ điều gì bạn muốn trong tất cả các trình duyệt tôi đã thử nghiệm.

Hai câu hỏi liên quan để đọc hơn:

why the span's line-height is useless

The browser seems to have a minimum line-height on this block that contains text. Why?

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