Nếu bạn sẵn sàng sử dụng display: table-cell
và các phần tử giả, bạn có thể có một giải pháp khá tốt (với một số hạn chế nhỏ).
HTML không thay đổi:
<div class="dossier_titre">
<h2>Horizon 2020, nouvelles opportunités</h2>
</div>
và bạn có thể áp dụng CSS sau đây:
.zone_33 {
width: 238px;
padding: 0px;
margin: 0px;
}
.zone_33 .dossier_titre {
margin: 0px 0px 20px 0px;
}
.zone_33 h2 {
color: #616263;
font-size: 150%;
font-weight: lighter;
padding: 0px 0px 12px 0px;
background: none;
border-bottom: 1px solid grey;
display: table-cell;
text-transform: uppercase;
}
.zone_33 .dossier_titre:after {
content: "";
display: table-cell;
width: 100%;
}
Đối với các yếu tố <h2>
, thiết display: table-cell
, và thêm một phần tử giả sau .dossier_titre
(các chứa khối cho phần tử tiêu đề/tiêu đề). Phần tử giả cũng là table-cell
và có chiều rộng là 100% (đây là khóa).
Ngoài ra, vì h2
không còn là phần tử khối, hãy thêm lề của bạn thành .dossier_titre
để duy trì khoảng cách trực quan trong bố cục của chúng tôi.
cách làm việc này
tôi đang tạo ra một bảng hai tế bào với tế bào thứ hai (phần tử giả) có chiều rộng 100%.Điều này kích hoạt trình duyệt để tính toán độ rộng co lại cho vừa với ô đầu tiên (h2
) có chứa văn bản tiêu đề. Do đó, chiều rộng của ô đầu tiên là mức tối thiểu cần thiết để hiển thị văn bản. Đường viền dưới cùng miễn là dòng văn bản dài nhất trong khối văn bản bên trong ô bảng.
Hạn chế
table-cell
không được hỗ trợ trong IE7 mà không có một hack, nhưng công việc xung quanh đã được khá nổi tiếng và có thể được tìm thấy nếu cần thiết.
Nếu tiêu đề có nhiều từ ngắn, bạn có thể bị ngắt dòng ở những nơi không mong muốn. Bạn sẽ cần phải chèn  
để giữ các từ cụ thể cùng nhau khi cần.
Fiddle: http://jsfiddle.net/audetwebdesign/h34pL/
Nguồn
2013-05-06 14:55:33
cộng với một ô hiển thị bảng cho cách \ o / –