Panelen



Forumnavigering
Senast inloggade
RSS
Sponsorer

Forum > Klientspråk > CSS

Centerera

HEjsan, jag vill att menyn ska sitta i mitten:
http://www.aspkoll.se/imgo/456.jpg

index.php
http://aspkoll.se/code/Index.asp?id=467


style.css
http://aspkoll.se/code/Index.asp?id=468

får inte till det.
någon som vet?

Its not about how hard you can hit, its how hard you can get hit, and still go on.
ID: #14579 | Skapades: 2009-02-20 22:25:38 | Tråden har 17 svar och har lästs 991 gånger.
Sida: 1 2

Hultin
Hultin

Gradering

#14580

Bara meny texten, eller själva menyn? Om det bara är text så prova med, text-align:center;

... ORANGE HEARTS!
ID: #14580 | Skapades: 2009-02-20 23:53:31

voigtan
voigtan

Gradering

#14583

1. Ta bort <center> elementet, du kan använda dig av text-align i din css.

2. ta bort width: 100% och margin auto från #container, en div är alltid 100% by default.

3. text-align hjälper inte i din meny, eftersom det inte är text-element du arbeta med där, du floatar dina li element så där gör det ändå inte någon nytta.

Det jag kommer på just nu är att du sätter magin: 0 auto och display: inline; på ditt ul element. dock måste du sätta en bestämd höjd på din #menu för att få till önskad effekt.

Vid lite tester så upptäcker man att det inte är det lättaste att fixa en sådan lösning, och du är inte ensam om det:

http://codingforums.com/showthread.php?t=136184

http://csscreator.com/node/33965

Den ända lösningen jag har hunnit hitta är en (enklast) Opera och Firefox specifik (då IE inte har stöd för display: table förrän vid IE8):

http://www.troidus.com/tag/center/



Redigerad av voigtan
Anledning:

Nu var jag så lat att använda google att jag glömde faktist kolla på min favorit site när det gäller ul naivgation:

http://css.maxdesign.com.au/listama...orizontal16.htm

verka lösa ditt problem. testade den och den centera ;) visst det är lite fel färger men den gör "rätt" ;)

Hur man ställer en fråga: http://support.microsoft.com/kb/q555375
ID: #14583 | Skapades: 2009-02-21 08:02:31

Dellans
Dellans

Gradering

#15734

Jag brukar centrera såhär:

/* Centrerad div */
div#menu {

position: absolute;

left: 50%;

margin: 0 0 0 -100px; /* Ska vara hälften så stort som bredden(width) */

width: 200px; }

ID: #15734 | Skapades: 2009-05-14 21:43:34

voigtan
voigtan

Gradering

#15735

Problemet med den typ av struktur innebär:

Du förlora allt vad elementet har för egenskaper som: höjden, bredd mot alla andra element på din sida pga position absolute.

Du låster dig att du måste alltid uppdatera din CSS om den bli bredare än 200px

Hur man ställer en fråga: http://support.microsoft.com/kb/q555375
ID: #15735 | Skapades: 2009-05-15 07:04:42

Dellans
Dellans

Gradering

#15740

Det visste jag redan men jag använder det endå =D

ID: #15740 | Skapades: 2009-05-15 16:14:22

voigtan
voigtan

Gradering

#15741

Bara för att du vet om det så kan du faktist skriva de nackdelar och headsup man måste vara medveten om man använder din kod. Nu gjorde jag det åt dig.

Hur man ställer en fråga: http://support.microsoft.com/kb/q555375
ID: #15741 | Skapades: 2009-05-15 16:38:35

Dellans
Dellans

Gradering

#15742

Då kan jag tala om att man kan ha en wrapper som man centererar på så vis. I detta fall en meny wrapper.

ID: #15742 | Skapades: 2009-05-17 14:18:55

voigtan
voigtan

Gradering

#15745

Dellans, tror du inte jag vet att man ha en wrapper, men det återstår fortfarane: du måste alltid uppdatera: höjd, bredd i två element än, att jobba statiskt är inte ett smidigt sätt och knappast något man vill sikta efter på en webbplats idag. Ditt sätt fungera, men det är knappast något jag rekommendera om man skall ha dynamiskt innehåll i sina element.

Hur man ställer en fråga: http://support.microsoft.com/kb/q555375
ID: #15745 | Skapades: 2009-05-17 15:22:41

roby
roby

Gradering

#16080

Första posten här, så jag får väl hoppas att jag inte gör bort mig helt och hållet.. Men har du testat följande:

#menu {position: relative; margin: 0 auto;}

ID: #16080 | Skapades: 2009-06-12 00:13:05

voigtan
voigtan

Gradering

#16081

roby: Finns egentligen ingen anledning att använda position: relative, du använder inte några andra syntax som arbeta med position att göra.

Hur man ställer en fråga: http://support.microsoft.com/kb/q555375
ID: #16081 | Skapades: 2009-06-12 06:36:02

Shadi
Shadi

Gradering

#16085

Välkommen hit roby.

Du gjorde inte bort dig, relative går att använda om personen i fråga skall exempelvis använda andra element i #menu med position:absolute; eller liknande, men i övrigt så påverkar den inte positionen av #menu.

Petters, om jag har förstått det rätt så vill du att texten (menyn) skall centreras? Det är ganska simpelt att ordna med CSS. Jag skulle använda följande kod för att garantera att det skulle fungera i "alla" webbläsare.

#menu {
   text-align:center;
}
#menu ul {
   margin:0 auto;
   width:300px;
}
#menu ul li {
   text-align:left;
}

Det som är viktigt att tänka på är att du skall ha en fast bredd på #menu för att den skall placera sig i mitten. Använder du float:left; på <li> så ska du inte glömma att använda overflow:hidden;.

Jag har lagt upp ett exempel, titta på källkoden så ser du hur jag har gjort.

http://www.aspkoll.se/sandbox/css/m...r_position.html

Administratör på AspKoll.se!
Taggar: centrera, css, meny,
ID: #16085 | Skapades: 2009-06-12 13:47:25

voigtan
voigtan

Gradering

#16087

problemet där shadi är att du måste ha en bestämd bredd på en navigering. Vad http://css.maxdesign.com.au/listama...orizontal16.htm gör är att den ändra li-elementen till inline style (dvs den få möjligheten att förstå sig på text-align från parentNoden som är en ul i detta fall. och då behöver man inte oroa sig heller för att man måste sätta en bredd.

Hur man ställer en fråga: http://support.microsoft.com/kb/q555375
ID: #16087 | Skapades: 2009-06-12 13:52:23

Shadi
Shadi

Gradering

#16088

Förvisso, dock ser inte jag det som ett problem att ha en fast bredd på en meny. Den lösningen som du länkade till är bra, men man ska nog känna till flera för att kunna se vad som passar en bäst ;)

Administratör på AspKoll.se!
ID: #16088 | Skapades: 2009-06-12 14:01:20

voigtan
voigtan

Gradering

#16089

Jag ser jätte problem med det, eftersom jag jobbar inte med statisk data + vill verkligen inte låsa upp mig så är det inte en bra lösning (se mina tidigare inlägg på denna tråd).

Hur position:relative fungera är att block-elementet renderas ut (egenskapen som bredd och höjd) kommer vara kvar på sin orginal position, men kan flytta elementet men den plats (om vi säger boxen är 100x100px) så kommer den ta 100x100px på den ytan där den den i grunden skulle ha renderats ut.

har bara upptäckt en nytta egentligen med relative som position, det är om man vill göra grafiska ändringar (runda hörn eller liknande) på ett element, för då kan vi använda oss av absolut (och förlora sin orginal position) vilket är i mitt tycke den ända egentliga fördelen.

Hur man ställer en fråga: http://support.microsoft.com/kb/q555375
ID: #16089 | Skapades: 2009-06-12 14:07:40

Shadi
Shadi

Gradering

#16090

När det gäller relative så är det precis det jag syftade till. Säg att man har relative på menu och absolute på ul, då fungerar det (sett ur design/placeringsperspektiv). Och det är precis det du nämner där.

När det gäller den fasta bredden så är det inte alls ett problem om man jobbar med statisk data. För dig som använder dynamisk meny så kanske min lösning inte är den bästa, utan då ska man föredra lösningen du länkade till. Men är det så att man vet vad menyn innehåller (statisk data), d.v.s. att man vet att man bara ska ha x många items i menyn, så ser jag absolut inget problem med att ha en fast bredd.

Administratör på AspKoll.se!
ID: #16090 | Skapades: 2009-06-12 14:19:42
Sida: 1 2
© Copyright 2007-2009 Shadi Domat | Version 3.0 | Sidkarta | Policy