Autor Zpráva
Lukas_h
Profil
Zdravím,

dělám své první "velké stránky" a narazil jsem na problém.
V mém screenu je 9 "dlaždic" s popiskem, popisky mám umístěné ne příliš profesionálně ( ). Já bych potřeboval aby všech 9 dlaždic (vycentrované) a všech 9 popisků (každý popisek nad obrázkem) mělo stejnou polohu při jakémkoliv rozlišení monitoru.
Můžete mi prosím poradit?

Díky

roberta
Profil
na takéto veci je vhodná tabuľka <table>...</table>
kde jednotlivé texty/obrázky budú zarovné pomocou CSS do stredu každej bunky v tabuľke
panther
Profil
Lukas_h:
všechno to obal elementem, který vycentruj. Každá dlaždice bude jeden další element (tys to udělal asi celé pomocí divů, dal by se místo nich použít třeba seznam, tedy UL jako obal, LI pro každou dlaždici (podle kontextu - je to seznam čehosi nebo není?)). Textové popisky budou mít normálně
text-align: center


roberta:
na takéto veci je vhodná tabuľka <table>...</table>
těžko říct. Na mě to působí dost jako textovo-obrázkové menu, takže jak píši výše: záleží na kontextu. Ten by nám mohl Lukas_h prozradit.
Lukas_h
Profil
Jedná se o menu, kde má obrázek i text stejný odkaz.

Já to udělal dost prasácky...

<center>
&nbsp;&nbsp;VideoCulture &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AČV MEDIALOG &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Festival&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>

<a href="pages/videoculture/videoculture.html"><img src="images/ico/videoculture.jpg" height ="95" width ="95" alt= "VideoCulture"></a>
&nbsp;<a href="pages/acv/acv.html"><img src="images/ico/onas2.jpg" height ="95" width ="95" alt= "AČV MEDIALOG o.s"></a>
&nbsp;<a href="pages/fest/fest.html"><img src="images/ico/festival2.jpg" height ="95" width ="95" alt= "Festival"></a>

<br>&nbsp;&nbsp;Vzdělávání&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Spolupráce&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Kontakt&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>

<a href="pages/vzdelavani/vzdelavani.html"><img src="images/ico/vzdelavani1.jpg" height ="95" width ="95" alt= "Vzdělávání"></a>
&nbsp;<a href="pages/spoluprace/spoluprace.html"><img src="images/ico/spoluprace1.jpg" height ="95" width ="95" alt= "Spolupráce"></a>
&nbsp;<a href="pages/kontakt/kontakt.html"><img src="images/ico/vernisaze1.jpg" height ="95" width ="95" alt= "Kontakt"></a>

<br>&nbsp;Aktuality&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Galerie&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Naše filmy<br>

<a href="pages/aktuality/aktuality.html"><img src="images/ico/metodyprace.jpg" height ="95" width ="95" alt= "Aktuality"></a>
&nbsp;<a href="pages/aktuality/fotogalerie.html"><img src="images/ico/poslani1.jpg" height ="95" width ="95" alt= "Galerie" ></a>
&nbsp;<a href="pages/aktuality/filmy.html"><img src="images/ico/filmykestazeni.jpg" height ="95" width ="95" alt= "Naše Filmy"></a>
</center>
panther
Profil
Lukas_h:
tak v tom případě bude HTML vypadat takhle:
<menu>
    <li id="video"><a href="video.html">VideoCulture</a></li>
    <li id="acv"><a href="acv.html">ACV Medialog</a></li>
    ...
</menu>


a v CSS bude (náznak):
menu {width: 315px; margin: 0 auto;} /* vycentrujeme */
menu li {width: 95px; height: xxxpx; text-align: center; background: 0 20px no-repeat; float: left; margin-right: 10px;} /* pozice pozadi: zleva */
menu li a {color: #0ff; display: block;}
/* za xxx si dopln rozmery */

menu li#video {background-image: url('images/video.png');}
menu li#acv {background-image: url('images/acv.png');}
Lukas_h
Profil
Jde u {background-image: url('images/video.png');} změnit velikost obrázku?
panther
Profil
Lukas_h:
Jde u {background-image: url('images/video.png');} změnit velikost obrázku?
nejde, obrázky si ořízni. Je blbost je zmenšovat ať pomocí CSS, nebo v HTML, zbytečně načítáš obrázky větší, než je třeba.
DoubleThink
Profil *
roberta:
na takéto veci je vhodná tabuľka <table>...</table>
Není, tabulka je vhodná na data s vodorovnou a svislou souvztažností. A to není tento případ.
roberta
Profil
DoubleThink:
smiem sa opýtať, prečo to nie je tento prípad? kde je porušená v tomto príklade „vodorovná a svislá souvztažnost“?
panther
Profil
roberta:
tabulka se používá na křížově závislá data. Jak spolu uvedených 9 položek souvisí? Je to menu, jak bylo řečeno v [#4], tak není co řešit. Na menu je daný tag <menu>, nikoliv tabulka.

Nesmíš dát na první pohled, že ty obrázky tvoří jakousi tabulkovou mřížku. Podle vizuální stránky nemůžeš posuzovat (ne)vhodnost použití tabulky.
roberta
Profil
už chápem. ak je to menu, tak tam tabuľka nemá čo hľadať. to je mi jasné.
ospravedlňujem sa za flame ;)
Lukas_h
Profil
panther:
Tak sem to nějak udělal, ale mám problémy:

1) Udělá se mi jeden řádek (9 dlaždic vedle sebe)

2) Nejde mi to celé zarovnat na střed
panther
Profil
Lukas_h:
dej sem odkaz na stránku, bez ní ti můžu dát jen obecné rady:

- <menu> vycentruj, přidej mu margin: auto;, jak jsem psal
- nastav <menu> coby rodiči šířku, položkám <li> taky. Položek bude na řádku tolik, kolik se jich vejde, tzn. podle nastavených rozměrů.
Lukas_h
Profil
panther:

http://lukastest.ic.cz/test/index.html
panther
Profil
Lukas_h:
- přebývají ti tam odrážky, tedy list-style: none;
- menu nemá nastavené rozměry, takže potřetí: menu {width: 300px;}. Za těch 300px si dosaď, co potřebuješ.
- <font size="2" color="orange"> vyhoď. Barvu nastavíš v menu li a {color: orange;}
- v <menu> by měly být jen položky <li>, tedy žádné <b>. Vyhoď je. Tučnost zajístíš taky CSS, a sice menu li a {font-weight: bold;}
- menu má, stejně jako ostatní seznamy, levé odsazení, 40px. Některé prohlíže odsazují (levým) marginem, jiné (levým) paddingem, přidej tedy menu {margin: 0; padding: 0 /* pripadne margin-left: 0; padding-left: 0; */}


Když to shrnu, tak:
<menu>
    <li id="video"><a href="video.html">Video</a></li>
    <li id="acv"><a href="acv.html">ACV</a></li>
    ...
</menu>


CSS:
menu {margin: 0; padding: 0; width: 350px;} /* zrusim defaultni odsazeni, pridam sirku kvuli zalomeni polozek */
menu li {list-style: none} /* zruseni defaultnich odrazek u polozek menu */
menu li a {color: orange; font-weight: bold} /* oranzova, tucna. Davam to odkazu, teoreticky by to slo i k menu li, tedy polozkam. Jejich obsah jsou jen odkazy, je to tedy jedno */


Všimni si, že v HTML mám jen tři elementy: <menu>, <li> a <a>. Tučnost a barvu zajistí CSS, nic víc v HTML tedy nepotřebuješ.
Lukas_h
Profil
panther:
Mě tam nejde dostat ta šířka :(
panther
Profil
Lukas_h:
Mě tam nejde dostat ta šířka :(
jak nejde? Normálně do CSS přidej řádek
menu {width: 300px; margin: 0 auto;}


Jen tak mimochodem. V tomto kousku CSS máš několik zásadních chyb (zrušil jsem prázdné řádky, aby to nebylo zbytečně dlouhé).
//horní menu
#nav {background-color: #orange;}
#nav ul {
  width: 605px; width: "635px"; 
  text-align: left; 
  margin: 0 auto;}

1. CSS komentář se zapisuje /* komentar */, tedy je obalen z obou stran lomítkem vně a hvězdičkou uvnitř. Může být i víceřádkový. Tvůj zápis se dvěma lomítky je špatně.
2. barva, je-li zapsána názvem barvy, uvádí se bez „#“. Ten se uvádí při hexadecimálním zápisu barvy.
3. width: "635px" se nepoužívá (asi je i špatně, důsledky jsem nezkoumal)
Lukas_h
Profil
panther:

Moc dík (byla tam navíc závorka), fakt jsi mi pomohl a jsem rád že si to vydržel :)
Ty ostatní chyby v CSS (i HTML) o těch vím, projedu to pak validátorem.

Dík
panther
Profil
Lukas_h:
případně ještě můžeš přidat odkazům display: block (anebo float) a rozměry, aby byla klikatelná celá položka, včetně obrázku a ne jen samotný text.
Lukas_h
Profil
panther:
To už fakt nevím kam přidat...

Teď mám CSS takto:

menu {margin: 0 auto; padding: 0 auto; width: 400px;}
menu li {width: 100px; height: 115px; text-align: center; background: 0 16px no-repeat; float: left; margin-right: 10px;}
menu li a {color: orange; font-weight: bold;}


a velikosti obrázků jsou 95px na 95px
panther
Profil
Lukas_h:
menu li a {color: orange; font-weight: bold; display: block; width: 100px; height: 115px;}

Rozměry si případně uprav, vzal jsem je z menu li.
Lukas_h
Profil
panther:
Díky moc, všechno funguje :)

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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

0