webForumDet fria alternativet

Centrerade sida vid sida knappar med bakgrund.

6 svar · 579 visningar · startad av franx

franxMedlem sedan feb. 20085 inlägg
#1

Hej!

Jag har försökt göra centrerade knappar med en bildbakgrund. Jag skapar en länk och sätter display:block...sedan är det kört. Det är helt omöjligt att få dem centrerade på en sida.

Jag har försökt med listor, vanliga länkar och allt. Men så fort display:block kommer in i leken är det kört.

Kan någon visa mig ett exempel på HTML och CSS ska se ut för att få dem centrerade? Jag har letat och letat överallt på alla möjliga sidor...men INGEN har exempel på hur det ska se ut.

Jag vill att:
1. Knapparna ska ligga sida vid sida...men en liten marginal emellan dem.
2. Vara helt centrerade.
3. Ha en bildbakgrund.

Kan någon vänlig själv visa mig hur man löser detta problem?

jarvkloMedlem sedan juli 20013 378 inlägg
#2

Hmm..

det närmaste jag kom i artikelväg var den här: http://24ways.org/2005/centered-tabs-with-css

Så jag utgick från den och fick fram det här:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="sv" lang="sv">
<head>
  <title>Ett av jarvklos exempel</title>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<style type="text/css">
html, body {margin:0;padding:10px;}

#menu ul, 
#menu ul li {
     list-style: none;
     margin: 0;
     padding: 0;
 }

#menu ul {
     text-align: center;
/* hack: 
   extra padding för att undvika klippning av border-top 
   och border-bottom på knapparna i  MSIE7 */
     padding-bottom: 2px;
     padding-top: 2px;
 }

#menu ul li {
     display: inline;
}

#menu ul li a {
/* mellanrum mellan knapparna */
     margin-left: 2px;
     margin-right: 2px;
/* höjd - "em-summan" mellan line-height och padding+text 
   måste stämma för browseroberoende (empirisk slutsats!) */
     padding: .5em;
     line-height: 2em;

/* Utseende */

     background-color: #eee;
     border: 1px solid black;
     padding-left: 35px;
     background-image: url('snow-duck_32.gif');
     background-repeat: no-repeat;
     background-position: 0 2px;
}

</style>

</head>

<body>
<p>
Följande exempel bygger på en modifiering av den metod som beskrivs i 
<a href="http://24ways.org/2005/centered-tabs-with-css">
http://24ways.org/2005/centered-tabs-with-css</a>
</p>
<div id="menu">
<ul>
<li><a href="#"><span>Fee</span></a></li>
<li><a href="#"><span>Fie</span></a></li>
<li><a href="#"><span>Foe</span></a></li>
<li><a href="#"><span>Fum</span></a></li>
</ul>

</body>
</html>

Testa

Hoppas du har nytta av det :birp

franxMedlem sedan feb. 20085 inlägg
#3

jarvklo skrev:

Hmm..

det närmaste jag kom i artikelväg var den här: http://24ways.org/2005/centered-tabs-with-css

Så jag utgick från den och fick fram det här:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="sv" lang="sv">
<head>
  <title>Ett av jarvklos exempel</title>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<style type="text/css">
html, body {margin:0;padding:10px;}

#menu ul, 
#menu ul li {
     list-style: none;
     margin: 0;
     padding: 0;
 }

#menu ul {
     text-align: center;
/* hack: 
   extra padding för att undvika klippning av border-top 
   och border-bottom på knapparna i  MSIE7 */
     padding-bottom: 2px;
     padding-top: 2px;
 }

#menu ul li {
     display: inline;
}

#menu ul li a {
/* mellanrum mellan knapparna */
     margin-left: 2px;
     margin-right: 2px;
/* höjd - "em-summan" mellan line-height och padding+text 
   måste stämma för browseroberoende (empirisk slutsats!) */
     padding: .5em;
     line-height: 2em;

/* Utseende */

     background-color: #eee;
     border: 1px solid black;
     padding-left: 35px;
     background-image: url('snow-duck_32.gif');
     background-repeat: no-repeat;
     background-position: 0 2px;
}


</style>

</head>

<body>
<p>
Följande exempel bygger på en modifiering av den metod som beskrivs i 
<a href="http://24ways.org/2005/centered-tabs-with-css">
http://24ways.org/2005/centered-tabs-with-css</a>
</p>
<div id="menu">
<ul>
<li><a href="#"><span>Fee</span></a></li>
<li><a href="#"><span>Fie</span></a></li>
<li><a href="#"><span>Foe</span></a></li>
<li><a href="#"><span>Fum</span></a></li>
</ul>

</body>
</html>

Testa

Hoppas du har nytta av det :birp

Tack. Har inte hunnit testa det på mitt exempel. Jag ser att du struntade i "block". Ja, jag har testat det med och använt padding för att få fram bakgrunden. Men det har inte riktigt fungerat för mig. Har haft en fast bakgrund som är 22 px hög och 78 pixlar bred (bild med knapp). Men hade i detta fall tänkt göra nåt liknande som denna sida:
http://www.dynamicdrive.com/style/csslibrary/item/bold_css_buttons/

Så att knappen kan "växa" i bredd vid behov.

Ska laborera lite med ditt exempel och se vad jag kan göra. HAr lite följdfrågor dock.

"/* höjd - "em-summan" mellan line-height och padding+text
måste stämma för browseroberoende (empirisk slutsats!) */
padding: .5em;
line-height: 2em;"

Fungerar det inte lika bra med px? Använder sällan "em".

"/* hack:
extra padding för att undvika klippning av border-top
och border-bottom på knapparna i MSIE7 */
padding-bottom: 2px;
padding-top: 2px;"

Vad är detta för bugg i MSIE7? Var kan jag läsa mera om den?

Tack för hjälpen hittils...jag återkommer efter att labben.

webbebbaMedlem sedan juni 200573 inlägg
#4

Hejsan,
På en av mina sidor http://dammkullen.com/malin/ har jag en länklista. Bilden ser du bara när du hovrar och mellanrum får du lägga till men du kan ju själv laborera. Jag tycker nog att Jarvklos exempel var enklare och smidigare men det kan ju vara kul att se olika lösningar :)

#navbar {
margin: 0;
padding: 0;
text-align: center;
position: absolute; top: 101px; left: 0;
width: 718px; height: 35px;
background: #2fa8ae;
border-left: 1px solid #000000;
border-right: 1px solid #000000;
}

#navbar a {
font: normal 11px verdana, sans-serif;
text-decoration: none;
color: #ffffff;
height: 35px;
}

#navbar a:hover {
color: #D4A48F;
background: #027886 url(bilder/tab_over.gif) 50% 0 repeat-x;
}
#tabs {
height: 35px;
width: 100%;
}

#tabs ul {
margin: 0;
padding: 0 0 0 110px;
float: left;
list-style: none;
}
#tabs li {
float: left;
padding: 0;
margin: 0;
}
#tabs a {
float: left;
display: block;
padding: 6px 15px 0 20px;
line-height: 22px;
}

franxMedlem sedan feb. 20085 inlägg
#5

webbebba skrev:

Hejsan,
På en av mina sidor http://dammkullen.com/malin/ har jag en länklista. Bilden ser du bara när du hovrar och mellanrum får du lägga till men du kan ju själv laborera. Jag tycker nog att Jarvklos exempel var enklare och smidigare men det kan ju vara kul att se olika lösningar :)

#navbar {
margin: 0;
padding: 0;
text-align: center;
position: absolute; top: 101px; left: 0;
width: 718px; height: 35px;
background: #2fa8ae;
border-left: 1px solid #000000;
border-right: 1px solid #000000;
}

#navbar a {
font: normal 11px verdana, sans-serif;
text-decoration: none;
color: #ffffff;
height: 35px;
}

#navbar a:hover {
color: #D4A48F;
background: #027886 url(bilder/tab_over.gif) 50% 0 repeat-x;
}
#tabs {
height: 35px;
width: 100%;
}

#tabs ul {
margin: 0;
padding: 0 0 0 110px;
float: left;
list-style: none;
}
#tabs li {
float: left;
padding: 0;
margin: 0;
}
#tabs a {
float: left;
display: block;
padding: 6px 15px 0 20px;
line-height: 22px;
}

Problemet med Jarvklos exempel är att det var bara en "bullet" bild. Alltså inte en "hel bild". Så det fungerade inte för mig. Jag tittar på ditt exempel och se om det kan fungera med mina knapp bilder.

jarvkloMedlem sedan juli 20013 378 inlägg
#6

franx skrev:

Har haft en fast bakgrund som är 22 px hög och 78 pixlar bred (bild med knapp). Men hade i detta fall tänkt göra nåt liknande som denna sida:
http://www.dynamicdrive.com/style/c...ld_css_buttons/

Sedär - ny information som vänder lite uppochned på de förutsättningar jag lyckades uttyda ur din första fråga ;)

franx skrev:

Fungerar det inte lika bra med px? Använder sällan "em".

Klart det gör, men eftersom jag till vardags jobbar med bl.a. webbtillgänglighet slog mig aldrig tanken att använda det eftersom du varken angav mått eller vad det egentligen var du var ute efter i måttväg ;)

franx skrev:

Problemet med Jarvklos exempel är att det var bara en "bullet" bild. Alltså inte en "hel bild".

Ehm - Kolla igen... ;)
Prova t.ex. att ta bort stilen "background-repeat: no-repeat och lägga in en bättre täckande bild... ;)

Återigen, det du efterfrågade gick uppenbarligen att tolka på flera sätt ;)

Men hursomhelst,
Jag har korpat två bilder från artikeln du angav som det du ville kunna uppnå, och gjort om CSS:en lite (samma XHTML-kod gäller) bara för att visa att det funkar ;)

Vassego:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="sv" lang="sv">
<head>
  <title>Ett av jarvklos exempel</title>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<style type="text/css">
html, body {margin:0;padding:10px;}

#menu ul, 
#menu ul li {
     list-style: none;
 }

#menu ul {
     text-align: center;
     margin: 0;
     padding: 8px 0;  /* top/bottom samma värde som nedan */
 }

#menu ul li {
     display: inline;
     
}

#menu ul li a {
     text-decoration: none;
     /* 
     Plats för bakgrundsbild - vänster
     höjd = 14 + 8 + 8 i exemplet (fontsize+paddingtop+paddingbottom)
     */
     font-size: 14px;
     padding: 8px 0 8px 8px;  /* top, 0, bottom, left */
     background-image: url('roundedge-green-left.gif');
     background-repeat: no-repeat;
     background-position: left top;
}

#menu ul li a span {
     /* 
     Plats för bakgrundsbild - höger
     höjd = 14 + 8 + 8 i exemplet (fontsize+paddingtop+paddingbottom)
     */
     font-size: 14px;
     padding: 8px 8px 8px 0;  /* top, right, bottom, 0 */
     color: white;
     background-image: url('roundedge-green-right.gif');
     background-repeat: no-repeat;
     background-position: right top;
}

</style>
<!-- 
	villkorlig kommentar för att hacka om padding-top, 
	Använder denna istället för det hack som nämns i artikeln 
	(som f.ö. inte funkar i MSIE7, vilket inte är så konstigt 
	iom att artikeln är tre år gammal)
	resonemang kring varför hacket behövs - se 24ways-artikeln.
-->

<!--[if lte IE 7]>
<style type="text/css">
#menu ul li a {padding-top: 0;}
</style>
<![endif]-->

</head>

<body>
<p>
Följande exempel bygger på en modifiering av den metod som beskrivs i 
<a href="http://24ways.org/2005/centered-tabs-with-css">http://24ways.org/2005/centered-tabs-with-css</a>
till användning av sliding doors-knappar med fast höjd (bilderna i exemplet är norpade från 
<a href="http://www.dynamicdrive.com/style/csslibrary/item/bold_css_buttons/">http://www.dynamicdrive.com/style/csslibrary/item/bold_css_buttons/</a>)
</p>
<p>Observera att saker som t.ex. fetstil och fontval kan påverka höjdmåtten och 
att ändringar i dessa kräver ändringar i font-size, padding-top 
samt padding-bottom på lämpliga ställen i exemplet (se kodkommentarer och artikeln från 24ways för detaljer)!
</p>
<div id="menu">
<ul>
<li><a href="#"><span>Fee</span></a></li>
<li><a href="#"><span>Fiiiie</span></a></li>
<li><a href="#"><span>Foe</span></a></li>
<li><a href="#"><span>Fummmelifum</span></a></li>
</ul>
</div>
</body>
</html>

testa

Eftersom exemplet jobbar med inline-element får du meka med padding-top + padding-bottom + font-size när du sätter totala knapphöjden (+ att saker som fetstil även påverkar den verkliga höjden av typsnittetså att du får kompensera för det i värdena om du vill ha fet text i knapparna)

... men det framgår, som sagt, av 24ways-artikeln också ;)

Lycka till :birp

franxMedlem sedan feb. 20085 inlägg
#7

jarvklo skrev:

Sedär - ny information som vänder lite uppochned på de förutsättningar jag lyckades uttyda ur din första fråga ;)

Klart det gör, men eftersom jag till vardags jobbar med bl.a. webbtillgänglighet slog mig aldrig tanken att använda det eftersom du varken angav mått eller vad det egentligen var du var ute efter i måttväg ;)

Ehm - Kolla igen... ;)
Prova t.ex. att ta bort stilen "background-repeat: no-repeat och lägga in en bättre täckande bild... ;)

Återigen, det du efterfrågade gick uppenbarligen att tolka på flera sätt ;)

Men hursomhelst,
Jag har korpat två bilder från artikeln du angav som det du ville kunna uppnå, och gjort om CSS:en lite (samma XHTML-kod gäller) bara för att visa att det funkar ;)

Vassego:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="sv" lang="sv">
<head>
  <title>Ett av jarvklos exempel</title>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<style type="text/css">
html, body {margin:0;padding:10px;}

#menu ul, 
#menu ul li {
     list-style: none;
 }

#menu ul {
     text-align: center;
     margin: 0;
     padding: 8px 0;  /* top/bottom samma värde som nedan */
 }

#menu ul li {
     display: inline;
     
}

#menu ul li a {
     text-decoration: none;
     /* 
     Plats för bakgrundsbild - vänster
     höjd = 14 + 8 + 8 i exemplet (fontsize+paddingtop+paddingbottom)
     */
     font-size: 14px;
     padding: 8px 0 8px 8px;  /* top, 0, bottom, left */
     background-image: url('roundedge-green-left.gif');
     background-repeat: no-repeat;
     background-position: left top;
}

#menu ul li a span {
     /* 
     Plats för bakgrundsbild - höger
     höjd = 14 + 8 + 8 i exemplet (fontsize+paddingtop+paddingbottom)
     */
     font-size: 14px;
     padding: 8px 8px 8px 0;  /* top, right, bottom, 0 */
     color: white;
     background-image: url('roundedge-green-right.gif');
     background-repeat: no-repeat;
     background-position: right top;
}

</style>
<!-- 
	villkorlig kommentar för att hacka om padding-top, 
	Använder denna istället för det hack som nämns i artikeln 
	(som f.ö. inte funkar i MSIE7, vilket inte är så konstigt 
	iom att artikeln är tre år gammal)
	resonemang kring varför hacket behövs - se 24ways-artikeln.
-->

<!--[if lte IE 7]>
<style type="text/css">
#menu ul li a {padding-top: 0;}
</style>
<![endif]-->

</head>

<body>
<p>
Följande exempel bygger på en modifiering av den metod som beskrivs i 
<a href="http://24ways.org/2005/centered-tabs-with-css">http://24ways.org/2005/centered-tabs-with-css</a>
till användning av sliding doors-knappar med fast höjd (bilderna i exemplet är norpade från 
<a href="http://www.dynamicdrive.com/style/csslibrary/item/bold_css_buttons/">http://www.dynamicdrive.com/style/csslibrary/item/bold_css_buttons/</a>)
</p>
<p>Observera att saker som t.ex. fetstil och fontval kan påverka höjdmåtten och 
att ändringar i dessa kräver ändringar i font-size, padding-top 
samt padding-bottom på lämpliga ställen i exemplet (se kodkommentarer och artikeln från 24ways för detaljer)!
</p>
<div id="menu">
<ul>
<li><a href="#"><span>Fee</span></a></li>
<li><a href="#"><span>Fiiiie</span></a></li>
<li><a href="#"><span>Foe</span></a></li>
<li><a href="#"><span>Fummmelifum</span></a></li>
</ul>
</div>
</body>
</html>

testa

Eftersom exemplet jobbar med inline-element får du meka med padding-top + padding-bottom + font-size när du sätter totala knapphöjden (+ att saker som fetstil även påverkar den verkliga höjden av typsnittetså att du får kompensera för det i värdena om du vill ha fet text i knapparna)

... men det framgår, som sagt, av 24ways-artikeln också ;)

Lycka till :birp

Tack för det nya exemplet. Ska meka lite med det idag. Jo, det kom fram lite ny information. Ändrade mig en aning efter jag hade postat inläget. Jag hade nöjd mig med antingen att köra en knapp som växer (som i artikeln) eller en fast knapp (som jag hade tänkt i början).

Provade att padda mig fram förut. Fungerade bra tills jag testade sidan i andra webbläsare andra OS. Men ska testa mig fram i ditt exempel och ser om det passar in i mina knappar.

Cheers mate...återkommer.

261 ms totalt · 3 externa anrop · v20260731065814-full.102f7fcd
125 ms — hämta forumlista (db)
125 ms — hämta statistik (db)
134 ms — hämta tråd, inlägg och bilagor (db)