2013-07-09 4 views
-2

Пожалуйста, проверьте код на http://jsfiddle.net/jfzZQ/Показать плавающие изображения в той же высоте

Мы отображающие два плавающих изображений динамически рядом друг с другом. Мы настраиваем ширину изображений на 200 пикселей и не устанавливаем параметр высоты.

Поскольку изображения имеют разные пропорции, высота одного изображения больше, чем у другого.

<style> 
.img200 {width:200px;} 
.credit {position: absolute; bottom: 8px; left: 8px; 
width: 100%; color: #fff;font-size: 11px;} 
</style> 
<div style="width:405px;"> 
<div style="position: relative; float:left;"> 
    <img class="img200" src="http://images.theage.com.au/2012/12/19/3902461/art-353-  svMESSI-300x0.jpg" /> <span class="credit">site 1</span> 

</div> 
<div style="position: relative; float:right;"> 
    <img class="img200" src="http://i.dailymail.co.uk/i/pix/2012/12/04/article-2242647-11D1474C000005DC-964_634x664.jpg" /> <span class="credit">site 2</span> 

</div> 
</div> 
<div style="clear:both;">new line here</div> 
<br /> 
<br /> 
<div style="width:405px;"> 
<div style="position: relative; float:left;"> 
    <img class="img200" src="http://nimg.sulekha.com/sports/original700/lionel-messi-2009-12-21-15-41-46.jpg" /> <span class="credit">site 1</span> 

</div> 
<div style="position: relative; float:right;"> 
    <img class="img200" src="http://media.npr.org/assets/img/2013/06/12/messi122way_custom-74f98cf7a4148d6405ad71c75457f7a4f516a9c9-s6-c30.jpg" /> <span class="credit">site 2</span> 

</div> 
</div> 
<div style="clear:both;">new line here</div> 

Можно ли скрыть нижнюю часть одного из изображений, чтобы они отображались как одна и та же высота. В случае 1 мы хотели бы скрыть нижнюю часть левого изображения, а в случае 2 мы хотели бы скрыть нижнюю часть правого изображения.

Просим руководствоваться. Благодарю.

+0

Вы можете использовать JavaScript: http://jsfiddle.net/j08691/jfzZQ/4/ – j08691

ответ

2

1)

Создать 2 дивы одинаковой высоты и установить изображения в качестве фона


2)

Изменение тактики .. фон работ, но ваши изображения слишком велики. Позволяет переполнение вместо этого путем добавления к диве:

height: 200px; overflow: hidden; 

http://jsfiddle.net/jfzZQ/1/

Обратите внимание, что я не фиксируя высоту/ширину изображения. Только ширина изображения задается так, чтобы поддерживать пропорции высоты/ширины автоматически. Я просто устанавливаю высоту div и отсекаю ее с переполнением.

3)

Решение от Магомета, кажется, хорошо для меня

ли некоторые CSS рефакторинга ..so не знаю, если вам это нравится. Если вы предпочитаете решение 3, не забудьте дать кредитки Мохаммада & не я

http://jsfiddle.net/jfzZQ/5/

+0

Роберт: мы не можем установить параметр высоты css, так как высота должна быть динамической. Как вы видите во втором случае, ваш код применяет переполнение: скрыто для обоих изображений, и они оказались квадратными. – user374760

+0

Затем установите его на 300 пикселей, чтобы он выглядел прямоугольным :). Соотношения будут соблюдаться (высота динамическая пропорциональна ширине). Просто нижняя часть обрезается с определенной мерой, но вам нужно выбрать размер. Вы можете использовать это чистое решение css, или вам придётся прибегнуть к некоторым ужасным вычислениям, чтобы увидеть, что выше, выберите, который вы хотите короче, и примените js, чтобы скорректировать все это. – Robert

+0

Вам не нужна JS для этой простой задачи. устанавливая ширину на авто и высоту на определенное значение, при этом работа просто прекрасна. –

1

Вы должны установить ширину и изображения на auto, а их высота до определенного значения.

img { 
    width:auto; 
    height: /* make height same for both*/ 
} 

Таким образом, он будет держать пропорции обоих изображений, и она будет также сделать их меньше или больше, в зависимости от высоты. Убедитесь, что вы не добавляете слишком большую высоту, или изображения перейдут на следующую строку.

+0

одно изображение 300px × 469px, другое 634px × 664px .. это будет выглядеть странно. Прямо сейчас ширина фиксирована и высота автоматически, ваше решение просто инвертирует проблему – Robert

+0

мое плохое, ваше решение отлично работает! – Robert

+0

lol, если бы я помог вам, почему бы вам не пойти дальше и не принять и не ответить и не ответить, спасибо –

Смежные вопросы