Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.221.250.212] |
|
Сообщ.
#1
,
|
|
|
Здравствуйте, Господа!
Каюсь, я не великий спец в HTML/CSS, да и не мое это. Однако жизнь заставила и нужно добить один проектик. Собственно, все уже более-менее нормально и работает, но остались маленькие косметические дефекты и вся глубина моего незнания, как это исправить. Простейшая ситуация: <HTML> <HEAD> </HEAD> <BODY> <table width="700pt" align="center"> <tr><td><img src="pic1.gif"></td></tr> <tr><td><img src="pic2.gif"></td></tr> </table> </BODY> </HTML> Мне нужно, что бы pic2.gif была точно под pic1.gif (ширина картинок одинаковая = 700рх) без зазора между ними. Понимаю, что данная проблема решается стилями, но я не знаю как. Пытался использовать margin, но мы с ним друг друга не поняли <style> body { margin: 0px; } </style> <body> <!-- ...... --> </body> Подскажите, пожалуйста! |
Сообщ.
#2
,
|
|
|
body - элемент над которым ты оперируешь в css, margin - внешний отступ. Плюс атрибут width у тейбл не должен содержать единиц измерения (т.е. просто 700, если уж решил атрибутами, которые не рекомендуются, ибо устарели давно, а не стилями).
Рекомендую использовать штуки вроде "reset css", так и гуглится. Оно приводит все стили к единому виду во всех браузерах, учитывая их различия в визуальном оформлении. На подобие вот этого: /* Eric Meyer's Reset CSS v2.0 - http://cssreset.com */ html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{border:0;font-size:100%;font:inherit;vertical-align:baseline;margin:0;padding:0}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:none}table{border-collapse:collapse;border-spacing:0}td{padding:0} Я позволил себе вольности и добавил туда то, что тебе надо - убрал отступы внутри таблиц. Добавлено Цитата Serafim @ Я позволил себе вольности и добавил туда то, что тебе надо - убрал отступы внутри таблиц. table { border-collapse: collapse; border-spacing: 0; } td { padding: 0; } |
Сообщ.
#3
,
|
|
|
Serafim
Сделал как Вы предложили, но это ничего не дало. Между картинками сохраняется отступ. Чего-то не хватает... Дьявол кроется в нюансах. Точнее, в отступах. Если обе картинки загнать в ячейки как "background", то убрать между ними зазор - не сложно. А если картинка вставлена в ячейку, то победить "зазор" не получается. Вот что утверждает dragonfly (Opera) .stab table { border: 0px; border-spacing: 0px; //зачеркнуто padding: 0px; } table { display: table; border-collapse: separate; border-spacing: 2px; border-color: gray; } По не понятной причине border-spacing игнорируется и встает значение по умолчанию, т.е. 2px. Из htmlbook.ru "Задает расстояние между границами ячеек в таблице. border-spacing не работает в случае, когда для таблицы установлено свойство border-collapse со значением collapse. " Убрал collapse, теперь, как видите separate, однако мой стиль |
Сообщ.
#4
,
|
|
|
К слову, Opera 12 всегда может что-то утверждать и творить полную отсебятину (глючить) даже в тех местах, где это кажется невозможным.
Добавлено Цитата HighMan @ Если обе картинки загнать в ячейки как "background", то убрать между ними зазор - не сложно Хорошая идея, почему не сделать именно так? |
Сообщ.
#5
,
|
|
|
Цитата Serafim @ Опере можно верить, можно не верить. Но проблема-то остается! Ладно бы Dragonfly показывал эти несчастные 2рх, но зазора бы не было. Однако, зазор есть и составляет он 4 пиксела. Как раз 2 * 2рх = 4рх. Решить данную (частную задачу) можно объявив картинки бакграудами. И частная задача будет решена. Точнее, проблема останется, только обходным путем от нее удастся убежать. Не правильно это. Нужно найти решение и избавится от проблемы. |
Сообщ.
#6
,
|
|
|
о, ну так у img по умолчанию disply: inline-block - это значит, что учитываются все пробелы вокруг. Чтоб избавиться от этого - ей надо принудительно выставить disply: block
http://jsbin.com/wovajiwoma/1/ <!DOCTYPE html> <html> <head> <style> table { border-collapse: collapse; border-spacing: 0; } td { padding: 0; } img { display: block; } </style> </head> <body> <table> <tr> <td> <img src="https://d13yacurqjgara.cloudfront.net/users/38298/screenshots/1779032/1_1x.jpg" /> </td> </tr> <tr> <td> <img src="https://d13yacurqjgara.cloudfront.net/users/38298/screenshots/1779032/1_1x.jpg" /> </td> </tr> </table> </body> </html> |
Сообщ.
#7
,
|
|
|
Отступ снизу от вставленной картинки в ячейку я тоже так и не поборол ни в одном из браузеров кроме ослика (с ним особые отношения, он более послушный )...
Вообще из этого всего я таки вынес один вывод, который нам внушают "с детства": таблицы существуют не для дизайна! Они существуют для данных! Поэтому ячейки видимо не будут нас слушаться в плане уничтожения отступов и т.п. и неоходимо использовать более подходящие контейнеры, как например дивы Добавлено Serafim, я вообще многое перепробовал, чтобы избавить от всяких таких вещей, не помогает... Добавлено Если что, у меня просто иконка, ровно 42х42 и хотелось иметь высоту строки ровно 42, поэтому, а не потому, что я расставляю картинки по странице таблицами |
Сообщ.
#8
,
|
|
|
Цитата fatalist @ Serafim, я вообще многое перепробовал, чтобы избавить от всяких таких вещей, не помогает... пример по ссылке Добавлено |
Сообщ.
#9
,
|
|
|
<html> <head> </head> <body> <table cellpadding="0" cellspacing="0"> <tr><td><img src="pic/1.jpg"></td></tr> <tr><td><img src="pic/2.jpg"></td></tr> </table> </body> </html> Так и хочется сказать "А ларчик просто открывался", ан нет. Одна и та же конструкция может безбожно глючить на одном и том же браузере. Эти несчастные паддинги со спейсингами я переделывал раз 20 и отступ имел место быть, а потом, ВДРУГ, взяло и получилось. Попробуйте эту конструкцию сами. Картинки одинаковой ширины, высота может отличаться. Очень интересно увидеть отчеты от попробовавших. Кстати, на IE8 работает нормально. Если у всех получится, то тему подвешу как "Вопрос решен". |
Сообщ.
#10
,
|
|
|
эээ, какую конструкцию?
|
Сообщ.
#11
,
|
|
|
печально
|
Сообщ.
#12
,
|
|
|
Ну у меня на файрфоксе и ИЕ последний пример без отступов отображается.
А вообще, пробовали через css параметры padding и margin для всех обьектов обнулить? Ну и еще до кучи border-spacing для всей таблицы. |
Сообщ.
#13
,
|
|
|
Цитата DIS @ Ну у меня на файрфоксе и ИЕ последний пример без отступов отображается.А вообще, пробовали через css параметры padding и margin для всех обьектов обнулить? Ну и еще до кучи border-spacing для всей таблицы. Я пробовал через css. Не получилось. Тут, скорее всего, вина в крайне поверхностном знакомстве с css. Вообще, я сисадмин и программер. Взялся не за свое дело. Всегда недолюбливал эти веб дизайны. Теперь удостоверился, что не напрасно . Больше всего понравилась подача информации в разных справочниках. В одном месте о border-spacing просто описание. В другом упоминается, что этот стиль игнорируется при border-collapse:collapse. В третьем.. В третьем упоминается о border-collapse и сноской, что IE этот стиль, вообще, не поддерживает... Языки высокого уровня - ЗЛО! Зло и раз...тво! HTML это не язык программирования, но квинсистенция этого самого раз...ства. |
Сообщ.
#14
,
|
|
|
полностью поддерживаю товарища сисадмина и программера. я бы вообще запретил их нафиг, только светлые машинные коды и перфокарты. а лучше вообще изба, печка и водка
ps интересно, по идее с завтрашнего дня зима, пациенты схлынут. даже как-то жалко |