Jump to content
  • 0

Нестандартные бордеры


chiffenok
 Share

Question

Возникла проблема при верстке достаточно не стандартных бордеров в таблице, см. ниже

1754951m.jpg

Решение которое я выбрала это положить в ячейки div, что бы ему задать margin left и right и ему же добавить border-bottom. Но возникает проблема div по высоте занимает высоту контента и нижний бордер не на одном уровне результат-http://jsfiddle.net/chiffenok/KqNS7/

Объясню, почему я использую внутри дивы: если посмотреть на горизонтальные границы между строками они с разрывами. Что бы сделать такие разрывы подходит маржин слева и справа но маржин не действует на ячейки таблицы. А если просто применить бордеры к ячейкам то они будут слитные. Атрибуты cellspacing и cellpadding здесь не помогут

1743686m.jpg

пробывала скрипт, что применяю на другой странице, но тут он не сработал, причем в скрипте нужно учитывать строки таблице у разных строк может быть разная высота

function setEqualHeight(columns)
{
var tallestcolumn = 0;
columns.each(
function()
{
currentHeight = $(this).height();
if(currentHeight > tallestcolumn)
{
tallestcolumn = currentHeight;
}
}
);
columns.height(tallestcolumn);
}

$(document).ready(function() {
setEqualHeight($(".b-product_position_content .i-product__list-item"));
});

как можно решить эту проблему? может каким нибудудь другим способом? или есть скрипт другой?

Edited by chiffenok
Link to comment
Share on other sites

14 answers to this question

Recommended Posts

  • 0

какие дивы? :facepalmxd:

Это элементарно делается голой таблицей!

бесмысленый пост, тогда подскажите как?

Объясню, почему я использую внутри дивы: если посмотреть на горизонтальные границы между строками они с разрывами. Что бы сделать такие разрывы подходит маржин слева и справа но маржин не действует на ячейки таблицы. А если просто применить бордеры к ячейкам то они будут слитные. Атрибуты cellspacing и cellpadding здесь не помогут

Link to comment
Share on other sites

  • 0

Так пойдёт?

http://jsfiddle.net/KqNS7/3/

спасибо, интересное решение, но нужно без пустых td, они не симантичны, начальник сразу забракует

да, и это будетингрироватся потом в cms, строк в таблице может быть много

Edited by chiffenok
Link to comment
Share on other sites

  • 0

благодарю, отличное решение. там токо border-spacing: 10px 0; что бы не было разрыва у вертикальных бордеров, но это я уже так

вот еще один вопрос, у последний строки вертикальный бордер не доходит до горизонтально пикселов на 10 , прилагаю скриншот, можно это как нибудь сделать например с помощью :last-child?

1718131m.jpg

Link to comment
Share on other sites

  • 0

Обновил - http://web-viper.com/test/test.html

Основа метода - псевдоэлемент :before. Если решение понравиться, хак для кроссбраузерности :before - не проблема.

:last-child не работает в ИЕ ниже 9-го, что бы не нагромождать ослика хаками, лучше для last tr задавать класс... в общем как в моем примере

Link to comment
Share on other sites

  • 0

чет не поняла ни че же не изменилось

Основа метода - псевдоэлемент :before. Если решение понравиться, хак для кроссбраузерности :before - не проблема.

:last-child не работает в ИЕ ниже 9-го, что бы не нагромождать ослика хаками, лучше для last tr задавать класс... в общем как в моем примере

:before для него делала хак, а вот :last-child и :first-child -нет , но не думаю "для last tr задавать класс" это лучшее решение, ведь количество строк в таблице может менятся, а значит прийдется програмным способом находить последнию строку

Link to comment
Share on other sites

  • 0

чет не поняла ни че же не изменилось

Ой... а щас? :rolleyes:

а значит прийдется програмным способом находить последнию строку

Ну ячейки же будут динамически формироваться в шаблоне? Это обычная задача PHP-программиста... ну или того, кто шаблонизирует. Хаки всегда, при возможности, нужно избегать. Лучше их тогда вообще не писать: Если ослик будет не такой как все - он переживет и будет двигаться дальше, а если его перегрузить - он не то что не двинеться с места, он копита откинет )) бедный наш ослик... :rolleyes:

Edited by Viper
Link to comment
Share on other sites

  • 0

Viper, а в Лисе можно починить без обертки?

Обновил. Забыл про "особенность" Лисы... <_<

Но этот вариант решения уже сложнее подгонять под определенный темплейт и блин... пришлось уже ломать мозг и извращаться... :blush:

Может "обертка" и не такой плохой вариант? )) Может же не будет на страницах по 20+ таких ячеек...

П.С. Куча хаков и не дай бог лишний JS, куда хуже 10-20 лишних "оберток" ( DOM обьектов )... ИМХО

Link to comment
Share on other sites

  • 0

Странно, у меня ничего не поменялось.

А какая у вас версия FF? Смотрю на 11-й, работает... Или может я не правильно понял задачу...

Если вы тоже под 11-й, можете обьяснить, что не так? )

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy