Autor Zpráva
Lauriniel
Profil
Ahoj,
snažila jsem se to vypátrat, ale nedaří se, proto to házím sem.
Chci si na stránky udělat menu, které by mělo na šířku vždy dvě položky a volitelnou délku řádků. Takže tedy vždy nahoře, kde bude celý seznam začínat, bude něco jako nadpis, takže třeba Uživatel. Pod tím by měly být různé položky, ale například nepřihlášený by měl vidět položku "Registrovat" a "Přihlásit", hezky vedle sebe. To by nebyl problém, ale když se uživatel přihlásí, těch odkazů by mělo být více, ale prostě chci, aby vždy na tom jednom řádku byly dvě položky a zbytek se vždycky hezky seřadil pod sebe (a samozřejmě na každém řádku budou také dva odkazy). Jen pro představu:
| UŽIVATEL |
[položka1] [položka2]
[položka3] [položka4]
| DALŠÍ COSI |
[položka1] [položka2]
...
(snad si to trochu uumíte představit)

Stačí mi jen nějaký kod, kterým docílím tohoto zarovnání.
Pak mám dotaz na to, je-li možné udělat to, že přihlášený pod tím Uživatelem uvidí svůj nick. Tedy, že pod tím "Uživatelem" nebudou hned odkazy, ale bude tam vypsaný ten nick. Ptám se na to proto, jestli to třeba tomu seznamu pak nějak nebude vadit, když to třeba nebude jako odkaz(<a>), ale třeba to tam bude v párových značkách <p></p>. Snad mě trochu chápete, kdyby něco, přihodím nějaký obrázek.
Díky.
jefitto44
Profil
Vadiť mu to nebude, otázka skôr je, ako to spravíš.

Čo sa týka toho rozdielu pri prihlásenom a neprihlásenom užívateľovi a tiež to, ako vypísať jeho nick, budeš potrebovať PHP (alebo jeho ekvivalent - ruby, ASP,...). Bez toho ani neprdneš. Tiež musíš mať databázu (odporúčam MySQL) so zoznamom užívateľov. Pokiaľ nevieš tieto základné veci, tak je strata času sa do toho púšťať (rozumej - najprv sa nauč programovať a potom môžeš pokračovať). Z tej databázy si vyberieš nick daného užívateľa. A tiež na základe toho, či bude existovať session s user_id (pri prihlásenom), alebo nebude existovať session s user_id (pri neprihlásenom), tak vypíšeš buď login formulár, alebo nick s odkazom na úpravu profilu (trebars)

K samotnému layoutu asi toľko:
Zoznam nerieši, čo sa nachádza dnu, môžu tam byť odkazy, ale nemusia. Môžeš mať zoznam obrázkov, prakticky môžeš mať aj zoznam tabuliek, alebo formulárov (teoreticky to nie je vhodné riešenie). Teda žiaden zoznam nebude treba prerušovať. Keď chceš mať niektorú položku na celú šírku a inde dve položky vedľa seba, nevidím jednoduchší spôsob, ako daným položkám zoznamu priradiť triedu, ktorá sa o to postará. Napríklad:
<ul>
<li>POLOZKA NA CELU SIRKU (Nick uzivatela, urcite nie v <p>, skorej v nejakom spane, alebo nadpise <h2>/<h3>/...)</li>
<li class="half"><a ...>POLOZKA NA POLOVICNU SIRKU</a></li>
<li class="half"><a ...>POLOZKA NA POLOVICNU SIRKU</a></li>
<li>POLOZKA NA CELU SIRKU</li>
<ul>

Takto nejako bude vyzerať html. Ak li bude mať triedu, bude floatovať a nastaví sa jeho šírka na 50%. CSS by vyzeralo takto

ul li {
  display:block;
  width:100%;
}

ul li.half {
  display:block;
  float:left;
  width:50%;
}

Samozrejme treba dbať na odsadenia - paddingy, bordere atď, aby ti to pekne do seba zapadalo. Odporúčam tiež použiť box-sizing:border-box;
Lauriniel
Profil
S tím php v pohodě - s tím už pracuji, takže to tam mám, já se spíše ptala na ty další věci, protože jsem se chtěla ujistit, že to nebude "prasárna". :)
Jinak díky za návod, vypadá to celkem jednoduše, já už vymýšlela samé složitosti :D :)
jefitto44
Profil
Ešte by som poznamenal, že ideálne bude si vytvoriť tie zoznamy v php na základe databázy. Tzn. neviem, či máš riešené podstránky v DB, alebo či máš na každú podstránku zvláštny súbor (prvý spôsob is recommend). Hodíš si do DB stlpec BOOL, kde bude buď 1, alebo 0 a na základe toho budeš pridávať/nepridávať class "half". Tá podmienka by mala vyzerať asi takto

while(bla bla)/foreach (bla bla) // podľa toho, či pracuješ s poľom, alebo objektami {
echo '<li '.(($foo->polovica==1)? "class=\"half\"":"").'><a href=...>ODKAZ</a></li>';
}
Lauriniel
Profil
Jo, možná ještě dotaz - potřebuji, aby ty položky na plnou šířku měly pozadí, ale nechci, aby se to pozadí opakovalo i přes ten "zbytek" seznamu. Zkrátka aby to bylo jen u toho "Uživatele", atp. atp. Šlo by to? :)

Jinak já to menu mám udělané takhle:

<ul>
<li> (NADPIS)
<ul>
<li><a href="odkaz">Odkaz</a></li>
<li><a href="odkaz">Odkaz</a></li>
</ul>
</li>
<li>(NADPIS)
<ul>
<li><a href="odkaz">Odkaz</a></li>
<li><a href="odkaz">Odkaz</a></li>
</ul>
</li>
</ul>

.. jen tak pro ukázku, jak je to vrstvené. Pozadí bych tedy potřebovala udělat u těch "nadpisů". :)
Tomáš123
Profil
Lauriniel:
Pozadí bych tedy potřebovala udělat u těch "nadpisů".
Obaľ ich do nejakého prvku (napr. <h2>, <h3>, <div>), ktorému v CSS nastavíš background.
jefitto44
Profil
Alebo tým <li> daj class nadpis (not recommend) a nastavíš im background.

Ešte k predošlej otázke - vieš priamo nastaviť background tým polovičným. Jednoducho v li.half {background:none}

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: