Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [CSS]margines dla tekstu bez stosowania kolejnego diva.
Forum PHP.pl > Forum > Przedszkole
GoOx
Cześć,

Jak w temacie, czy istanieje jakiś sposób w css zrobić aby można było utworzyć margines dla tekstu dla diva?

padding odpada ponieważ tłem jest obrazek i całośc by była nieładna estetycznie.
b4rt3kk
Ustalasz padding i pomniejszasz wymiary diva o ten padding. Przykładowo jeśli obrazek tła ma 200x200px i właśnie takie nadałeś width i height, to ustalając równomierny padding, dajmy na to 20px musisz odjąć tyle z każdej strony i nadać wymiar diva 160x160px. Drugim sposobem jest background-position: x y tak samo pozycję możesz ustalić samym background.
GoOx
Dzięki działa.

Ale chyba jest problem ponieważ tekst to jest odsyłacz a gdy padding zabiera to pole zmniajszamy obrazek i trzeba celować praktycznie w napis aby kliknąc w odsyłacz.
b4rt3kk
Jeśli dobrze rozumiem to div jest tłem buttona? Prościej zrobić z odnośnika (a) blok i nadać mu tło:

  1. a {
  2. display: block;
  3. width: 100px;
  4. height: 35px;
  5. padding: 5px;
  6. background: url(tlo.jpg);
  7. }
GoOx
To nawet nie jest głupi pomysł ale jak wypozycjonować ten "a" na tle obrazka? I zrobić tak aby tło obrazka też całe tło było tym odsyłaczem.
b4rt3kk
Jeśli z a zrobisz display: block wtedy jest to odnośnik w postaci bloku, np o wymiarach 200x50px i wtedy gdziekolwiek by nie kliknąć na nim, nie musi być na tekście to jest to cały czas odnośnik.

To tło co miałeś w divie dajesz w a, nadajesz mu odpowiednie wymiary.

Najlepiej by było jakbyś podał fragment kodu HTML+CSS, bo tak to są tylko moje wyobrażenia. smile.gif

GoOx
Mam coś takiego:

  1. <a href='index' class='p_ziemia'>Strona główna</a>


CSS:

  1. a .p_ziemia {
  2. background-image: url('../images/inp_ziemia.png');
  3. width:130px;
  4. height:30px;
  5. display:block;
  6. cursor:pointer;
  7. color:f4f4f4;
  8. font-weight:800;
  9. text-decoration:none;
  10. }
  11.  
  12. a .p_ziemia:hover {
  13. background-image: url('../images/inp_ziemia_hover.png');
  14. width:130px;
  15. height:30px;
  16. display:block;
  17. cursor:pointer;
  18. color:f4f4f4;
  19. font-weight:800;
  20. text-decoration:none;
  21. }


Teraz nawet obrazek nie jest wyświetlany.

Dobra już sobie poradziłem.
b4rt3kk
Przyczyną tego, że obrazek się nie wyświetla może być nieprawidłowa ścieżka?

  1. a .p_ziemia {
  2. background: transparent url('../images/inp_ziemia.png') top left no-repeat;
  3. width: 130px;
  4. height: 30px;
  5. display: block;
  6. cursor:pointer;
  7. color: f4f4f4;
  8. font-weight: 800;
  9. text-decoration:none;
  10. }
  11.  
  12. a .p_ziemia:hover {
  13. background-image: url('../images/inp_ziemia_hover.png');
  14. }


Nie musisz powtarzać dla hoverów wszystkich tych własności jak dla zwykłego a, wystarczy tło, poza tym lepszym rozwiązaniem jest jeden obrazek pod drugim i dla podświetlenia robisz tylko:

  1. a:hover {
  2. background-position: bottom left;
  3. }


tak dla przykładu.
sunpietro
To, że obrazek się nie wyświetla jest winą tego że źle napisałeś selektory. Powinno być a.p_ziemia a nie a .p_ziemia
Takie małe wtrącenie do pierwszych postów. zawsze możesz też wykorzystać:
Kod
* {
    -moz-box-sizing: border-box;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
}

i możesz zapomnieć o wyliczaniu szerokości z uwzględnieniem paddingów wink.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.