Jeśli chcesz używać display: table-cell
i pseudoelementów, możesz mieć całkiem niezłe rozwiązanie (z niewielkimi ograniczeniami).
HTML nie zmienia:
<div class="dossier_titre">
<h2>Horizon 2020, nouvelles opportunités</h2>
</div>
i można zastosować następujący CSS:
.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%;
}
dla elementu <h2>
, zestaw display: table-cell
i dodać pseudo-element po .dossier_titre
(the zawierający blok dla elementu nagłówka/tytułu). Pseudoelement jest również table-cell
i ma szerokość 100% (jest to klucz).
Ponadto, ponieważ h2
nie jest już elementem blokowym, dodaj swoje marginesy do .dossier_titre
, aby zachować odstępy wizualne w naszym układzie.
jak to działa
tworzę tabeli dwie komórki z drugą komórką (pseudo-element) o szerokości 100%.Spowoduje to uruchomienie przeglądarki, aby obliczyć szerokość zmniejszania do dopasowania pierwszej komórki (h2
), która zawiera tekst tytułu. Szerokość pierwszej komórki jest zatem minimalna, potrzebna do wyświetlenia tekstu. Dolna krawędź jest najdłuższa w wierszu tekstu w komórce tabeli.
Ograniczenia
table-cell
nie jest obsługiwana w IE7 bez hack, ale praca wokół jest dość dobrze znane i można je znaleźć w razie potrzeby.
Jeśli tytuł zawiera wiele krótkich słów, możesz uzyskać łamanie linii w nieoczekiwanych miejscach. Musisz wstawić  
, aby zachować określone słowa w razie potrzeby.
Fiddle: http://jsfiddle.net/audetwebdesign/h34pL/
plus jedna komórka ekranu wyświetlacza dla drogi \ o / –