Страницы: 1
Решением будет использование Greasemonkey с соответствующим скриптом...
Спасибо за наводку. Я не стал заморачиваться с Greasemonkey, а просто написал на основе предложенного кода небольшой js-файлик, который подключаю в тексте отлаживаемой страницы одной строкой.
Во-первых, добавил substBase('link','href') для подгрузки стилей. Но вот проблема - не отображаются фоны с абсолютным путем {background-image: url(/img/bg.gif);}. Поэтому до кучи написал функцию для обхода и замены абсолютных путей в стилях. Вкратце:
[code]base = file://localhost/C:/';
...
string2correct = "url(/"
base = "url(" + base;
reStyle('backgroundImage');
reStyle('cursor');
reStyle('font');
...
function reStyle(attr) {
var items = (document.styleSheets) ? document.styleSheets[0] : null;
if (!items||!items.insertRule) return;
items=items.cssRules;
for (var i = 0; i < items.length; i++)
if (eval('items[i].style.' + attr).length > 0)
if (eval('items[i].style.' + a
против „известной причины“ отлично помогает CSS-правило table-layout:fixed
Если применить для таблиц table-layout: fixed, то ее размеры будут определяться браузером в следующем порядке:
Простое выставление table-layout: fixed не помогло - колонки во всех разделах по-прежнему разной ширины. Приписываю <col width="30%"><col width="70%"> и всё становится на свои места - колонки в разделах принимают нужный вид.
Но, смотрю ниже, во вложенных таблицах контента, у которых не была указана ширина ячеек, все столбцы стали одинаковой ширины - не работает автоподбор ширины по содержимому. Решил путем выставления table-layout: auto для вложенных таблиц.
Итак, решение:
table {table-layout: fixed}
table table {table-layout: auto}
+
<col width="30%"><col width="70%">
Затем выявилось другое побочное явление - при уменьшении ширина окна браузера, колонки наползают друг на друга. И в IE, и в Mozilla.
Судя по всему, это явное неисправляемое последствие
Структура страницы представляет собой три раздела - шапка, контент, подвал - визуально разделенные на две колонки определенной ширины, например 30% и 70%.
Используем табличную верстку страницы. Каждый раздел - шапку, контент, подвал - помещаем в отдельную таблицу (по известной причине). Ширина таблиц - 100%. Все три таблицы содержат по два столбца с указанной для каждого шириной - 30% и 70% соответственно. Окна браузеров развернуты на весь экран, широченных картинок, распорок и т.п. - нет, у таблиц и ячеек нулевые отступы и бордюры - всё предельно просто.
Наполняем ячейки содержимым (в основном текст, небольшие таблицы) - в FireFox ширина столбцов во всех разделах начинает разъезжаться - где шире, где уже. В IE все три таблицы отображаются корректно - ширины столбцов соответствуют заданным.
Вопрос - как добиться отображения в FireFox одинаковой ширины колонок во всех трех таблицах?
Использование одной таблицы из трех строк - исключено.
Главное, мораль темы-то:
Абсолютные пути в HTML корректно обрабатываются в Firefox
Да не мораль нужна в данном случае и не хотелось бы опять скатываться до выяснения "кто правильнее обрабатывает". Вопрос в том
"как заставить Firefox отрабатывать абсолютные ссылки на ресурсы"?
А вот поразмыслив глубже, я пришел в выводу, что (ИМХО, конечно) корень данной проблемы кроется именно в корне (простите за тавтологию). Точнее, что со времен ДОСа файловая система построена на том, чтобы не замечать главного корня, а каждый раздел - "СамСебеКорень". Поэтому IE в данном случае намного ПРОЩЕ!
Это, конечно, тоже оффтопик... Прошу не распространять далее эту мысль. =)
Какая-то дикая путаница :-) Почитайте: http://www.ietf.org/rfc/rfc3986.txt
Вообще, следует указать базу (<BASE>) как(это как пример. сделайте, кстати, такую закладку на панель задач - просто перетащите - вы удивитесь :])
"file://localhost/C:/" тоже не помог... Быть может, хрен с ними, с этими путями абсолютными...
У меня на жёстком работают оба варианта:
<img src="img/surf.gif">
<img src="file:///D:/img/surf.gif">
<img src="img/surf.gif"> - это относительный путь.
<img src="file:///D:/img/surf.gif"> работает безусловно.
Рассматривается же именно <img src="/img/surf.gif"> с начальным слешем, предполагающим корень.
/ - это корень, в системе он не приравнивается к букве диска.
IE понимает, что это именно корень текущего диска, например "D:/"
Кстати, а чем абсолютные пути лучше относительных?
Я лично наоборот абсолютных стараюсь избегать
Согласен, что ничем не лучше, вопрос не в том. Просто столкнулся и захотел разобраться.
Почему не работает именно в Mozille, и не помогает <BASE>.
Дело в том, что Mozilla ищет ресурсы не в "file:///d:/img/", к примеру, а в "file:///img/", т.е. по примеру *nix систем в корне монтирования всех девайсов, что ли ?
Тэг <BASE> оказал частичное влияние: только на ссылки на странице. Ресурсы же, графика в т.ч. так и остались недоступны. =(
Обкатывается сайт, запускаю index.html локально с винта.
сайт в корне диска, в корне же директорий с графикой "img"
в общем, есть в исходнике строка типа следующей:
img src="/img/surf.gif"
Т.е. картинка должна искаться в директории "img", которая в корне.
Firefox же не хочет ее там искать. А указывать, например, "d:/img/surf.gif", согласитесь, неудобно, я же не для диска D: делаю сайт.
В то же время IE все понимает правильно и отображает все картики с абсолютными путями.
Так вот вопрос - это баг (или фича) Mozillы ?
Это исправляемо или обхождаемо? Есть ли костыли?
спасибо.
Страницы: 1