Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Jak przypiąć dymek z tekstem do innego elementu?
WebCM
post
Post #1





Grupa: Zarejestrowani
Postów: 375
Pomógł: 20
Dołączył: 28.07.2006

Ostrzeżenie: (0%)
-----


Jak zakotwiczyć dymek z tekstem do innego elementu na stronie, aby:

1. Automatycznie ustawiał się z góry, dołu, po lewej, po prawej stronie elementu
2. Nie przekraczał krawędzi ekranu ani nie zachodził na/pod element
3. Nie dziedziczył szerokości ani wysokości po elemencie

Dymek ma ustawioną szerokość maksymalną. Rozmiar powinien dostosować się do wolnej przestrzeni i ilości tekstu. Czy w czystym CSS jest to wykonalne?

Oto przykład:
  1. <!DOCTYPE html>
  2. <head>
  3. <title>Galeria</title>
  4. * {
  5. box-sizing: border-box
  6. }
  7. .sklep {
  8. position: absolute;
  9. }
  10. .hint {
  11. position: absolute;
  12. left: 0;
  13. top: 0;
  14. background-color: black;
  15. color: white;
  16. padding: 6px;
  17. max-width: 500px
  18. }
  19. .hint.z_lewej {
  20. top: 50%;
  21. transform: translate(-100%,-50%);
  22. left: -10px;
  23. }
  24. .hint.z_prawej {
  25. top: 50%;
  26. /*left: 100%;*/
  27. margin-left: 100%;
  28. margin-right: -100%;
  29. transform: translate(10px,-50%)
  30. }
  31. .hint.z_dolu {
  32. top: 100%;
  33. left: 50%;
  34. right: -50%;
  35. transform: translate(-50%,0)
  36. }
  37. </style>
  38. </head>
  39. <body>
  40. <div class="sklep" style="left: 200px; top: 100px">
  41. <img src="obraz.jpg" width="200" height="220" alt="Crapp">
  42. <div class="hint z_prawej">Ten tekst jest bardzo długi. Szerokość hintu dopasowuje się do szerokości obrazka. To efekt niepożądany. Czy istnieją inne rozwiązania problemu poza ustaleniem szerokości hintu na sztywno? Hint nie powinien także wyjeżdżać poza obszar ekranu.</div>
  43. </div>
  44. <div class="sklep" style="left: 400px; top: 400px">
  45. <img src="obraz.jpg" width="500" height="300" alt="Horse">
  46. <div class="hint z_lewej">Krótki tekst</div>
  47. </div>
  48. <div class="sklep" style="left: 300px; top: 800px">
  49. <img src="obraz.JPG" width="200" height="250" alt="Old Balance">
  50. <div class="hint z_dolu">Ten hint wyświetli się pod spodem. Nie ma nic przeciwko, aby przekroczył szerokość obrazka, ale stało się inaczej. Po usunięciu right:-50% efekt jeszcze ciekawszy ;)</div>
  51. </div>
  52. <div class="sklep" style="left: 400px; top: 1300px">
  53. <img src="obraz.pg" width="500" height="300" alt="Horse">
  54. <div class="hint z_lewej">Czasami teksty są bardzo długie. Zobaczmy, czy ten hint wyskoczy poza ekran. Jeśli tak się stanie, jak temu zapobiec?</div>
  55. </div>
  56. </body>
  57. </html>
Działający przykład do edycji: https://jsfiddle.net/mdhpLa7m/
Działający przykład na pełnym ekranie: https://jsfiddle.net/mdhpLa7m/embedded/result/
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 02:00