Autor | Zpráva | ||
---|---|---|---|
radekt Profil |
#1 · Zasláno: 18. 4. 2013, 10:34:34
Dobrý den,
na stránkách http://bar.nebeso.cz/ jsem se pokusil v seznamu udělat odrážky místo obrázkové pomocí CSS. tady je html: <li><a href="index.php"><div id="odrazka"></div>Hlavní stránka</a></li> <li><a href="obsluha.php"><div id="odrazka"></div>Představení obsluhy</a></li> <li><a href="prostory.php"><div id="odrazka"></div>Představení baru</a></li> <li><a href="hry.php"><div id="odrazka"></div>Společenské vyžití</a></li> <li><a href="kontakt.php"><div id="odrazka"></div>Kontakt</a></li> tady css: #levy { width: 24%; border-top: 10px solid #b8cfb8; border-bottom: 10px dotted #b8cfb8; } #levy ul { margin-top: 0; padding: 0 0 0 0; } #levy li a { font-weight: bold; font-family: 'Microsoft Sans Serif', sans-serif; font-size: 14pt; color: #669966; display: block; padding: 7px; } #odrazka { width:0px; height:0px; border-left:12px solid #BDB76B; border-top:6px solid transparent; border-bottom:6px solid transparent; float: left; padding-left: 8px; vertical-align: 50%; display: block; } Odrážky se mi sice vytvořily, ale nejsem sto je vertikálně zarovnat s textem, pořád jsou o něco nahořeji. Můžete prosím poradit? Díky |
||
Plaváček Profil |
#2 · Zasláno: 18. 4. 2013, 10:47:08
radekt:
Mohu se zeptat, co tě vede k tomu, komplikovat si zbytečně život? |
||
Trejpa Profil |
#3 · Zasláno: 18. 4. 2013, 10:53:42
radekt:
Předně, atribut ID lze použít jen jedenkrát na stránce. Pro pouhé opakované stylování použij class. Za druhé, je zbytečné označovat každou položku zvlášť, označ si vnější blok a položky zacil kontextově. Na odrážku použij obrázek, ne border prázdného bloku. Dej ho na pozadí odkazu, kterému přidáš levý padding: #levy li a { padding-left: 20px; background: url(odrazka.gif) left no-repeat; } |
||
Str4wberry Profil |
#4 · Zasláno: 18. 4. 2013, 11:03:53
Rychlé řešení by bylo posunout lehce elementy
#odrazka .
#odrazka {position: relative; top: .3em} Na první pohled to vypadá funkčně. |
||
Plaváček Profil |
#5 · Zasláno: 18. 4. 2013, 11:05:12
Str4wberry:
Je to možná funkční, ale jde o pěknou opičárnu. :) |
||
Str4wberry Profil |
#6 · Zasláno: 18. 4. 2013, 11:20:54
No, jak se to vezme. Pokud budeme chtít tu odrážku udělat pomocí CSS, tak to bez podobné opičárny lépe nejspíš nepůjde.
|
||
Plaváček Profil |
#7 · Zasláno: 18. 4. 2013, 11:28:59
Str4wberry:
Já vím. Jenom mi prostě uniká důvod, proč obrázkové odrážky neudělat obrázkem a lopotit se s řešením, které nemusí být všude stoprocentně funkční. |
||
radekt Profil |
#8 · Zasláno: 18. 4. 2013, 11:35:20
Str4wberry:
Paráda, děkuji moc, funguje to. Mě se původně zdálo právě lopocení ten obrázek. Zda je rychlejší v případě dalšího webu - kde bych použil stejný prvek, ale web by měl jinak laděné barvy a těm by se musela přizpůsobit barva odrážky - je rychlejší změnit CSS a nebo editovat obrázek. Takto, když je to připravené je rychlejší CSS. Je toto řešení sémantický prohřešek? |
||
Str4wberry Profil |
#9 · Zasláno: 18. 4. 2013, 11:46:36
Reakce na Plaváčka:
„proč obrázkové odrážky neudělat obrázkem a lopotit se s řešením, které nemusí být všude stoprocentně funkční“ To je samozřejmě otázka nejlepšího postupu. A zda Patří procedurální grafika do CSS? Obecnou hranici, co kreslit pomocí CSS a co už řešit obrázkem, podle mě nelze nějak přesně stanovit. CSS odrážka může být stejně 100% funkční jako obrázek a naopak. Reakce na radekta: „Je toto řešení sémantický prohřešek?“ Asi ano. Přece jenom takový kód obsahuje zbytečný prázdný element, ale nevidím v tom problém. |
||
radekt Profil |
#10 · Zasláno: 18. 4. 2013, 11:54:33
Jak o tom přemýšlím: co už by jen silami CSS nešlo je chtít měnit barvu odrážky při události a:hover, tam už by byly potřeba dva obrázky, jestli se nemýlím.
|
||
Str4wberry Profil |
To by právě šlo velmi snadno. A je to jedna z výhod CSS kreslení.
#levy a:hover .odrazka {border-left-color: red} |
||
radekt Profil |
#12 · Zasláno: 18. 4. 2013, 12:14:11
Geniálně prosté, děkuji.
|
||
Camo Profil |
Str4wberry:
S týmto v žiadnom prípade nesúhlasím. li{background:url("obrazok.png") center center no-repeat} Kto to má potom lúštiť tie CSSká na 1000 riadkov. Mi normálne tvrvalo pár minút, než som pochopil, že ten trojuholník je z borderu urobený... Ešte to aj takto šialene centrovať a v každom li mať prázdny span... |
||
margin Profil * |
#14 · Zasláno: 18. 4. 2013, 12:30:42
Camo:
„li{background-image:url("obrazok.png") center center no-repeat}“ Ale fuj, koukni na [#3] Trejpův kód, jak se to má dělat. |
||
Camo Profil |
margin:
A aký je v tom rozdiel prosím? Sa ukľudni chlapče. Ešte si ma zabudol upozorniť na to, že tam mám center miesto left. A ja ešte dodám, že pre zmenu Trajpa to nemá vertikálne vycentrované... A nie som si istý, či by mu to bez tých úvodzoviek prešlo. niekde asi hej, ale či všade, to by som neriskoval...Ale čo ti budem vysvetľovať... |
||
shaggy Profil |
#16 · Zasláno: 18. 4. 2013, 12:42:28
Camo:
„A aký je v tom rozdiel prosím?“ Rozdiel je v tom, že background-image má ako hodnotu iba cestu k obrázku, chlapče ;-) |
||
Trejpa Profil |
#17 · Zasláno: 18. 4. 2013, 12:52:22
Camo:
„pre zmenu Trajpa to nemá vertikálne vycentrované...“ Trejpa to výškově vycentrované má. „A nie som si istý, či by mu to bez tých úvodzoviek prešlo.“ Tak se nauč základy CSS. |
||
Camo Profil |
#18 · Zasláno: 18. 4. 2013, 12:52:41
shaggy:
Kde??? Ja som tiež len človek, a hoci som presne na to myslel, aj tak som to tam pri písaní napísal. hlavne že máš radosť Shaggy. To je najdôležitejšie... |
||
Str4wberry Profil |
#19 · Zasláno: 18. 4. 2013, 12:53:21
Reakce na Cama:
„S týmto v žiadnom prípade nesúhlasím.“ No, jak jsem psal v [#9] a v tamtéž odkázaném vlákně. Co ještě řešit pomocí CSS a co už obrázky nelze universálně stanovit. Co když bude nějaký element mít mít barevné pozadí a okraje? Použijeme obrázek, aby to nebylo složité a k pochopení za méně než pár minut? „Kto to má potom lúštiť tie CSSká na 1000 riadkov.“ Tímto stylem můžeme dojít ke vkládání webů jako obrázek, tam nebude potřeba CSS (skoro) žádné. :–) „A aký je v tom rozdiel prosím?“ Kromě toho, že to nebude fungovat, nebude při nastavování obrázku na <li> odkaz klikací na té odrážce.
|
||
shaggy Profil |
#20 · Zasláno: 18. 4. 2013, 12:57:15
Camo:
„hlavne že máš radosť Shaggy.“ Tu nejde o to, či mám radosť, alebo nie. Ty si vybehol na margina, ktorý ťa správne upozornil na chybu. Ja som ti dal odkaz na vysvetlenie, aké hodnoty background-image môže mať, čo viac odo mňa potrebuješ? |
||
Camo Profil |
Trejpa:
"Tak se nauč základy CSS." Ale hybaj? To že cesta nemusí byť v úvodzovkách a že center je default je základ css? Ani by som nepovedal. To som dnes ale stúpil do lajna... Týmto sa teda ešte ospravedlňujem marginovi, za tú prehnanú reakciu. Zjavne to bolo "fuj" čo som napísal... |
||
Trejpa Profil |
#22 · Zasláno: 18. 4. 2013, 13:14:02
Camo:
„Ani by som nepovedal.“ Já ano, s jistotou. Tuhle konstrukci používám ve svém příkladu. Který prohlížeč nezobrazí odrážku nebo ji svisle nevystředí? |
||
Camo Profil |
#23 · Zasláno: 18. 4. 2013, 13:15:13
Trejpa:
V žiadnom prípade to nemá nič spoločného so základmi. To sa už len robíš dôležitejším ako v skutočnosti si. |
||
Trejpa Profil |
#24 · Zasláno: 18. 4. 2013, 13:26:34
Camo:
„To sa už len robíš dôležitejším ako v skutočnosti si.“ Když dojdou argumenty, přicházejí invektiva. Uvozovky nejsou povinné pro adresy složené z ASCII znaků: http://www.w3.org/TR/CSS2/syndata.html#tokenization Pokud je uvedena jediná hodnota background-position, druhá se automaticky nastaví na center: http://www.w3.org/TR/CSS2/colors.html#propdef-background-position |
||
Camo Profil |
#25 · Zasláno: 18. 4. 2013, 13:40:22
Trejpa:
Bavíme sa o tom či to patrí medzi základy CSS, alebo nie. Otázka je, čo pokladáš za pokročilé CSS, ak je toto podľa teba základ. IMHO to čo som napísal by som medzi invektíva neradil. |
||
Trejpa Profil |
#26 · Zasláno: 18. 4. 2013, 14:27:23 · Upravil/a: Moderátor (editace znemožněna) 23. 4. 2013, 17:05:06
Camo:
„Bavíme sa o tom či to patrí medzi základy CSS, alebo nie.“ Poprvé jsem CSS použil na nastavení pozadí. Takže ano, syntaxi zápisu pozadí na úrovni CSS 2.1 považuji za jeden z naprostých základů. |
||
Str4wberry Profil |
#27 · Zasláno: 18. 4. 2013, 14:44:41
Jako základy bereme to, co je ve specifikacích, nebo to, co zná každý, kdo CSS používá? U těch výchozích hodnot bych tipoval, že je má v malíku tak jeden z deseti (jestli vůbec). Tedy tímto pohledem (který nejspíš uplatňuje Camo) se o základy nejedná.
|
||
radekt Profil |
Trejpa:
Opravil jsem na spany, to byla školácká chyba. Co prosím myslíš tím "označ si vnější blok a položky zacil kontextově"? Resp. kontextovou deklaraci jsem použil dle rady kolegy Str4wberryho (#levy a:hover .odrazka {border-left-color: red}), nic jiného. |
||
RockFire Profil |
radekt:
„Co prosím myslíš tím "označ si vnější blok a položky zacil kontextově"?“ Předpokládám, že tím bylo myšleno, že je zbytečné nastavovat class (tys tam měl dokonce ID, což je chyba, jak již bylo řečeno) každému teď už spanu, ale dá se to zapsat takto: #levy li span { /* Styly pro odrážku */ } |
||
Str4wberry Profil |
„Co prosím myslíš tím "označ si vnější blok a položky zacil kontextově"?“
HTML<ul class=polozky> <li><a href=''><span></span>Text</a> </ul> CSS.polozky span {} Případně by šlo použít přímo značku <menu> .
|
||
Téma pokračuje na další straně.
|
0