"float: középre" nem megy :)
Sziasztok!
Bocs a címért, de nem jövök rá a dolog nyitjára, pedig valószínűsítem, hogy igen egyszerű a megoldás. Az alábbi menüt a
A HTML:CSS:Amit tudtam, kivettem belőle, többi gyakorlatilag valós (a piros és rózsaszín háttér kivétel).
Próbálkoztam szélességekkel,
Kérlek segítsetek ki egy kis korrepetálással, ha egy mód van rá, nem szeretném ezt a gagyi js/jquery - ráncigálást ott hagyni!
Fontos, hogy IE8 is "játszik", ill. cross-browser legyen. (Inkább CSS2.)
A segítséget - útmutatást előre is köszönöm!
Pepita.
■ Bocs a címért, de nem jövök rá a dolog nyitjára, pedig valószínűsítem, hogy igen egyszerű a megoldás. Az alábbi menüt a
<div id="main_nav">
- nál "fogva" középre szeretném igazítani <div id="across_2">
- n belül. (Később szintén across_2 gyermekeként lehet, hogy egy-két <p>valami</p>
bekerülhet.A HTML:
<!DOCTYPE html>
<html lang="hu">
<head>
<title>float probléma</title>
<meta content="text/html; charset=utf-8" http-equiv="content-type" />
<link rel="stylesheet" type="text/css" href="main.css" />
<script language="javascript" type="text/javascript" src="jquery_1_4.js"></script>
</head>
<body>
<!-- Header cuccok -->
<div id="across_2">
<div id="main_nav">
<ul>
<li><a href="menu.html">Címlap</a></li>
<li><a href="menu.html">Aktuális</a>
<ul>
<li><a href="#">Menü 2.1</a></li>
<li><a href="#">Menü 2.2</a></li>
<li><a href="#">Menü 2.3</a></li>
</ul></li>
<li><a href="#">Menü 3.</a>
<ul>
<li><a href="#">Menü 3.1</a></li>
<li><a href="#">Menü 3.2</a></li>
<li><a href="#">Menü 3.3</a></li>
</ul></li>
<li><a href="#">Menü 4.</a></li>
<li><a href="#">Menü 5.</a></li>
<li><a href="#">Menü 6.</a></li>
<li><a href="#">Menü 7.</a></li>
</ul>
</div>
</div>
<!-- article (left-box és content) -->
<!-- footer -->
<script language="javascript" type="text/javascript">
<!--
// Menüt középre:
$("#main_nav").css("left", (($("#across_2").width()-$("#main_nav").width())/2) + "px");
-->
</script>
</body>
</html>
body {
margin: 0;
padding: 0;
overflow: auto;
background-color: rgb(251,247,235);
font-family: "georgia", serif;
}
#across_2 {
z-index: 110;
width: 100%;
min-height: 32px;
height: auto;
margin: 0;
padding: 0;
background-color: rgb(22,112,201);
text-align: center;
clear: both;
}
#main_nav {
z-index: 120;
position: absolute;
padding: 0;
margin: 0;
}
#main_nav ul {
padding: 0;
margin: 0;
line-height: 32px;
}
#main_nav li {
position: relative;
list-style-type: none;
list-style-image: none;
float: left;
background: none;
}
#main_nav a {
background: red url("gomb_10.png") no-repeat;
padding: 0px;
width: 120px;
height: 32px;
font-size: 16px;
display: block;
font-family: "times new roman", times, serif;
color: #049;
text-align: center;
text-decoration: none;
}
#main_nav a:hover {
background: pink url("gomb_11.png") no-repeat;
color: #169;
font-weight: bold;
outline: none;
border: none;
}
#main_nav ul ul {
position: absolute;
visibility: hidden;
top: 32px;
left: -2px;
border: 2px dashed rgb(13,106,201);
border-top: none;
background-color: rgb(103,174,245);
z-index: 100;
margin: 0;
padding: 0;
}
#main_nav ul li:hover ul {
visibility: visible;
}
Próbálkoztam szélességekkel,
text-align
-al, margin: 0 auto
-val és még sorolhatnám, de nem sikerült (pedig én mindent jól csináltam :)).Kérlek segítsetek ki egy kis korrepetálással, ha egy mód van rá, nem szeretném ezt a gagyi js/jquery - ráncigálást ott hagyni!
Fontos, hogy IE8 is "játszik", ill. cross-browser legyen. (Inkább CSS2.)
A segítséget - útmutatást előre is köszönöm!
Pepita.
Absolute nélkül
Hála az inline-blocknak, az elem felveszi a gyermekek méretét (akárcsak a position: absolute vagy a float esetén), tehát nem törekszik a szülő szélességének kitöltésére, mint egy alap block elem.
Az inline működés miatt könnyedén középre rendezhető.
Az inline-blockot támogatja az IE8, IE7-ben is működésre bírható egy kisebb hekkel.
Dehogy ragaszkodom position: absolute-hoz!
Köszönöm szépen a megoldást, így jó lesz (IE7- nem szempont, "nekik" mehet balra).
Kísérleteztem inline-block -al is, de valószínűleg bent maradt az absolute, vagy vmi mást rontottam el...
Az inline-block problémája a
A legegyszerűbb megoldás blokk vízszintesen középre pozicionálására a margin: 0 auto.
szélesség
Nodeviszont
A "valamilyen módszer"-t kifejtettem, biztos van más is, nekem az a három jutott eszembe hirtelen. A float és az absolute position nem igazán praktikus itt, ezért maradtam az inline-blocknál. A flexbox meg egyelőre nem megoldás, ha széles böngésző-támogatásra vágysz.
De én is szívesen nézegetek további működő megoldásokat, mert tanulni remek és mindig van mit.
De a példában a gyereke egy
De műxik
#main_nav { display: inline-block; }
-al működik. A <li>-k floatoltak, bennük az <a>-k fix szélességűek (mármint a desktop verzióban). Szerintem itt nincs gond, bár még csak IE és FF alatt néztem. (Ezekben nem problémáznak a whitespace karakterek sem, de azt (is) még majd meg kell nézzem több böngészőn is.)Lehet elbeszélünk egymás mellett
Firebug
+1 az inline-block megoldásra
Firebug
Önmagában a div szélessége nem oldotta meg a problémát, mint ahogy a témaindítóban is írtam.
Ne vedd a szívedre
Block
Hosszú