Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Oblanie obrazka tekstem
Forum PHP.pl > Forum > Po stronie przeglądarki > CSS
yavaho
Dalem taki przyklad oblania obrazka tekstem (lepiej to jest widoczne w mniejszym okienku) a ponizej to samo ale zamiast tekstu jest wypunktowanie. I mam problem z ustawieniem odpowiedniego marginesu w przypadku wypunktowania. Caly czas kropeczki sa schowane za obrazkiem.
  1. .left {
  2. float: left;
  3. }
  4. .img {
  5. width: 90px;
  6. height: 90px;
  7. margin: 0px 5px 0px 100px;
  8. border: 2px solid #cccccc;
  9. }
  10. .txt {
  11. margin: 0px 100px 0px 100px;
  12. }
  13. .ul {
  14. margin: 0px 100px 0px 100px;
  15. }
  16.  
  17. <div class="left">
  18. <img class="img" src="http://forum.php.pl/uploads/av-6503.png" />
  19. </div>
  20.  
  21. <p class="txt">
  22. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
  23. </p>
  24.  
  25. <hr style="clear:both;" />
  26.  
  27. <div class="left">
  28. <img class="img" src="http://forum.php.pl/uploads/av-6503.png" />
  29. </div>
  30.  
  31. <ul class="ul">
  32. <li>1</li><li>2</li><li>3</li>
  33. <li>4</li><li>5</li><li>6</li>
  34. <li>7</li><li>8</li><li>9</li>
  35. </ul>
Kill3R
witam

no wiec tak:

1. dla znacznika li tez daj margin-left

nie ma sensu robic klasy np dla znacznika ul
mozna to zrobic w ten sposob

  1. ul#cos {
  2. margin: 0 0 0 20px;
  3. }
  4. #cos li {
  5. margin: 0 0 0 20px;
  6. }
  7.  
  8. <ul id="cos">
  9. <li>text</li>
  10. <li>text</li>
  11. <li>text</li>
  12. </ul>


2 nie powinno sie podawac przy wartosciach zerowych px
zero to jest zero niexaleznie od tego czy to sa cm px em czy jeszcze jakies inne wymiary

3. jesli bedziesz pisal jakies style dla wszystkich elementow np typu img nie trzeba dla nich klasy tworzyc. Mozna bezposrednio

  1. img {
  2. .........
  3. }
  4.  
  5. <img src="" />
yavaho
Nie mam problemu z optymalizacja kodu CSS tylko z ustaleniem marginesów dla elementów wypunktowanych w taki sposob aby oblewaly obrazek identycznie jak to jest w przypadku tekstu, ktory zamiescilem w tym samym przykladzie. Nic nie osiagnalem ustalajac margin czy padding osobno dla UL czy LI. Nawet umieszczenie UL wewnątrz innego elenentu (div,span,p) nic nie zmienia. W dalszym ciagu nie umiem tego wypunktowania ulozyc tak jak tekstu. Jak masz jakis przyklad, ktory identycznie interpretuje IE, FF i Opera, to bym prosil o podpowiedz.
revyag
Kod
<style type="text/css">
.fleft {
    float:left;
    padding: 0 5px 5px 5px;
}
.img {
    display:block;
}
.txt {
    width:75%;
}
ul {
    margin:0 0 0 15px;
    padding:0;
}
br.clr {
    clear:both;
}
</style>

  1. <img src="obrazek.jpg" alt=" " class="fleft img" />
  2. <div class="fleft txt">
  3. <ul>
  4. <li>
  5. Curabitur ac nulla. Vestibulum elementum pulvinar massa. Donec sed quam.
  6. Donec ac metus a lorem aliquam laoreet. Nullam tempor pede at tellus.
  7. </li>
  8. <li>
  9. Curabitur justo. Praesent nec enim in odio cursus ultricies. Ut ac nunc vitae
  10. sapien tempus nonummy. Phasellus ut massa quis magna porttitor bibendum.
  11. Vestibulum in ipsum.
  12. </li>
  13. <li>
  14. Morbi lacus magna, hendrerit ut, fermentum et, commodo non, ligula.
  15. Quisque vel tortor. Etiam dictum augue eget purus.
  16. </li>
  17. </ul>
  18. </div>
  19. <br class="clr" /><br />
yavaho
@revyag w Twoim przykladzie obrazek nie jest oblany tekstem tylko tekst znajduje sie w bloku, ktory jest po prawej stronie obrazka.
Chodzi mi o takie cos tylko aby punktory byly poza tekstem (jako: outside).
  1. .left {
  2. float: left;
  3. }
  4. .img {
  5. width: 90px;
  6. height: 90px;
  7. margin: 0px 15px 0px 100px;
  8. border: 2px solid #cccccc;
  9. }
  10. .ul {
  11. padding:0;
  12. margin: 0px 100px 0px 100px;
  13. list-style-position: inside;
  14. }
  15.  
  16. <div class="left">
  17. <img class="img" src="http://forum.php.pl/uploads/av-6503.png" />
  18. </div>
  19.  
  20. <ul class="ul">
  21. <li>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. </li>
  22. <li>Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. </li>
  23. <li>Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. </li>
  24. <li>Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. </li>
  25. </ul>
revyag
Nie tekst tylko lista. Swego czasu męczyłem się długo aby wstawić listę obok obrazka i tylko w ten sposób mi się udało.
Axmahey
Witam!
To powinno raczej być zrobione inaczej (podaje miszanke CSS z XHTML, reszte jakoś samemu ustawisz):
  1. <style type="text/css">
  2. img {padding: 10px; float: left}
  3. ul {margin-left: 20px;
  4. <!-- niewiem czy nie za dużo -->
  5. }
  6. </style></head>
  7. <img src=""/><ul>
  8. <li>Twoja treść
  9. </ul>
  10. </body>

Tak chyba jest prościej.
revyag
@Axmahey, ten kod niewiele wnosi, bo pod ie jest problem o którym mówi autor topica. Nie widać znaczników kolejnych elementów listy(kulek:)), wchodzą pod obrazek.
siemakuba
czołem,
małe rozwiązanie wykombinowane na szybko:


Kod
/*
    twoje .ul    
*/

.ul {
    margin: 0px 100px 0px 100px;
}

/*
    zamieniłem na
*/

.ul {
    margin: 0px 100px 0px 100px;
    list-style-position:inside;
}


U mnie jest OK pod FF 1.5, IE 6, Opera 8.5

-- EDIT --

Rozwiązanie było na szybko...
Przy dłuższym tekście zamieszonym w LI może to wyglądać nie tak jak chcesz.
Tekst, który zaiwinie się do nowej linii nie będzie wcięty, ale "obleje" się wokół kropki... no, nie wiem jak to napisać :) potestuj :)
yavaho
@siemakuba ja juz to testowalem. Zobacz na moj ptrzyklad w trzecim moim poscie w tym wątku.
Jezeli punktory ustawi sie jako: list-style-position:inside to wszystko jest tak jak powinno byc, ale jak sie je uatawi jako: list-style-position:outside (domyślna wartość) to właśnie wtedy wystepuje ten problem i punktory wchodza na obiekt ktory powinny oblac.
siemakuba
@yavaho - masz rację... przeoczyłem... mea culpa.

pozdr.
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.