18. juli 2002 - 13:49Der er
33 kommentarer og 2 løsninger
Hvilke styles i CSS?...
Jeg sidder og er ved at opdatere et design, hvor jeg har sat en masse attributer i <table> og <td>. Så har jeg læst på www.blooberry.com at næsten alle attributer er enten "deprecated" eller helt væk. Jeg har så tænkt mig udelukkende at bruge CSS til attributerne, men kan CSS klare alt?
de eneste af dem, du nbævnte jeg ikke kender i css er cellspacing, rowspan og colspan. Resten kommer her: text-align, background-image, background-color, border, padding(defineres for celler), height, vertical-align og width. Nogle nogle af dem virker dog lidt anderledes(f. eks. border)
ztyxx -> Jeg har allerede læst det, men det mangler jo nogle attributer...
hells -> text-align kan vel ikke bruges, det er jo tabeller der skal centreres og ikke tekst... Kan godt være at det virker, men det ved jeg ikke rigtig om jeg overhovedet tør at bruge, når navnet jo fortæller at det er til tekst... Hvor skal padding sættes henne? Hvad er anderledes ved border? Hvad skal man så gøre med cellspacing, rowspan og colspan?
keysersoze -> Der mangler jo stadig nogle åbenbart...
nikolajdu -> Jeg ved det godt. :-)
ALLE -> Jeg har stadig ikke forstået om alle attributer virker på alle tags, eller om det er som HTML, hvor kun nogle bestemte virker på nogle bestemte...
Der er ikke nogen CSS ekvivalent til rowspan og colspan, dem kan du bruge som før. border, cellspacing og cellpadding svarer ikke direkt til CSS ekvivalenterne
style="border:1px solid.blaxk" sætter kunne een firkantet border rundt om lige det element, hvor den gamle samtidig lavede border om tabellen og alle celler. cellspacing svarer ikke rigtig til noget. cellepadding svarer til en style="margin:..." i hver celles indhold.
en af grundene er også at du KUN tænker på tabeller - for at centrere en tabel vil det være en ide at bruge et layer (div). så lige umiddelbart kan det hele lade sig gøre, men du må ikke udelukkende sætte dig fast på tabeller men kigge på de andre muligheder der foreligger
jacoba -> Så kan CSS jo heller ikke bruges til alt... Jeg synes virkelig CSS har mange mangler og latterlige opbygninger nu! Synes bare dem der nu laver det skulle enten droppe det helt eller bare se at få alt proppet ind i CSS og så få det bygget mere logisk op, end det er pt. Det er da bestemt ikke smart hvis man skal fylde alle sine filer op med flere MB margin, margin, margin, margin, margin...
keysersoze -> Hvis jeg sætter en <div align=center> så bruges der jo heller ikke CSS... Og det er da skørt at sætte en tabel ind i en <div> fordi den skal centreres, når man altid har kunne sætte en lille enkel align=center i selve table...
startlinket >> Jeg er enig med dig et stykke af vejen. Der er en del ting i CSS burde være MEGET bedre gennemtænkt. fx det kaos der er omkring name= og id= attributter.
men netop den der align='center' er jeg nu glad for at komme af med for den var tåbelig FØR CSS. Betyder det at dette html-element skal centreres i sin container eller bedyder det at det der står indni dette element skal centreres lokalt i dette html element? Det har begge betydninger i 'gammel' html altefter hvilken kommando det står i, og det var ikke smart :-))
keysersoze -> Så er det vel præcis det samme som at centrere en tabel... Forstår ikke dette: "Betyder det at dette html-element skal centreres i sin container eller bedyder det at det der står indni dette element skal centreres lokalt i dette html element? Det har begge betydninger i 'gammel' html altefter hvilken kommando det står i, og det var ikke smart"
style="align:center" vil altid centrere det der er indeni den html-kommando det står i (derfor den der <div udenom tabellen). <table align='center'> placerer tabellen midti dens omgivelser <td align='center'> centrerer den tekst der står indeni den tabelcelle.
man BURDE kunne centrere i CSS med margin:0px auto; idet auto så tager den tilgængelige friværdi i x-aksen. Jeg kan dog ikke rigtig få det til at virke. De næste generationer af HTML bliver radikalt forskellige fra dem vi kender i dag. Allerede på nuværende tidspunkt er det muligt at lave en hel side udelukkende ved hjælp af f.x. et <font> tag. er du i tvivl så prøv <font style="display:block;height:100px;width:100px;overflow:auto;font-size:30px;"> En<br /> font<br /> der<br /> ligner<br /> en<br /> div<br /> </font> De næste generationer af tags bliver defineret ud fra deres funktion alene og indeholder ingen layout information overhovedet. Den del bliver styret knivskarpt af CSS. Deprecated betyder at selvom funktionen stadig er understøttet, frarådes brugen da den vil blive fjernet i fremtidige versioner. Der gælder således: 1) HTML Transistional - supported and deprecated 2) HTML Frameset - som ovenfor, men kan validerere uden <body> 3) HTML Strict - supported only
Så er der vel ikke andet for end at bruge <div style="align: center"> Jeg vil prøve at kigge på det, men hvad skulle man gøre ved cellspacing, colspan og rowspan så?
colspan og rowspan er da ikke deprecated. bare brug dem. cellspacing er værre, du kommer nok til at eksperimentere dig frem til samme effekt fx padding i de enkelte <td og <table kommandoer.
cellspacing/-padding er IKKE det samme som padding. De kaldes også anderledes dynamisk. Object.cellSpacing = [int]; om jeg ikke husker galt. Ej heller spans kan sættes i CSS, men det kommer....
Efter hvad jeg kan se virker CSS som en slags meget tidlig beta udgave, som der langt fra indeholder alle attributer. Så jeg synes bestemt ikke det virker særlig smart at man skal have halvdelen af attributerne sat i selve HTML-koden og resten i CSS. Så bliver det igen sådan noget med at man hele tiden skal være opmærksom på hvornår de forskellige ting og sager kommer i CSS. Og jeg har endnu ikke forstået om alle attributer kan sættes til alle tags i CSS... F.eks. kan man bruge border i en a tag?
Du kan lave en funktion som denne. Med den kan du se hvilke style der er for et objekt, og hvad værdien er. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html><head><title>Untitled</title> <script type="text/javascript"> function tell(obj) { ret=""; flip = false; for (val in obj.style) { ret+=val +"\t"+ obj.style[val]; ret+=(flip)?"\t":"\n"; flip=!flip; } alert(ret); } </script></head> <body> <div id="d" onclick="tell(this);">Se styles for <div></div> <a href="#" id="a" onclick="tell(this);">Se styles for <a></a> </body></html>
Jo for pokker du kan bruge det til noget, den fortæller dig javascript navnene for styles i objektet sammen med deres værdier.
Desværre opretter IE alle style navne hvadenten der er i brug eller ikke, så den er lidt overvældende, men hvis du filtrerer de 'værdiløse' fra kan du se hvad du har sat.
startlinket.dk> du spørger dig selv. Er border definereret for <select>? du bruger min funktion. du ser ikke border noget sted. AHA! Border er ikke defineret for <select> Simple as that.
=maddog= -> Jeg er ikke meget for sådan noget med at man bare tester om det virker, og hvis det gør, så bruger man det. Jeg vil hellere læse det f.eks. i en manual, så jeg kan være helt sikker på at det findes.
pelkjaer -> Tak tak... Den skulle indeholde alt, eller hvad?
Nå, men det fik jeg så ikke så meget ud af, synes stadig CSS har en masse mangler. Men det eneste svar jeg sådan set kunne bruge er hells', så du får bare 15 point for det. Havde jo håbet på I kunne finde på noget jeg skulle gøre ved cellspacing, colspan og rowspan. Jeg vil derfor prøve mig lidt frem selv. :-)
Jeg har lige været forbi w3.org, og se på css og tabeller, det er utrolig detaljeret, prøv at tjek det ud !!! Link -> http://www.w3.org/TR/REC-CSS2/tables.html MVH Chriscross
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.