Autor | Zpráva | ||
---|---|---|---|
Syp Profil * |
#1 · Zasláno: 3. 5. 2016, 07:55:42
Ahoj,
vypadá to triviálně, ale není nebo mi něco uniká. Mám navigaci, kde může být 4-n odkazů a potřebuji, aby byly do celé šířky webu. Také mají spodní border, který nemůže být nalepený ihned na tlačítko (tj. jedině border-bottom) a dále pravý bílý border. A co je nejdůležitější, musí se centrovat horizontálně a počítá se s tím, že odkaz může být i na 2 řádky. Můj kód: Odkaz podařilo se mi krom toho vycentrování všechno a s tím bych potřeboval poradit, zda-li by někoho nepadla nějaká finta. Výška nikdy nemůže být fixní a blokový odkaz v table-cell nefunguje na 100% výšku, proto je použit display inline block. PS. A ve Firefoxu to nefunguje zcela jako v chromu. Nemá někdo řešení? |
||
radekt Profil |
Menu na celou šířku stránky sice lze dosáhnout pomocí
display: table , viz třeba zde. Ale na hodně malých displejích, jsou-li v položkách delší texty, se to rozsype.
|
||
Tomáš123 Profil |
#3 · Zasláno: 3. 5. 2016, 17:56:18
Syp:
Ukážka. Snáď jediným problémom je ten miznúci rámček medzi položkami (zväčši si jeho hodnotu a bude jasné prečo sa to deje). Riešenie mi momentálne nenapadá, hrajme sa, že je to premyslený grafický efekt :-). Pri menších rozlíšeniach bude určite lepšie položky zobraziť pod sebou. |
||
Syp Profil * |
Tomáš123:
Super! I ve firefoxu to vypadá dobře, ted ještě vymyslet ten border a bude to vyřešené. Možná tam mezi to narvat prázdné LI s pevnou šířkou, které ten border budou simulovat, ale nebude to uplně čisté Bohužel to ještě trpí neduhem, že odkaz není klikací po celé ploše ... |
||
radekt Profil |
Syp:
„Bohužel to ještě trpí neduhem, že odkaz není klikací po celé ploše ...“ na to stačí li a { display: block; }
Syp: „Možná tam mezi to narvat prázdné LI s pevnou šířkou, které ten border budou simulovat, ale nebude to uplně čisté“ to nebude potřeba: border mezi položkami: li { border-right: 1px solid white; }
pak je potřeba vyhodit bílé znaky, aby se to o ně neposouvalo: ul { font-size: 0;}
možností je více, viz článek |
||
Tomáš123 Profil |
#6 · Zasláno: 5. 5. 2016, 11:32:10
radekt:
„na to stačí li a { display: block; }“ Nestačí. Bloky nejde vertikálne centrovať. V tomto prípade navyše display: block nezaistí roztiahnutie prvku na rozmery rodiča. (Neviem prečo.)
Druhým problémom je nastavený rámček zľava aj zdola. V rohu sa stretávajú a vzniká neželaný efekt zúženia. Syp: Riešením prvého problému by mohol byť absolútne napoziciovaný a roztiahnutý pseudoelement :after . Ukážka.
Druhý problém by okrem nečistej možnosti s prázdnymi jednopixelovými položkami šlo riešiť aj pomocou vlastnosti outline . Nedá sa tak však, bohužiaľ, nastaviť rozličné hodnoty pre každú stranu (medzi dvojicou položiek vznikne širšia medzera). Yuhů navrhuje (nutné odrolovať na riadky s vlastnosťou outline ) použiť box-shadow .
Využiť pseudoelement položky zoznamu <li> na spodný rámček sa mi nepodarilo. Rámčeky neboli v rovine.
Najlepšou alternatívou mi príde nastaviť zvislý rámček vzniknutému pseudoelementu prvku <a> . Ukážka.
|
||
Syp Profil * |
Tomáš123:
Fantastický. Figl s pseudoelementem mě nenapadl. Moc jsi mi pomohl. Děkuji @:-) ! PS. To s tím, že se neroztahuje áčko pokud je blokové, to je poměrně známé, stačí zagooglit, existuje na to finta s velkým paddingem a oříznutím přes overflow, ale to bych pak neudělal ten spodní border a ty pravé. Tohle je super řešení, tak ještě jednou dík a dobrou noc! @:-) |
||
Časová prodleva: 9 let
|
0