25. februar 2005 - 13:25Der er
21 kommentarer og 1 løsning
Låse tabeller i html
Jeg har oprettet et side med en masse tabeller indeni hinanden, og har brug for at kunne "låse" højde og bredde på nogle af tabellerne, så de altid bliver ved med at have den samme højde/bredde, selvom man putter mere indhold i, end der egentlig kan være.
Kan det lade sig gøre at låse tabeller på den måde, og hvordan? Jeg arbejder i Frontpage, men kan sagtens rette i koden selv, hvis ikke der er en indbygget "låsefunktion" i FP.
I lang tid har samarbejdsbranchen fokuseret på at forbedre enhedsfunktioner – bedre kameraer, klarere lyd og smartere software. Men den virkelige forvandling handler ikke om funktioner.
Der er ikke en indbygget låse-funktion på tabeller i html !-)
Metoden, du er nødt til at bruge, er at lægge elementer ind i cellerne, som kan den slags, f.eks. divs !-)
<table> <tr> <td> <div style="width:200px;height:100px;overflow:auto;"> Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Pellentesque lectus elit, sagittis at, accumsan id, dictum et, erat. Etiam non sapien. Quisque aliquet gravida mi. Integer vitae tortor quis wisi scelerisque vestibulum. Duis pulvinar magna non mauris laoreet volutpat. Aenean et purus. Cras accumsan justo sed arcu. Quisque urna. Sed mi. Ut sed nunc at lorem aliquet vulputate. Proin quis nibh. Proin ut dui vitae urna lacinia posuere. Ut vulputate purus facilisis nunc. Morbi ultrices euismod leo. Integer dui tellus, dictum in, viverra at, sagittis id, sem. Donec nonummy, sem eu hendrerit vulputate, nunc urna molestie eros, et semper nunc mi at ipsum. Praesent tempus malesuada felis. </div></td> </tr> </table>
Correction: Når jeg paster din Lorem ipsum tekst ind får jeg et fint resultat, men når jeg skriver helt almindeligt i cellen, skrider tabellen og det ser ud som om div style ikke virker...
Hvis du sætter størrelserne for cellerne kan du også bruge den til en relativ størrelse i diverne: width:100%;height:100%; ...
-- hvis cellernes højde og bredde er sat relativt, skal der udenom dem være elementer, som har en defineret størrelse, ellers er resultatet ikke til at forudse (og slet ikke cross-browser !-)
Du skriver, at "hvis cellernes højde og bredde er sat relativt, skal der udenom dem være elementer, som har en defineret størrelse, ellers er resultatet ikke til at forudse (og slet ikke cross-browser !-)" - hvad vil det sige??
Og jeg synes altså stadig ikke jeg kan få det til at virke efter hensigten... jeg har sat højden til 10px og bredden til 200px, men kan stadig have hele teksten i cellen... Gør jeg noget forkert??
-- du skriver "men kan stadig skrive lige så meget tekst jeg vil i den celle, hvor koderne ligger", men det er vel også det, du vil, ellers har det jo ikke noget med html at gøre, men er et redigerings-spørgsmål, om, hvor meget tekst, du vil tillade ...
Jeg ville gerne have det sådan, så mine tabeller ikke skrider/rykker sig/bliver større, hvis jeg skriver for meget tekst - altså at de beholder den samme størrelse, ligemeget hvor meget indhold, der kommer i. Forstår du hvad jeg mener? Med denne løsning kan jeg kontrollere cellens bredde, så den er ens lige meget hvad, mens højden på cellen ændres alt efter, hvor meget tekst der er.
Ja, når cellen er tilpas stor... men hvis jeg sætter width til 500 px og height til 10 px, så kan al min tekst stadig være der... og det var jo netop det, der var meningen, at den ikke skulle.
Ja, det var en fejl, jeg ikke fik rettet fra mens jeg testede. Resultatet er desværre det samme: Det virker ikke efter hensigten, for jeg kan stadig have alt teksten i cellen (dvs. cellens størrelse skrider på trods af div-koderne)
Det forstår jeg ikke, for kopierer jeg det, du har indsat her, og ændrer til 10px højde, får jeg præcis celler, som er 10px højde, og det både i IE og Mozilla ?-)
Doh... jo, jeg kan godt se, at det virker, når jeg nu rent faktisk får kigget på det i IE. Jeg har indtil videre kun kigget på det i FP, og der bliver scrollbaren bare ikke vist. Men så langt så godt, bortset fra, at det ikke helt var det jeg mente med spørgsmålet :-| Jeg skal bruge tabellerne på en hjemmeside, hvor der er flere, der skal opdatere indhold i tabellerne og jeg ville gerne lave tabellerne sådan, så brugeren på en eller anden måde blev forhindret i at skrive mere end der var plads til i en tabel, der fx var 400*400 px - altså som ovenstående bare uden scrollbaren.
Er det til at forstå eller udtrykker jeg mig helt sort?? :-)
-- det skal lige påpeges, at det overhovedet ikke kan anbefales at bruge de grafiske interfaces og slet ikke FrontPage, selv om det er blevet en myllion gange bedre de sidste år ...
-- det er stadig en myllion gange ringere end f.eks. DreamWeaver, der såvidt jeg ved er den bedste grafiske hjemmeside-editor, men den er altså heller ikke så god, at man skal andet end at lave sin grundopbygning i det grafiske interface og derefter fifle videre, primært i css !-)
-- jeg sidder selv for tiden og arbejder i Visual Studio .NET, som må siges at være M$s ultimative værktøj, men også der har jeg realiseret, at jeg laver det jeg skal bruge VS til færdigt, og så må jeg bagefter rette alle de ugyldige og/eller grimme html-koder i en anden editor ,-(
(Jeg glæder mig til på tirsdag at få at vide at VS.NET 2 faktisk kender til html-standarden, meneh ...)
-- mht. til den opgave, du beskriver, kan den bare ikke anbefales !-)
Man kan lave noget fifleri, som også vil virke delvist, ved efter hvert indtastet tegn at undersøge offsetHeight på tabel-cellen, og så komme med en advarsel, derefter fjerne tegn, som er i overskud, indtil højden igen er indenfor grænserne, men det er noget rod, jeg ville selv gå til ovenstående metode, så brugerne bare ville opdage, at der kom en scrollbar frem, så det blev grimmere end de havde lyst til, hvis de ikke begrænsede sig ...
PS. det delvise handler om, at siden ikke genrenderes mens et javascript kører, hvofor der i nogle tilfælde vil være mærkelige bivirkninger pga. dette ...
Jeg er helt enig med dig i dine betragtninger om FrontPage - men det er min arbejdsplads desværre ikke :-) Personligt foretrækker jeg Dreamweaver eller Notepad, når det ikke lige drejer sig om 23 tabeller, der skal vikles ind i hinanden :-)
Mht. mit problem og løsningen på det, så tror jeg det bliver som du skriver eller evt. at jeg opretter nogle templates i Photoshop, der er den rigtige størrelse til tabellerne, og så må brugerne editere teksten i Photoshop. Det er lidt en omvej og det kommer til at fylde lidt mere, men det skal bruges til intranet, så jeg hvilke maskiner og båndbredde brugerne sidder med.
Men tusind tak for hjælpen, selvom det ikke kunne lade sig gøre. Du får selvfølgelig point, hvis du vil lægge et svar.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.