Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > HTML и CSS
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.12.2011, 00:11   #1
keen_
Форумчанин
 
Регистрация: 07.12.2011
Сообщений: 112
По умолчанию Форматирование и выравнивание текста в блоках

Совсем запутался, не могу разобраться с CSS.
Не поможете кодом? Сейчас блоки с автомобилями вот так выглядят: ссылка
а нужно вот так как на картинке.

Т. е. чтобы все тексты был align left и верхний заголовок (Acura TSX) не имел отступа от верхней границы блока, а нижний текст (Цена) не имел отступа от нижней границы блока.

Чтобы было по 3 блока в каждой линии, а не два как сейчас у меня и вообще у меня какая-то каша-малаша.
Ширина блока - 224px. Высота - не нужно задавать. Расстояние между блоками - 34px, расстояния между верхними тремя блоком и нижними тремя блоком - тоже 34px.

Готов даже символически "заплатить" за помощь.
Изображения
Тип файла: jpg bloki.jpg (202.8 Кб, 123 просмотров)
keen_ вне форума Ответить с цитированием
Старый 18.12.2011, 02:55   #2
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

Не понятно, зачем там таблицы, все отлично верстается блоками.
Если не задавать статичную высоту блока, то нижние строчки будут цепляться за выступы верхних. Придется после каждой строки бросать блок с clear:both.
Верхний отступ берется от margin-top блока с названием и от padding ячейки.
Alar, верни репу!
Naive вне форума Ответить с цитированием
Старый 18.12.2011, 03:02   #3
keen_
Форумчанин
 
Регистрация: 07.12.2011
Сообщений: 112
По умолчанию

Вы ошибаетесь, там нет никаких таблиц (<TABLE>). Там CSS, дивы в выводе этих блоков с автомобилями.
У меня не получается сделать, то что описал выше.
keen_ вне форума Ответить с цитированием
Старый 18.12.2011, 03:17   #4
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

Цитата:
Сообщение от keen_ Посмотреть сообщение
Вы ошибаетесь, там нет никаких таблиц (<TABLE>). Там CSS, дивы в выводе этих блоков с автомобилями.
У меня не получается сделать, то что описал выше.
по всей видимости, хром меня обманывает:
screen.jpg
Alar, верни репу!
Naive вне форума Ответить с цитированием
Старый 18.12.2011, 03:46   #5
keen_
Форумчанин
 
Регистрация: 07.12.2011
Сообщений: 112
По умолчанию

Цитата:
Сообщение от Naive Посмотреть сообщение
по всей видимости, хром меня обманывает:
Вложение 45503
Ой, извиняюсь. Вы правы. Я не заметил сразу.

Сайт стоит на движке diafan. Это он делает таблицы.
Но не в этом суть. А в том, что у меня не получается поставить тексты в нужные места и отступы сделать нужные.

Последний раз редактировалось keen_; 18.12.2011 в 03:48.
keen_ вне форума Ответить с цитированием
Старый 18.12.2011, 12:15   #6
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

Откуда берутся отступы, я уже сказал.
Текст, судя по bloki.jpg, должны располагаться под изображением, с такой структурой таблицы это невозможно (без css-костылей, ес-но).
Alar, верни репу!
Naive вне форума Ответить с цитированием
Старый 18.12.2011, 12:21   #7
keen_
Форумчанин
 
Регистрация: 07.12.2011
Сообщений: 112
По умолчанию

Да не в отступах дело вообще. Нужно 3 блока в строке и тексты чтобы были внизу под картинкой, а не сбоку как сейчас.

keen_ вне форума Ответить с цитированием
Старый 18.12.2011, 14:33   #8
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

В первой строке таблицы заголовок.
Во второй две ячейки: в первой картинка, во второй — текст.
Код:
Текст, судя по bloki.jpg, должны располагаться под изображением, с такой структурой таблицы это невозможно (без css-костылей, ес-но).
Alar, верни репу!
Naive вне форума Ответить с цитированием
Старый 18.12.2011, 18:42   #9
keen_
Форумчанин
 
Регистрация: 07.12.2011
Сообщений: 112
По умолчанию

Ой, въехал сейчас. Извините, что тупил Сам не вгляделся внимательно в тот код таблицы. Иногда притупляется внимание и сообразительность, когда работаешь торопясь и очень долго без отдыха и впридачу от природы такие темы плохо понимаю.

Вы абсолютно правы.

Я сделал правки в файле ответственном за вывод этих блоков - shop.view.php и теперь всё отформатировано как нужно. Вот взгляните: ссылка.

Теперь только одно осталось - чтобы блоки выводились по 3 в строке. В общих очертаниях знаю что и где нужно делать, но не получается что-то. А править нужно файл shop.view.php. Вот эта часть кода:

PHP код:
        //вывод списка товаров
        
if (! empty($result["rows"]))
        {
            foreach (
$result["rows"] as $row)
            {
                echo 
'<table cellpadding=0 cellspasing=0 class="shop"><tr bgcolor=#6a66fd><td valign=top>';

                
//вывод названия и ссылки на товара
                
echo '<div class="shop_name">';
                echo 
'<a href="'.BASE_PATH_HREF.$row["link"].'">'.$row["name"].'</a>';
                    
//рейтинг товара
                    
if (! empty($row["show_rating"])) echo ' '.$row["show_rating"];
                 echo 
'</div>';

                
//вывод артикула
                
if (! empty($row["article"])) {
                echo 
'<div class="shop_article">';
                echo 
$this->_('ARTICLE').':'//вывод слова "Артикул" из языковой переменной
                
echo '<span class="shop_article_value">'.$row["article"].'</span>';
                echo 
'</div>';
                }
                
                echo 
'</td></tr><tr bgcolor=#ffe032><td valign=top>';
                
                
//вывод изображений товара
                
if (! empty($row["img"]))
                {
                    echo 
'<div class="shop_img">';
                    foreach (
$row["img"] as $img)
                    {
                        switch(
$img["type"])
                        {
                            case 
'animation':
                                echo 
'<a href="'.BASE_PATH.$img["link"].'" rel="prettyPhoto[gallery'.$row["id"].'shop]">';
                                break;
                            case 
'big_image':
                                echo 
'<a href="'.BASE_PATH.$img["link"].'" rel="big_image" width="'.$img["link_width"].'" height="'.$img["link_height"].'">';
                                break;
                            default:
                                echo 
'<a href="'.BASE_PATH_HREF.$img["link"].'">';
                                break;
                        }
                        echo 
'<img src="'.$img["src"].'" width="'.$img["width"].'" height="'.$img["height"].'" alt="'.$img["alt"].'" title="'.$img["title"].'">'
                        
.'</a> ';
                    }
                    echo 
'</div>';
                }
                
                echo 
'</td></tr><tr bgcolor=#54de88><td valign=top>';
                
                
//вывод параметров товара
                
if (! empty($row["param"]))
                {
                    
self::param($row["param"]);
                }
                
                
//вывод скидки на товар
                
if (! empty($row["discount"]))
                {
                    echo 
'<div class="shop_discount">'.$this->_('DISCOUNT').': <span class="shop_discount_value">'.$row["discount"].' %'.($row["discount_finish"]?' (до '.$row["discount_finish"].')':'').'</span></div>';
                }
                
                
//вывод краткого описания товара
                
if (! empty($row["anons"]))
                {
                    echo 
'<div class="shop_anons">'.$row["anons"].'</div>';
                }
                
                
//цена на товар
                
if (empty($row["depend"]) && ! empty($row["price"]))
                {
                    echo 
'<div class="shop_price">'.$this->_('PRICE').': <span class="shop_price_value">'.$row["price"].'</span> <span class="shop_price_currency">'.$result["currency"].'</span></div>';
                    if (! empty(
$row["old_price"]))
                    {
                        echo 
'<div class="shop_old_price">'.$this->_('OLD_PRICE').': <span class="shop_price_value">'.$row["old_price"].'</span>'
                        
.' <span class="shop_price_currency">'.$result["currency"].'</span></div>';
                    }
                }

                
//вывод кнопки "Купить"
                
self::form($row$result);

                echo 
'</td></tr></table>';
            }
            echo 
'<div class="clear"></div>';
        } 
keen_ вне форума Ответить с цитированием
Старый 19.12.2011, 09:58   #10
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

Смотрел вчера ваш сайт, но не было возможности ответить. У вас не подгружаются стили. В классе .shop было свойство float:left, оно выравнивало таблицы в строку, его нужно вернуть.
Но, при добавлении других элементов (больше трех) они будут «цепляться» за верхний ряд, чтобы этого не происходило, необходимо либо задать статичную высоту каждому элементу, либо после каждой строчки бросать блок с очищающим выравнивание стилем clear:both.
Alar, верни репу!
Naive вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выравнивание текста gamaiunov_alex Microsoft Office Excel 11 19.04.2011 10:04
выравнивание текста Olya1985 Microsoft Office Excel 3 20.02.2011 10:13
выравнивание текста Olya1985 HTML и CSS 2 19.02.2011 21:28
Форматирование текста (разбивка и выравнивание) regAlex3 Общие вопросы C/C++ 1 03.01.2010 16:29
Выравнивание текста SeregaIRK Общие вопросы Delphi 4 21.07.2008 15:17