Mam następujące problemy przy użyciu stylów CSS do stylizowania niektórych elementów dl
i dt
. Wolę używać zawsze bardzo podstawowych plików CSS zgodnych z IE6/IE7 i nowoczesnymi przeglądarkami. Próbuję uzyskać efekt, który dla mnie powinien być raczej prosty do osiągnięcia.Stylizacja dl i dt za pomocą CSS w celu naśladowania prezentacji podobnej do tabeli
Oto okrojona wersja kodu źródłowego początkowej pracuję z, aby spróbować i działa tylko na tę kwestię:
<!DOCTYPE html>
<html>
<head>
<title>Test</title>
<style type="text/css">
.terms dl {
float: left;
padding-left: 0px;
}
.terms dt, .terms dd {
text-align: center;
margin: 0px;
float: left;
}
.terms dt {
border: solid blue 1px;
clear: left;
}
.terms dd {
border: solid red 1px;
margin-right: 40px;
margin-left: 40px;
}
</style>
</head>
<body>
<div class="terms">
<h1>Terms</h1>
<dl>
<dt>Term 1:</dt>
<dd>Very Long definition for this term here</dd>
<dt>Term 2:</dt>
<dd>Definition for term</dd>
<dt>Term 3 with longer term title:</dt>
<dd>Definition for term</dd>
<dt>Term 4:</dt>
<dd>Definition for term</dd>
<dt>Term 5:</dt>
<dd>Definition for term</dd>
<dt>Term 6:</dt>
<dd>Definition for term</dd>
</dl>
<dl>
<dt>Term 7:</dt>
<dd>Defintion for term</dd>
<dt>Term 8:</dt>
<dd>Definition for term</dd>
<dt>Term 9:</dt>
<dd>Definition for term</dd>
<dt>Term 10:</dt>
<dd>Very Long definition for this term here</dd>
<dt>Term 11:</dt>
<dd>Definition for term</dd>
<dt>Term 12:</dt>
<dd>Definition for term</dd>
</dl>
</div>
</body>
</html>
Oto efekt wizualny. I stylizowany granic niebieskie i czerwone tak, że łatwiej jest wizualizowane:
Moim celem jest mieć wszystkie niebieskie i czerwone „pola”, aby mieć tę samą szerokość bez względu na zestaw tekstu rozmiar jest . Na przykład. jeśli użytkownik ma domyślny arkusz stylów, aby tekst był bardzo duży, powinien odpowiednio się rozwinąć. Ten problem pojawia się nie tylko wtedy, gdy ludzie używają własnego arkusza stylów, ale pojawia się również w IE6, kiedy ludzie wybierają "rozmiar tekstu" inny niż "średni" - powoduje to, że tekst jest większy i chcę móc to pomieścić.
Nie sądzę, żebym chciał ustawić twardą szerokość na dowolnym z "pudełek", i nie chcę żadnego zawijania tekstu lub upuszczania pływaków z tego dwukolumnowego stylu .
Potrafię edytować odpowiedź, dodając więcej zdjęć i przykładów, jeśli nie byłam wystarczająco czytelna.
To także powiązane, ale osobne pytanie. Jeśli okno przeglądarki ma ponownie rozmiar, przy stole można się spodziewać, że część tabeli stanie się niewidoczna w miarę zmniejszania szerokości. Dzięki tej konfiguracji otrzymujesz bardzo dziwny i brzydki wynik, jak widać poniżej. Jak można tego uniknąć?
UPDATE
Wydaje się, że nie jest to rozwiązanie, które nie pociąga za sobą dając Stała szerokość do elementów (i/lub elementu tworzącego kapsułki). Ponadto, wydaje się, że zmiana wielkości tekstu w IE6 może być rozwiązana tylko poprzez twarde ustawienie tekstu w pikselach i po prostu nie pozwalając na zmianę rozmiaru.
Dlaczego więc nie używasz stołu? – zgood
Cele semantyczne, marża reprezentuje listę terminów i definicji; nie dane tabelaryczne. Chcę oddzielić semantykę marży od stylu. Według mojej wiedzy jest to celem elementu 'dl' i CSS. – user17753
Tabele nie są z natury złe, których należy unikać za wszelką cenę. Są dobre do wyświetlania, niespodzianek, tabelarycznych danych - i wygląda na to, że będą miały zastosowanie w tym przypadku. – chris