Avatar billede nwn Nybegynder
26. oktober 2008 - 17:00 Der er 23 kommentarer og
1 løsning

CSS button via. 3 billeder.

Hej.

Kan simpelthen ikke finde en løsning, og har søgt i en del tid på google, uden at finde noget der passer præcist.

Har lavet 3 små billeder, left, middle og right. Billedet middle har en bredde på 1px, så jeg blot i dokumentet, alt efter hvor meget tekst der står på knappen, så bliver billedet middle breddere.

Mit problem er så, at jeg ikke kan få koblet alle disse 3 billeder sammen. Jeg har prøvet med <img> til left og right, og CSS (Class) til selve knappen (Selve knappen laves med <input type="button">) Virkede så ikke.

Noget lignende:

.button_left {
hent-baggrunds-billede-left
width: 7px;
height: 18px;
}
.button_right {
hent-baggrunds-billede-right
width: 7px;
height: 18px;
}
.button {
hent-baggrunds-billede-midten
width: 1px;
height: 18px;
border: 0px;
}

Når jeg så vil have det udskrevet, får jeg det simpelthen ikke til at se ordenligt ud. F.eks:

<div class="button_left"></div><input type="button" class="button" value="Tekst her"><div class="button_right"></div>

Det virker ik, det kommer ik til at stå på samme linie. Bruger jeg så nogt float: left, virker det heller ikke, da selve knappen laves via <input> og ikke er inde for noget <div>.

At bruge <span> fremfor <div> går ikke, da der så skal indhold til, og jeg kan ikke vide hvilke skærmstørrelser og browsere andre har, og det fucker også linien op, hvis jeg f.eks indtaster &nbsp;&nbsp;&nbsp; indenfor hver <span> så.

Nogle ideer?
Avatar billede w13 Novice
26. oktober 2008 - 17:02 #1
Brug span-elementer i stedet for div-elementer. Div-elementer er block-level, hvilket vil sige, at de som standard rykker ned på deres egen linje. Span derimod er inline og gør det, du ønsker.
Avatar billede w13 Novice
26. oktober 2008 - 17:06 #2
Sorry, havde ikke læst det hele. 2 sek. så har jeg en løsning.
Avatar billede roenving Novice
26. oktober 2008 - 17:08 #3
Hvad med at bruge en input type=image ?-)

-- eller også sætte det i en div og så en omkransende ting, f.eks.

<div style="height:18px;">
  <div id="foran" class="kantbillede">&nbsp;</div>
  <div id="billedeknap" onclick="goerNoget();">Tekst her</div>
  <div id="foran" class="kantbillede">&nbsp;</div>
</div>
Avatar billede w13 Novice
26. oktober 2008 - 17:09 #4
Det ville nok være lettest at lave med img'er, men det siger du jo, du har prøvet. Hvordan virkede det ikke?
Avatar billede roenving Novice
26. oktober 2008 - 17:10 #5
-- og har du problemer med at bruge &nbsp; sætter du bare font-size og line-height til en meget lille værdi, f.eks. 0 !-)
Avatar billede w13 Novice
26. oktober 2008 - 17:12 #6
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
    <head>
   
        <title>CSS-knap</title>
       
        <style type="text/css">
        .button_left {
        float: left;
        margin-right: 0;
        background-color: red;
        width: 7px;
        height: 18px;
        }
        .button_right {
        float: left;
        margin-left: 0;
        background-color: red;
        width: 7px;
        height: 18px;
        }
        .button {
        float: left;
        margin-left: 0;
        margin-right: 0;
        background-color: blue;
        height: 18px;
        border-width: 0;
        }
        </style>
       
    </head>
    <body>
       
        <div>
            <div class="button_left"></div><input type="button" class="button" value="Tekst her"><div class="button_right"></div>
        </div>
       
    </body>
</html>

Sådan her f.eks.
Avatar billede nwn Nybegynder
26. oktober 2008 - 17:30 #7
Kommentar: roenving
26/10-2008 17:08:35 ->

Holder ik. <input type="image"> reagerer ligesom <img> og ændre billedets højde-placering.

Vil ik bruge <div id="knap">. Skal være en <input type="button"> da teksten så også rykker sig automatisk, ved tryk :-)

Kommentar: roenving
26/10-2008 17:10:03 ->

Hjælper ik, for ved span bliver kun det udfyldte vist, dvs. at det småt så det ik bliver vist, jamen så bliver billedet slet ikke vist.

Kommentar: w13
26/10-2008 17:12:49 ->

Prøver jeg lige.
Avatar billede nwn Nybegynder
26. oktober 2008 - 17:34 #8
Knappen er samlet som den skal, dog er den rykket ned på næste linie, hvilket fucker menuen en lille smule up =P

En løsnign til dette?
Avatar billede nwn Nybegynder
26. oktober 2008 - 17:38 #9
http://www.jubii.dk/ har lavet tricket ude i højre side, lige under "Jubii som startside"

Deres CSS-dokument er dog for indviklet til, jeg lige kan gennemskue det. Prøvede, uden held.
Avatar billede w13 Novice
26. oktober 2008 - 17:46 #10
Løsningen på at knappen rykker ned på næste linje er vist bare, at du laver den omkransende div til display:inline;

Dog utestet.
Avatar billede nwn Nybegynder
26. oktober 2008 - 17:54 #11
Virkede desværre heller ikke =(
Avatar billede olebole Juniormester
26. oktober 2008 - 17:55 #12
<ole>

Du vil let få problemer, hvis du floater elementerne og/eller bruger inline-elementer. Jubiis løsning kan heller ikke stå på samme linje som andet indhold - den vil også skabe linjeskift før og efter knappen  =)

/mvh
</bole>
Avatar billede w13 Novice
26. oktober 2008 - 17:56 #13
Ja, det er ikke sådan lige at lave det, du ønsker, tror jeg. Ikke uden at du så oplever andre ulemper. Men kan være, jeg leger lidt med det.
Avatar billede nwn Nybegynder
26. oktober 2008 - 17:56 #14
Det virker fint, hvis der INTET er ved siden af knappen. Har lige nu et tekstfelt ved siden af (<input type="text">) men blot der er et bogstav, så hopper knappen også ned på næste linie.
Avatar billede nwn Nybegynder
26. oktober 2008 - 17:59 #15
Så kører vi.

Din display: inline, skulle blot være position: aboslute; ;)
Avatar billede w13 Novice
26. oktober 2008 - 18:01 #16
:)
Avatar billede w13 Novice
26. oktober 2008 - 18:03 #17
Tak for points! :)
Avatar billede nwn Nybegynder
26. oktober 2008 - 18:03 #18
Jeg takker for din hjælp. Sad blot lige og prøvede de forskellige metoder fremfor display: inline, og så kom den pludselig =)
Avatar billede olebole Juniormester
26. oktober 2008 - 18:08 #19
Misforstår jeg, eller får I ikke sære resultater med:

        blabla inden
        <div style="position:absolute">
            <div class="button_left"></div><input type="button" class="button" value="Tekst her"><div class="button_right"></div>
        </div>
        og blabla efter
Avatar billede nwn Nybegynder
26. oktober 2008 - 18:19 #20
Du må misforstå så, nej, kun perfekte resultater.
Avatar billede olebole Juniormester
26. oktober 2008 - 18:25 #21
- så er jeg ret overbevist om, vi taler om vidt forskellige koder  :)
Avatar billede nwn Nybegynder
26. oktober 2008 - 18:51 #22
Tja, ser egentlig ud til at grunden til det virker, er pga. ie's "overtrædelser"
Avatar billede olebole Juniormester
26. oktober 2008 - 18:58 #23
Måske endda en kombination af flere overtrædelser. Husker du at bruge en fuldt kvalificeret DTD? F.eks:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
Avatar billede nwn Nybegynder
26. oktober 2008 - 20:48 #24
Ja, selvfølgelig..
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