Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [CSS] Pozycjonowanie i rozciąganie tła
SirZooro
post
Post #1





Grupa: Zarejestrowani
Postów: 243
Pomógł: 32
Dołączył: 14.06.2007

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


Hej,
Mam szablon strony który w przybliżeniu wygląda tak:
(IMG:http://img509.imageshack.us/img509/3277/stronach5.jpg)
Na górze jest pasek (niebieska część) który ma się w założeniu rozciągać na całą szerokość przeglądarki. Gdyby był on jednolity i dałoby się wyciąć fragment o szerokości 1px, to można by go powielić jako tło i nie byłoby problemu. Niestety pasek ten składa się z ukośnych linii, więc najmniejszy powtarzalny fragment jest szerszy (konkretnie 5px). Dlatego trzeba go dokładnie dopasować do środkowej części bo inaczej będzie to nieładnie wyglądać. Z ustawieniem tła w odpowiedniej pozycji umiem sobie poradzić - wystarczy użyć stylu background-position: right dla lewej części (prawa się sama ustawia dobrze) Niestety nie mam pomysłu jak zrobić aby środkowa część miała stałą szerokość, a tło powtórzyło się po bokach. Można użyć tabelki do tego, ale wolałbym tego uniknąć i zrobić całość na divach (lub w inny sposób).

Pytanie zatem brzmi: jak ustawić obok siebie w wierszu trzy divy, tak aby środkowy miał stałą szerokość, a dwa boczne rozciągnęły się tak aby dopasowały się do szerokości obszarów po bokach strony?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
vokiel
post
Post #2





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

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


A po co Ci tu 3 div'y?
Zrób te niebieskie tlo jako tlo body + div z zielonym tlem. I masz to ladnie bez problemu;)
Go to the top of the page
+Quote Post
SirZooro
post
Post #3





Grupa: Zarejestrowani
Postów: 243
Pomógł: 32
Dołączył: 14.06.2007

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


No właśnie nie mogę - nie mam jednolitego tła, tylko takie w ukośne paski i tak się nie da.
Go to the top of the page
+Quote Post
vokiel
post
Post #4





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

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


No to niebieski div jako jeden, a na nim zielony.
  1. <style type="text/css" >
  2. #wrapper {
  3. width: 100%;
  4. background: transparent url(top_bg.jpg) repeat-x top left;
  5. height: 50px;
  6. }
  7. #main {
  8. width: 750px;
  9. margin: 0 auto;
  10. background: blue;
  11. }
  12.  
  13. <div id="wrapper">
  14. <div id="main">
  15. tutaj cała treść
  16. </div>
  17. </div>

Można tak, albo ustawić div'a z niebiskim tłem z tyłu, a tego zielonego na wierzchu (z-index).
Go to the top of the page
+Quote Post
SirZooro
post
Post #5





Grupa: Zarejestrowani
Postów: 243
Pomógł: 32
Dołączył: 14.06.2007

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


Dzięki. Pokombinuję z tym jeszcze, bo mam tam jeszcze zrobione płynne przejścia kolorów. Teraz właśnie przypomniałem sobie jednak że format PNG obsługuje kanał alpha, więc powinno mi się to udać. W razie czego będę jeszcze pytał (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
roobik
post
Post #6





Grupa: Zarejestrowani
Postów: 410
Pomógł: 5
Dołączył: 25.01.2005
Skąd: Wrocław

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


Witam!
Mimo, że mój problem jest podobny, to pozwolę sobie odświeżyć go (rozciąganie tła).
mam grafikę (tzw "belkę" tytułową), lecz jest ona za krótka. Załóżmy, że wygląda to tak:
  1. <table width=100% align=center>
  2. <tr>
  3. <td width=65% class="1">TYTUŁ</td>
  4. <td width=35% class="2">tekst</td>
  5. </tr>

chodzi o podpięcie tła do komórki o szer 65%.
Grafika na tę "belkę" jest szerokości 220px. Czy da radę ją w jakikolwiek sposób rozciągnąć (repeat-x oraz repeat-y nie wchodzi w grę, gdyż nie jest to grafa jednolita)?
Bardzo proszę o pomoc...
Go to the top of the page
+Quote Post
krzysztof_kf
post
Post #7





Grupa: Zarejestrowani
Postów: 1 135
Pomógł: 158
Dołączył: 19.03.2009
Skąd: Toruń

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


oto ci chodzi ?

Kod
<style type="text/css">

#body {
      width: 100%;
      height: 100px;
      background: #0000ff;
}

#column {
      width: 1000px;
      margin: 0 auto 0 auto;
}

#column-left {
      width: 650px;
      float: left;
      font-size: 1.3em;
      font-weight: bold;
      color: #ffffff;
}

#column-right {
      width: 350px;
      float: left;
      font-size: 1.3em;
      font-weight: bold;
      color: #ffffff;
}
      
</style>
<div id="body">
<div id="column">
<div id="column-left">
Tytuł</a>
</div>
<div id="column-right">
tekst</a>
</div>


Ten post edytował krzysztof_kf 25.12.2009, 21:40:15
Go to the top of the page
+Quote Post
roobik
post
Post #8





Grupa: Zarejestrowani
Postów: 410
Pomógł: 5
Dołączył: 25.01.2005
Skąd: Wrocław

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


nie bardzo
może inaczej: vokiel w swojej stopce (kilka postów wyżej) ma grafikę - i teraz załóżmy, że kolumna z avatarem ma 35%, a kolumna z postem ma szer 65%.
grafika u vokiela ma szer 515px i jak widać nie jest rozciągnięta na całą szerokość kolumny z postem.
biorąc teraz moje klasy, to:
  1. .1
  2. {
  3. font-weight: bold;
  4. background-image: url(/gfx/bg1.gif);
  5. background-repeat: no-repeat;
  6. color: #000000;
  7. }

grafika nie może być "repeat", gdyż jest to wzór (podobnie jak u vokiel'a)
Go to the top of the page
+Quote Post
krzysztof_kf
post
Post #9





Grupa: Zarejestrowani
Postów: 1 135
Pomógł: 158
Dołączył: 19.03.2009
Skąd: Toruń

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


jeśli jeszcze nie to to najlepiej jak wyżej kolega przedstawił to na rysunku pozdrawiam (IMG:style_emoticons/default/smile.gif) dodałem obrazek w klasach i możesz tam sobie ustawić szerokość i wysokość obrazka w danej tabeli pozdrawiam (IMG:style_emoticons/default/smile.gif)

Kod
<style type="text/css">
    
    #main {
          width: 1000px;
          margin: 0 auto 0 auto;
    }
    
    #main-left {
          width: 350px;
          float: left;
    }
    
    #main-right {
          width: 650px;
          float: left;
          color: #3399ff;
          font-size: 1.3em;
          font-weigh: bold;
    }
    
    .img {
         float: left;
          background: url(./ironmen.jpg) repeat-x;
          width: 300px;
    }
    
    </style>
    <div id="main">
    <div id="main-left">
    Miejsce na avatar
    </div>
   <div class="img">
    <div id="main-right">
    Treść
    </div>


Ten post edytował krzysztof_kf 26.12.2009, 13:37:44
Go to the top of the page
+Quote Post

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 - 23:01