Autor Zpráva
Pavel Straka
Profil
Dobrý večer, obracím se na zkušenější s prosbou o radu ohledně delikátního problému.

Mám div s danými rozměry a overflow:auto (z důvodu roztažení, kdyby byl obsah delší než předpokládáno - nevím, jestli existuje jiný způsob). V divu je odkaz s klasickou bublinou po jeho přejetí. Problém je v tom, že při nastavení overflow:auto se bublina zobrazí jen v rámci divu - tzn. ne celá. Když overflow:auto odnastavím, funguje vše OK, ale zase nedojde k tomu roztažení divu při delším obsahu.

Mohl by mi prosím někdo poradit způsob, jak dosáhnout obojího?

Děkuji všem za pomoc a ochotu.

Živá ukázka (pro pochopení) zde: http://www.pavelstraka.com/#
jenikkozak
Profil
Velmi jednoduše by to šlo tak, že místo overflow:auto;height:100px by se nastavilo min-height:100px. Problém pak by byl v tom, že IE 6 tuto vlastnost nezná.
joe
Profil
Pavel Straka:
Otázkou taky je, jestli chceš mít všechno uvedené v bublině odkazem. Myslím si, že ne, já bych to takto nedělal. V případě, že text z bubliny chceš mít součástí textu, dal bych ho mimo odkaz. Pokud ne, nastavoval bych ho až JavaScriptem, kterým bych taky všechno řídil.
Pavel Straka
Profil
jenikkozak: Výborně, děkuji.
joe: Nerozumím, jak to myslíš. Text v bublině není odkazem, je to jen informační text. Ale na to se asi neptáš.
joe
Profil
Pavel Straka:
Ptám. V kódu máš:

<a href="#" class="bublina">odkaz s bublinou<span>dlouhý text dlouhý text dlouhý text dlouhý text dlouhý text dlouhý text dlouhý text </span></a>

Označená část je tedy také odkazem, ale logicky to je špatně, protože odkaz má být pouze text odkaz s bublinou. A text v té bublině je text informační, který pokud neobsahuje HTML by mohl být třeba v atributu title u toho odkazu.

Pak by lepší řešení bylo

<a href="#" title="dlouhý text dlouhý text dlouhý text dlouhý text dlouhý text dlouhý text dlouhý text" bublina>odkaz s bublinou</a>
a JavaScript (s jQuery)

$("a[bublina]").each(function () {
  var me = $(this);
  me.addClass("bublina");
  me.append($("<span>" + this.title + "</span>"));
  me.removeAttr("title");
});
Chamurappi
Profil
Reaguji na joa:
je tedy také odkazem, ale logicky to je špatně, protože odkaz má být pouze text
Může dát <span> za konec </a> a zaměřit ho selektorem a:hover + span.

Pak by lepší řešení bylo
Tvoje řešení stále dává text bubliny dovnitř odkazu.

me.removeAttr("title");
Spíš bys měl nastavit title na "".
joe
Profil
Chamurappi:
Může dát <span> za konec </a>
Může, ale nebude to fungovat všude.

Tvoje řešení stále dává text bubliny dovnitř odkazu.
Dává, ale jenom JavaScriptem, ten roboti vyhledávačů nečtou. Není to moc košer pro čtečky.

Spíš bys měl nastavit title na "".
Proč, prosím? :-)
Chamurappi
Profil
Reaguji na joa:
Může, ale nebude to fungovat všude.
Tuším, že tazatelův původní kód v Exploreru 6 také nefungoval, protože neprováděl žádnou změnu stylu na samotném a:hover (takže šestka neviděla důvod k přehodnocení potomků).

Proč, prosím? :-)
Protože standardní bubliny jsou vzájemně exkluzivní, title rodiče je přebíjen titlem potomka. Pokud nahrazuješ title potomka něčím, co title není, měl bys pojistit, aby se neukazoval title rodiče.
joe
Profil
Chamurappi:
Ale ten title se odebírá u toho odkazu, tzn. že tam po odebrání žádný nebude.
Chamurappi
Profil
Reaguji na joa:
Ale odkaz může mít rodiče a ten může mít také title. Pokud atribut úplně odebereš, bude se ukazovat tvá simulovaná bublina a navíc title z rodiče.
joe
Profil
Chamurappi:
Tak už mi konečně došlo proč, aby tam ten titulek nebyl při najetí. Chamurappi má vždycky pravdu :-)
preca1
Profil
Chamurappi:
...standardní bubliny jsou vzájemně exkluzivní, title rodiče je přebíjen titlem potomka. Pokud nahrazuješ title potomka něčím, co title není, měl bys pojistit, aby se neukazoval title rodiče.
Vyzkoušel sem to a v posledním Chromiu a FF se mi vždy zobrazuje title rodiče (po každym zmáčknutí odkazu je potřeba přenačíst stránku, aby fungovala správně). Pochopil sem to blbě (a mam nějakou chybu v kódu), nebo nemáš pravdu?
Pavel Straka
Profil
Dobrý večer, rád bych znovu otevřel toto téma a požádal o pomoc. Zjistil jsem, že ani způsob který mně doporučil jenikkozak, nevede ke kýženému výsledku. Zkrátka si mohu vybrat před automatickým protažením divu (height:700px; overflow:auto;), ale s omezeným zobrazením bubliny nebo plným zobrazením bubliny, ale neroztahováním divu (min-height:700px;).

Byl by prosím někdo tak laskav a poradil způsob, jak umožnit obojí?
Děkuji všem za ochotu pomoci.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

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