Обновление (через 5+ лет):
Свойство CSS clip теперь устарело.Вместо этого рассмотрите возможность использования clip-path (с учетом решения, отличного от JS), который позволяет указывать фигуры с процентами.Пример:
/* Bottom half of image */
clip-path: polygon(0 50%, 100% 50%, 100% 100%, 0% 100%);
/* Top half of image */
clip-path: polygon(0 0, 100% 0, 100% 50%, 0 50%);
Дополнительный пример создания треугольника с использованием процентов:
clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
Оригинал: Свойство CSS clip в настоящее время не поддерживает проценты: http://www.w3.org/TR/CSS2/visufx.html#propdef-clip, последний http://www.w3.org/TR/2011/REC-CSS2-20110607/visufx.html#clipping
Решением вашей проблемы может быть использование Javascript для определения размераобласть, которую вы хотите показать, а затем используйте это значение при установке свойства clip .Что-то простое, как это должно сделать трюк:
var heightOfImageToDisplay = image.height / 2;