Avatar billede claus_larsen Nybegynder
11. juni 2003 - 11:59 Der er 25 kommentarer

LineBreaks i CSS

Jeg har et problem...

Jeg benytter Z-index til at positionere et lille billede i nederste venstre hjørne af et andet billede.... Når jeg gør dette, får jeg et mellemrum som IKKE er ønsket.

http://sleepwalkers.dk/ZZZ2/

Listningen i højre side skulle gerne se ud som i venstre...





Stylesheetet
__________________________
#gametag  {

        position: relative;
        top:90 px;
        left:69px;
        z-index:2;
__________________________


Koden
__________________________
<tr>
<td><img src="GameImages/MOHAA.gif" alt="MOHAA" id="gametag"><img width="75" height="75" src="ClanImages/NEA.gif" align="left" class="Image" alt="Northern European Alliance"><div class="NewsHeader">Northern European Alliance</div>
                                <div class="Normal">Tirsdag d.17-06-2003<br><br>
                                ClanBase Match<br>
                                Baner: Algiers // Southern France<br>
                                Tid: 4x20 minutter<br>
                                Vi mangler endnu: 1 spiller
                                </td>
                            </tr>
__________________________
Avatar billede roenving Novice
11. juni 2003 - 12:09 #1
Prøv først at flytte </td> op:

Vi mangler endnu: 1 spiller</td>
Avatar billede claus_larsen Nybegynder
11. juni 2003 - 12:30 #2
Har jeg gjort... Virker ikke...

Har før oplevet at det giver problemer... Fatter ikke hvorfor den laver mellemrum når det sker...

Men... Det virkede ikke
Avatar billede roenving Novice
11. juni 2003 - 12:38 #3
Har du prøvet med:
outline:none
margin:0px

i stylesheetet
Avatar billede claus_larsen Nybegynder
11. juni 2003 - 12:46 #4
Stadig ingen forskel
Det virker som om den "reserverer" pladsen hvor billedet normalt ville være positioneret, og bare flytter billedet bagefter....

Så indholdet bliver alligevel positioneret efter den originale position!
Avatar billede roenving Novice
11. juni 2003 - 12:54 #5
så prøv at sætte clip på

clip:topafstand, højreafstand, bundafstand, venstreafstand;

ca:
clip:90px, 135px, 104px, 69px;
Avatar billede roenving Novice
11. juni 2003 - 12:54 #6
clip laver så at sige et 'vindue' man kan kigge ind på et element !-)
Avatar billede claus_larsen Nybegynder
11. juni 2003 - 12:57 #7
Desværre heller ikke
Avatar billede claus_larsen Nybegynder
11. juni 2003 - 12:59 #8
Mellemrummet er PRÆCIS 30 pixels, hvilket svarer til billedets højde (20 px) og margin-top; som er på 10 px...

Det er som om billedet tager plads, selvom man placerer det et andet sted...
Avatar billede roenving Novice
11. juni 2003 - 13:02 #9
Prøv at sætte det til position:absolute -- det kræver godt nok noget mere posotionering, men så skulle det blive ægte svævende ...

-- og jeg kigger lige efter hvad der står om position !-)
Avatar billede claus_larsen Nybegynder
11. juni 2003 - 13:03 #10
Ja, men det er jo i forhold til 0,0, og det skifter jo efter hvilken opløsning folk benytter, gør det ikke???

Prøver at lege lidt med det
Avatar billede roenving Novice
11. juni 2003 - 13:06 #11
Det var desværre som jeg frygtede:

relative
The box's position is calculated according to the normal flow (this is called the position in normal flow). Then the box is offset relative to its normal position. When a box B is relatively positioned, the position of the following box is calculated as though B were not offset.
absolute
The box's position (and possibly size) is specified with the 'left', 'right', 'top', and 'bottom' properties. These properties specify offsets with respect to the box's containing block. Absolutely positioned boxes are taken out of the normal flow. This means they have no impact on the layout of later siblings. Also, though absolutely positioned boxes have margins, they do not collapse with any other margins.

-- og du har helt ret, det kan være et helvede at få det til at fungere ;-|

Et eksempel fra et af mine projekter:

function posText(){
  for(i=1;i<=men;i++){
    punkt=document.getElementById('menupunkt'+i)
    objX=parseInt(punkt.offsetLeft)+parseInt(punkt.offsetParent.offsetLeft) +parseInt(punkt.offsetParent.offsetParent.offsetLeft) +parseInt(punkt.offsetParent.offsetParent.offsetParent.offsetLeft) +45+"px";
    objY=parseInt(punkt.offsetTop)+parseInt(punkt.offsetParent.offsetTop)+parseInt(punkt.offsetParent.offsetParent.offsetTop)+parseInt(punkt.offsetParent.offsetParent.offsetParent.offsetTop)+5+"px";
    obj=document.getElementById('menutext'+i);
    obj.style.left=objX;
    obj.style.top=objY;
  }
}
Avatar billede claus_larsen Nybegynder
11. juni 2003 - 13:08 #12
Med al respekt... Sådan noget LORT...

ARGH...

Nogen forslag til en nem løsning???
Avatar billede roenving Novice
11. juni 2003 - 13:13 #13
Jeg tænkte tidligere på en slags tabelløsning, måske kan det gøre det ?-)
Avatar billede claus_larsen Nybegynder
11. juni 2003 - 13:14 #14
Ja, det kan det.. selvfølgelig.. Det er nemt lavet, men.. Ja.. Så gør jeg da bare det!!! ;)  Ville bare gerne være popsmart og benytte CSS
Avatar billede claus_larsen Nybegynder
11. juni 2003 - 13:16 #15
Men så mister jeg muligheden for at definere ALT på begge billeder, da det ene nødvendigvis bliver en baggrund...
Avatar billede roenving Novice
11. juni 2003 - 13:24 #16
Har selv måttet give op et par gange, men en dag kommer der vel en forbi, som har fundet den geniale metode ,-)
Avatar billede claus_larsen Nybegynder
11. juni 2003 - 13:26 #17
Ja, eller også fatter CSS folkene at relavtive er noget skrammel når den reserverer pladsen først...
Avatar billede claus_larsen Nybegynder
11. juni 2003 - 13:27 #18
Hehe... Nå lyder til jeg må gå på kompromi...
Tak for hjælpen..
Avatar billede roenving Novice
11. juni 2003 - 13:30 #19
Bemærk lige denne her:

When a box B is relatively positioned, the position of the following box is calculated as though B were not offset.

hvis du nu bytter rundt på dine to billeder -- og så positionerer derfra ?-)
Avatar billede claus_larsen Nybegynder
11. juni 2003 - 14:14 #20
Så optager den jo plads et andet sted!!!
Avatar billede roenving Novice
11. juni 2003 - 14:16 #21
Jeg havde lige håbet, at vi kunne finde noget tom plads, som den ku' ligge på udfra dokument-flowet ;-(
Avatar billede claus_larsen Nybegynder
11. juni 2003 - 14:20 #22
Tjah... Det bliver jo måske nok løsningen...
Avatar billede claus_larsen Nybegynder
11. juni 2003 - 16:36 #23
Jeg fik det ordnet med tables...

Placerede billederne i en celle for sig, yderst til højre, og positionerede derfra...

Tak for hjælpen...

Det virker nu, men synes nu nok det er en underlig måde det virker på... Kan ikke se hvorfor den skal offsette fra den originale position, og reservere plads hvor elementet IKKE er, men det er nok bare mig! ;)

Hyg dig Roenving
Avatar billede roenving Novice
11. juni 2003 - 16:40 #24
Tjaeh ... relative og absolute -- et par herlige redskaber, men der er nogen oprydningsarbejde ,-)
Avatar billede kefren Nybegynder
13. juni 2003 - 09:31 #25
Lidt for sent måske, men her er alligevel et muligt svar:

Benyt trods alt position:absolute på billedet. position:absolute refererer nemlig ikke til hele skærmen, men til elementets 'containing box'. Det vil sige at hvis billedet befinder sig inde i en 'box' der er positioneret så bliver offset i forhold til denne box. Lidt kringlet, men:

Sæt boxen der indeholder billedet, altså <td> til at være relativt positioneret, men uden offset. <td style="position: relative;">
Sæt så billedet: <img (...) style="postion:absolute; top: 90; left: 69;">.

Så bliver billedet positioneret inde i <td> og der kommer ingen 'overskydende' plads.

Håber i kan bruge det i fremtiden.

NB. Netscape/Mozilla er muligvis lidt buggy ved denne fremgangsmåde. I hvert fald hvis man benytter <table style="position: relative"> i stedet for <td>. Sig til hvis har brug for et 'hack' der løser dette.
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