Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z zawijaniem tekstu
Forum PHP.pl > Forum > Po stronie przeglądarki > HTML \ XHTML
Marcin_m
Nie wiem dlaczego, ale jeżeli zrobie taki prosty plik:

  1. <table width="20">
  2. <tr>
  3. <td>
  4. gggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg
  5.  
  6. </tr>
  7. </body>
  8. </html>


i zapisze w linuxie, to litera "g" idzie cały czas w lewo, a przecież po przekroczeniu 20-ego pixela szerokości tabeli powinna zejść w dół (tak jak stałoby się to gdybym ten sam plik zapisał w windowsie) zna ktoś może rozwiązanie? Bo choć plik mam sformatowany poprawnie, to nie idzie go oglądać...
revyag
A powiedz jaki jest sens wpisywania w komórce tabeli takiego długiego tekstu bez spacji ? Jak wrzucasz coś dynamicznie to możesz tekst sformatować z poziomu php.
Marcin_m
No własnie nie bardzo moge sformatowąc... wyobraż sobie sytuacje że masz niewilką tabelke, a w niej jakieś zdanie, lub ciąg znaków, które po prostu musza być obok siebie .. zresztą tu nie chodzi o to czy mozna się ztym bawić, bo sek w tym aby nie trzeba się było bawić - a w ten sposób spędzam więcej czasu nad bezsensownym formatowaniem tekstu niż nad właściwym robieniem strony.
revyag
Jeśli chodzi o cssa to możesz sobie looknąć tu ale mi ten kod nie działa, nie wiem czemu.
Możesz też to zrobić za pomocą js. Nie sprecyzujesz wtedy dokładnie szerokości komórki, ale tak na oko można to ustawić. Szerokość komórki będzie wyznaczana przez ilość liter (komórka może być rozszerzana), oczywiście rozmiar czcionki jak i sama czcionka mają na to wpływ, poza tym do całkowitej szerokości są liczone wszystkie inne znaki.
np.
  1. <td>aaaaaaaaaaaaaaaaa</td>
i
  1. <td>
  2. aaaaaaaaaaaaaaaaaaaaaaaa
  3. </td>
będą miały różną szerokość.
Kod
<script type="text/javascript">
function wrap(w) {
    
    var text = document.getElementById("col").childNodes;
    
    var out='';
    
    for(i = 0; i < text[0].nodeValue.length; i+=w) {
        out+=text[0].nodeValue.substring(i,i+w)+" ";
    }

    text[0].nodeValue=out;
}
</script>

Argumentem funkcji jest ilość liter po której będzie przełamanie wiersza.
  1. <tr>
  2. <td id="col" width="20">ggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg
  3. ggg</td>
  4. </tr>
  5. <script type="text/javascript">wrap(10)</script>
Marcin_m
jest to jakieś rozwiązanie, ale przyznasz że dość niefortunne (chcesz nagle zmienić czcionke, albo coś dodać i znów pełno zabawy). Może kwestia tkwi w formacie plików, nie wiem w tym jak je zapisuje linux... zresztą zroibłem mały teścik i skopiowałem zawartoję tego wątku, a następnie w jednej z odpowiedzi wpisałem rząd liter, oczywiście mój koszmar się potwierdził i cała strona sie rozjechała, a przeciez gdyby tu taki rząd liter wpisać wszystko byłoby ok.
wassago
Jedyne rozwiązanie to JS lub php. Za pomocą CSS'a i HTML'a tego się nie da zrobić.

edit:

A jeżeli nie robi ci różnicy poziomy scrollbar to możesz użyc 'overflow: scroll'.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.