Avatar billede steen_hansen Forsker
19. juli 2005 - 20:48 Der er 23 kommentarer og
1 løsning

align i celler

Eksempel på hvordan tekst placeres i en celle kan se sådan her ud:

HTML:
<td align="left" valign="middle">

Omskrevet til CSS:
.alignleftmiddle {
text-align: left;
vertical-align: middle;
}


Hvordan placeres en tabel på samme måde i CSS?
<td align="left" valign="top">
    <table>
        .....
    </table>
</td>


Hvordan placeres et stykke grafik på en bestemt måde i en celle?
<td align="right" valign="middle"><img border="0" src="/images/myimage.jpg" height="60" width="220" alt="Mit billede"></td>


Og ikke mindst: Hvilke parametre er der at arbejde med? Er der samme muligheder, som i gammeldaws HTML? Og gør det sig gældende, hvadenten man aligner text eller grafik?

vertical-align: bottom/middle/top;
text-align: left/center/right;
Avatar billede roenving Novice
19. juli 2005 - 21:11 #1
text-align skal i sagens natur kun virke på inline-elementer (deriblandt img-tags !-)

-- til gengæld skulle en tabel placeret i en tabelcelle også konforme til vertical-align, da der ikke er tilsvarende restriktioner på denne ...
Avatar billede steen_hansen Forsker
19. juli 2005 - 21:17 #2
Men skal text-align også benyttes til at venstrestille/centrere/højrestille både image-tags og tabeller i en celle?
Avatar billede roenving Novice
19. juli 2005 - 21:19 #3
Kun tekst og ækvivalenter, altså inline tags, hvilket table ikke er ...

-- hvis man vil centrere den slags skal man bruge margin:auto; (og huske en angiven bredde samt ikke mindst dtd-linket i IE !-)
Avatar billede steen_hansen Forsker
19. juli 2005 - 21:23 #4
Husker altid dtd-linket :)

Men hvordan kan jeg så placere en tabel/noget grafik i hhv. top/bund, til højre/til venstre?

float: right/left; i tabellen/i img-tag? Hvordan med top/middle/bottom?
Avatar billede roenving Novice
19. juli 2005 - 21:25 #5
Virker vertical-align ikke tilfredsstillende ?-)
Avatar billede steen_hansen Forsker
19. juli 2005 - 21:28 #6
DOH! Ok, men så er der lige float. Her kan jeg bruge float: left/center/right;?

Jeg arbejder lige seriøst med det her, og vender tilbage, hvis jeg render ind i for mange problemer :)

Jeg tror jeg har kørt for meget rundt i id's (#), skal lige have et bedre overblik.
Avatar billede roenving Novice
19. juli 2005 - 21:34 #7
Prøv at kigge lidt rundt på: http://blooberry.com/indexdot/css/index.html ...

-- han er som regel ret præcis og til at regne med, bl.a. fordi har har gjort sig den umage at liste de browser-mærkværdigheder, han er stødt ind i !-)
Avatar billede steen_hansen Forsker
19. juli 2005 - 22:18 #8
Fedest, jeg kigger det lige igennem :)

Forøvrigt, hvad med float? Her kan man vel anvende left/center/right?
Avatar billede steen_hansen Forsker
20. juli 2005 - 21:35 #9
Det går fint, lige indtil jeg sætter noget ind i cellerne.

Jeg satte padding til 25 i maincolumn, og går ud fra, at der skal trækkes 50px fra bredden (25px i hhv. højre og venstre side, altså 50px). Men det får menucolumn til at brede sig. Hvis jeg så kun trækker 25px fra maincolumn, så er den rigtig i MSIE, FF, Mozilla og NS, men den er gal i Opera.
Avatar billede steen_hansen Forsker
20. juli 2005 - 21:45 #10
Nej, den er også gal i NS. Sikkert også i de andre browsere.

Piller alt ud af alle celler og vender tilbage. Håber du stadig er med, roenving. Jeg sætter point op.
Avatar billede roenving Novice
21. juli 2005 - 00:10 #11
Bare for at spare dig for noget tid, så er din Netscape, FireFox og Mozilla alle baseret på Gecko-renderingsmaskinen, men måske med forskellige versionsnumre (som vist følges med Mozilla-versionen !-)
Avatar billede steen_hansen Forsker
21. juli 2005 - 00:18 #12
Ok :) Men hvorfor går det galt, når jeg lægger noget i cellerne? Som jeg har forstået det, skal man trække padding fra i begge sider:

cellebredde uden padding = 500px

ønsket padding = padding: 25px 25px 25px 25px; - eller mere simpelt - padding: 25px;

ny cellebredde inkl. padding = 500px - 50px = 450px

Har jeg forstået det korrekt?
Avatar billede steen_hansen Forsker
21. juli 2005 - 00:26 #13
style="width: 450px; padding: 25px;" skulle give en cellebredde på 500px; hvis jeg har forstået det korrekt.
Avatar billede roenving Novice
21. juli 2005 - 00:40 #14
Jepz, men det skal så sættes på alle celler, så der ingen chance er for fejlfortolkning, som kan adstedkomme, at browseren igangsætter sin ret-ud-algoritme ...

Eksempelvis vil en tabel med bredden 200 og 3 kolonner med bredde hhv. 50, 25 og 50px blive til 80, 40 og 80px, fordi browseren (mest IE, men de andre vil også finde på noget !-) vil forsøge at få det hele til at du, når nu koderen er så snotdum, at han ikke kan regne ...
Avatar billede steen_hansen Forsker
21. juli 2005 - 00:49 #15
Jeg får ikke rigtig fat i meningen i dette:

"...vil forsøge at få det hele til at du, når" ... mangler der ikke noget i din sætning? :)

Du siger, at jeg bør sætte padding ens i samtlige celler? I menu-cellen kunne jeg godt tænke mig en mindre padding end i f.eks. cellen med selve indholdet. Og er det typisk her, at fejlen opstår i Opera?
Avatar billede roenving Novice
21. juli 2005 - 00:51 #16
Nej, du skal sørge for at matematikken ikke laver den allermindste fejl ...

at du, den dur ikke, den duede godt ...
Avatar billede roenving Novice
21. juli 2005 - 00:52 #17
Den har duet !-)
Avatar billede steen_hansen Forsker
21. juli 2005 - 01:01 #18
Ah, sorry, jeg dur ikke til at læse :)

Jeg mener nu godt jeg kan regne. Jeg får det af en eller anden grund til at forskubbe sig, selvom jeg prøver at være meget omhyggelig med at trække padding ud af cellebredden. Måske går det galt, når jeg forsøger at lægge en tabel ind i en celle, og måske jeg skal lave id's med margin/border = 0 og border-collapse: collapse; samt child = { margin: 0px; border: 0px; padding: 0px; }, så jeg styrer padding direkte på cellen istedet.

Jeg vil arbejde videre på det i morgen. Foreløbig 10000 tak :)
Avatar billede steen_hansen Forsker
23. juli 2005 - 20:47 #19
Hvorfor kan jeg ikke få sat border-bottom? Border-bottom bliver ikke vist, og jeg har forsøgt at fjerne border: 0px; uden større held:

#banner {
width: 990px;
height: 90px;
vertical-align: middle;
margin: 0px;
border: 0px;
padding: 0px;
background-image: url('/images/banner/bannerbg.gif');
border-bottom: 1px solid black;
}
Avatar billede steen_hansen Forsker
23. juli 2005 - 21:17 #20
Er det nærheds-princippet, der gør sig gældende i dette tilfælde?
Avatar billede steen_hansen Forsker
24. juli 2005 - 09:39 #21
Læg et svar, roenving. Jeg starter HELT forfra og opretter et nyt spørgsmål.
Avatar billede roenving Novice
24. juli 2005 - 11:45 #22
Jeg forstår ikke hvorfor den ingen border viser, medmindre der er noget sat direkte i elementet, for så vil væsentligheds-/nærhedsprincippet træde i kraft !-)

Velbekomme '-)
Avatar billede steen_hansen Forsker
24. juli 2005 - 11:49 #23
Der er ikke sat noget direkte i elementet, så jeg forstår det heller ikke.

Jeg har forsøgt at styre det hele fra CSS, men jeg skal åbenbart sætte style på <td>.

Jeg TROR der er styr på det nu. Jeg mangler dog lige at sætte noget ind i cellerne, og det er her problemerne plejer at opstå. Så jeg vender højst sansynligt tilbage :)

Takker for hjælpen :)
Avatar billede roenving Novice
24. juli 2005 - 12:14 #24
-- og jeg takker for point ;~}
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester