Я исследовал, как сделать решение SLaks, и обнаружил «хак», который подходит для моей ситуации. Хотя он не выполняет операцию растяжения, я имитирую такую, которая подходит для моей ситуации, и это 100% CSS. Я не утверждаю, что это общее решение, но оно работает для меня.
Чтобы ответить на вопрос, мне нужно быть немного более точным в своем определении моей проблемы.
в моем оригинальном коде
<div style="background-image: url(foo.jpg) repeat-x;">
... Injected HTML codes
</div>
foo.jpg - градиент 600px x 1px от цвета к белому, который является цветом веб-сайта. Таким образом, на больших дисплеях я получаю очень плавный переход от цветного к белому. То, что это не идет ко дну, - это то, с чем я могу жить. Проблема возникает, когда мне нужно визуализировать некоторые данные, отображающие только 300 пикселей в высоту. Тогда только 300 пикселей из 600 пикселей на градиентном дисплее. В результате чего «некрасивый» шаг меняет цвет. Это то, что мне действительно нужно, чтобы избавиться от изменения размера.
Хотя изменение размера фона является технически более чистым решением, я сделал
<div style="background-image: url(foo.jpg) repeat-x;">
<div style="background-image: url(fooBottom.png) repeat-x; background-position: bottom;"
... Injected HTML codes
</div>
</div>
fooBottom.png для меня - это изображение размером 200 на 1 пиксель, 100% белого цвета снизу и 100% прозрачного вверху.
Ключевым моментом на внутренней стороне является "background-position: bottom;" Это позиционирует новый фоновый раздел. Если отображаемый для меня раздел имеет высоту> 800 пикселей, этот новый код ничего не делает визуально.
Но для секций короче, чем 800px, нижнее изображение становится ближе к верхнему. Это покрытие происходит потому, что внутренний блок нарисован «выше» внешнего блока. Затем, если секция становится короче, нижнее фоновое изображение покрывает все больше и больше верхнего фонового изображения.
Но из-за прозрачности на нижнем изображении это гарантирует, что на более коротких участках будет смесь с белым на дне.
Я собираюсь создать блог на моем личном сайте, который показывает примеры. Когда я закончу пример, я обновлю этот пост.
ОБНОВЛЕНИЕ - я опубликовал рабочий пример на http://sntsoftware.com/Blog