Daca ai incercat vreodata sa obtii un table cu border de 1px, primul lucru pe care l-ai facut a fost sa scrii asta: < table border = ” 1 ” bordercolor = ” #000000 ” > etc. Dar daca incerci sa vezi asta intr-un browser, borderul e de fapt intotdeauna de 2px. DE CE? Pentru ca, atunci cand definesti borderul de 1px, el este mostenit automat si de td-uri, si din alaturarea celor 2 pixeli adiacenti (1 de la table si 1 de la td) rezulta borderul ala deranjant de 2px grosime. Ca sa intelegi mai bine ce se intampla, poti folosi la definirea table-ului si proprietatea cellspacing=”5″ – abia atunci o sa vezi cum, de fapt, borderul este de 1px… Cele 2 situatii arata cam asa:
Ce e de facut, daca vrei totusi sa obtii un border fin, de fix 1px? Folosesti un mic truc:
< table cellspacing = ” 1 ” bgcolor = ” #000000 ” > … urmand ca apoi, din CSS, sa faci in asa fel incat celulele tabelului sa AIBA un background-color. In felul asta, ne-avand un border la tabel, dar avand un cell-spacing de 1px, acel spacing (spatiul dintre celule) va fi exact ceea ce se va vedea in spatele celulelor tabelului, printre ele: adica background-ul tabelului. Care va arata exact ca un border, doar ca de data asta va fi de fix cat ii zicem noi: de 1px.
Mai exista si o solutie CSS Level 2 care pe mine ma scos din impas pentru un site intreg in care tabelele aratau mult mai groaznic decat primul tabel:
< table border = " 1 " cellpadding = " 5 " style = " border-collapse: collapse; border : 1px solid black ; " >
…
Pentru tabele CSS L2 defineste 2 tipuri de border-collapse… evident default este “separated”… opusul lui “collapse”
In modelul collapse border-ele unei celule se suprapun cu border-ele celulelor adiacente sau cu border-ele tabelului… oferind astfel un BORDER de fix 1px 🙂
Read on: http://www.w3.org/TR/CSS21/tables.html#borders
Sa stii ca eu tot nimic nu inteleg, dar continui sa citesc de fiecare data, ca deh daca prietenii nu incearca sa se inteleaga unii pe altii atunci cine sa o faca. Deci daca maine o a ma auzi vorbind de pixeli si borderuri daca e lume prin preajma sa nu ma corectezi macar ca ma mai dau si eu mare cu ce am citit pe la tine. Deci tu tine-o tot asa ca fara sa vrei contribui si la upgradarea nivelului meu de cunostinte despre subiectul in cauza de la inexistent la total confuz.
Te pupa tata si nu te lasa.
Da, solutii exista multe pentru problema asta, eu am propus-o aici pe cea mai rudimentara, probabil. (Ce am propus eu e mai mult un trick decat o solutie.) Evident ca, mai ales pentru un css-freak ca mine, 99% din solutii se rezolva prin alocarea unei clase, urmata de definirea ei intr-un fisier extern. Multzam pentru contributie! 🙂