Свойство max-width у изображений (для адаптивности)
Вопрос применительно «резиновых» настроек. Заметил, что если вставить изображение без выравнивания, то ему задается свойство max-width: 100%.
Но если использовать выравнивание, то этого свойства нет. Соответственно, при уменьшении окна браузера такая картинка обрезается (после момента превышения ею ширины контентной части).
Вопрос:
Можно ли как-то вычислить ширину вставляемого изображения в процентах (javascript?) и добавить ему свойство max-width: XX%? В данном случае размер картинки будет всегда пропорционален ширине контентной части.
Но если использовать выравнивание, то этого свойства нет. Соответственно, при уменьшении окна браузера такая картинка обрезается (после момента превышения ею ширины контентной части).
Вопрос:
Можно ли как-то вычислить ширину вставляемого изображения в процентах (javascript?) и добавить ему свойство max-width: XX%? В данном случае размер картинки будет всегда пропорционален ширине контентной части.
9 комментариев
i.width — это и будет реальная ширина картинки, которую вам надо вычислить. А дальше пляшите как нужно.
А если, допустим, меньше, то надо i.width перевести в проценты (от «fluid_max_width»), а затем установить max-width с этими процентами. Как это можно сделать?
Картинка изначально всегда имеет размер 100% :) При этом вы ее вставляете в контент с теми размерами, которые требуется (width 100% или width 400px).
Либо уточните ваш вопрос, либо попробуйте все-таки маленькую картинку (с шириной менее 600) вставить с width 100%.
Я имею ввиду такую логику событий:
Если картинка более 600
— устанавливаем для неё width: 100%
Если нет (т.е. меньше 600)
— выравниваем её по левому краю для обтекания текстом (.text img[align=«left»])
— переводим её ширину в проценты и устанавливаем свойство max-width: XX%
Я попробовал firebug-ом — выглядит отлично (при изменении ширины окна браузера картинка ресайзится).
Попробовал найти пример здесь, но здесь не любят выравнивать картинки по краям :)
Не совсем понятно какую ширину вы хотите установить:
— ставите width:100%, и max-width в пикселях из i.width.
не совсем так.
— допустим ширина картинки (i.width) 200px
— ширина окна 1200px (как вытащить?)
— ширина контентной части 70% (берем из grid.css), вычисляем (как?) = 840px
— ширина картинки в процентах 23,8% (200 от 840)
— задаём max-width 23,8%
Не перемудрил? :)
по-моему, document.body.clientWidth
jQuery. Вычисляется, к примеру, так $(«body .content»).width()
ну а дальше — арифметика.