• Здраво и добредојдовте на форумот на IT.mk.

    Доколку сеуште не сте дел од најголемата заедница на ИТ професионалци и ентузијасти во Македонија, можете бесплатно да се - процесот нема да ви одземе повеќе од 2-3 минути, а за полесна регистрација овозможивме и регистрирање со Facebook и Steam.

Help, веб дизајнери/програмери

  • Ја почнал/а темата
  • #1

Delicon

Gaining Experience
10 јуни 2007
814
256
delicon.mk
Имам еден проблем што моментално неможам да го решам па решив да прашам тука.

Имам нешто вакво:


Значи, црвеното е проблемот. Маргината што ги дели двете слики излегува надвор од дозволениот простор, во друг случај се подредуваат една под друга.

- 4те слики се зимат од база и се генерира xHTML со нив.

query:
Код:
mysql_query("SELECT * FROM photos WHERE photo_status = 1 ORDER BY photo_date ASC LIMIT 4")

Е сега, како може да се реши проблемот со CSS или пак со PHP?

Пробав со PHP да им даде различни класи на сликите, така да едните имаат float:left, a другите float:right (без маргини).

PHP:
echo "<div id=\"photos\">\n";
while ($row = mysql_fetch_array($query)) {
	if ($row[0] % 2) {
		echo "<div class=\"photoR\">\n";
	} else {
		echo "<div class=\"photoL\">\n";
	}
	echo "<img src=....../>\n";
	echo "</div>\n";
}
echo "</div>\n";
* row[0] е id-то на сликата

Вака се јавува проблем, некогаш се погрешно подредени.


Некоја друга идеја? CSS/PHP? :ermm:
 

dedurus

Intern
31 јануари 2008
2
0
пробај на photoR да ставиш padding-right во CSS-ot.
само како идеја....
 

S

pwnz0r1lla
8 март 2007
1,550
52
www.it.com.mk
Neli mozheshe da se definiraat margini levo/desno(/gore/dole)?

Ako sum u pravo togash prodolzhi go zapochnatoto i na dvete klasi stavi levo odnosno desno, soodvetno.
 

Vermilion

Intern
23 јули 2007
92
0
www.ikon-design.net
Да си ги средеше див таговите со ЦСС документ ќе ти беше најлесно. На секој див елемент ќе му ставеше стајл кој ќе вклучува точно определени димензии и ваљда ќе немаше проблем.
 
  • Ја почнал/а темата
  • #5

Delicon

Gaining Experience
10 јуни 2007
814
256
delicon.mk
пробај на photoR да ставиш padding-right во CSS-ot.
само како идеја....
Neli mozheshe da se definiraat margini levo/desno(/gore/dole)?

Ako sum u pravo togash prodolzhi go zapochnatoto i na dvete klasi stavi levo odnosno desno, soodvetno.
Со користење на двете класи како во примерот се си функционира како што треба освен подредувањето по дата.
Тоа е заради проверката на id: if ($row[0] % 2) ... понекогаш ги дава тие што треба десно-лево, а тие што треба лево-десно.

Значи треба некое друго решение.

Да си ги средеше див таговите со ЦСС документ ќе ти беше најлесно. На секој див елемент ќе му ставеше стајл кој ќе вклучува точно определени димензии и ваљда ќе немаше проблем.
Работата е што секој див неможе да има различна класа (во овој пример).
 

glavince

Intern
9 мај 2008
11
2
Заради тоа што немаш покажано ништо од CSS кодот, неможам да ти дадам конкретен одговор.

Јас овој проблем би го решавал на следниот начин:
PHP:
echo "<div id="photos">n";
 = 0;
while ( = mysql_fetch_array()) {
++;
    echo "<div class="photo" style="float:left"><img src=....../></div>n";
    if ( % 2) {
        echo "<div style="clear:left"></div>n";
    }
}
echo "</div>n";

Обрати внимание на "float:left" i "clear:left"

edit: Зошто кога го пишувам кодот во
PHP:
се бришат променливите ($) и (\) slash.

echo "<div id=\"photos\">\n";
$i = 0;
while ($row = mysql_fetch_array($query)) {
$i++;
echo "<div class=\"photo\" style=\"float:left\"><img src=....../></div>\n";
if ($i % 2) {
echo "<div style=\"clear:left\"></div>\n";
}
}
echo "</div>\n";
 
  • Ја почнал/а темата
  • #7

Delicon

Gaining Experience
10 јуни 2007
814
256
delicon.mk
Заради тоа што немаш покажано ништо од CSS кодот, неможам да ти дадам конкретен одговор.

Јас овој проблем би го решавал на следниот начин:
Обрати внимание на "float:left" i "clear:left"

edit: Зошто кога го пишувам кодот во
PHP:
се бришат променливите ($) и () slash.

echo "<div id="photos">n";
= 0;
while ( = mysql_fetch_array()) {
++;
echo "<div class="photo" style="float:left"><img src=....../></div>n";
if ( % 2) {
echo "<div style="clear:left"></div>n";
}
}
echo "</div>n";
Пробав и вакво нешто, но, во while ($row = mysql_fetch_array($query)) loop не функционира $i++; :ha:
 
  • Ја почнал/а темата
  • #8

Delicon

Gaining Experience
10 јуни 2007
814
256
delicon.mk
Средено :D
По необјаслива причина профункционира со $i++
Пробав неколку начини со $i++ но никако $i не се покачуваше за +1 :ha:

Сега е ок, незнам како, но профункционира.
 

glavince

Intern
9 мај 2008
11
2
Средено :D
По необјаслива причина профункционира со ++
Пробав неколку начини со ++ но никако не се покачуваше за +1 :ha:
Можеби си имал грешка во кверито.
Е сега среди го уште CSS, ако користиш "margin" и "padding" мислам дека ќе се сретнеш со уште еден проблем во ИЕ, а тој е што од необјасливи причини ИЕ ги дуплира маргините. Проблемот се решава додавање на "display:inline" на елементите фрз кои користиш float.
 
  • Ја почнал/а темата
  • #10

Delicon

Gaining Experience
10 јуни 2007
814
256
delicon.mk
Можеби си имал грешка во кверито.
Е сега среди го уште CSS, ако користиш "margin" и "padding" мислам дека ќе се сретнеш со уште еден проблем во ИЕ, а тој е што од необјасливи причини ИЕ ги дуплира маргините. Проблемот се решава додавање на "display:inline" на елементите фрз кои користиш float.
query-то не е променето.
а за CSS-от средено беше. Нема маргини, само float:left и float:right.
 

Нови мислења

Последни Теми

Статистика

Теми
43,527
Мислења
822,632
Членови
28,052
Најнов член
Ttifun
На врв Дно