2014-06-13 5 views
1

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

Javascript в порядке, но суетиться с HTML не так, поскольку он должен работать в теме WordPress.

HTML:

<p>Visible content.</p> 

<div class="feat-img"> 

<a href="#"> 
<img src="http://f.cl.ly/items/1e1515393T2l0D3I2503/feat-img.jpg"/> 
</a> 

</div> 

<p>Hidden content :(</p> 

</article> 

CSS:

.feat-img img{ 
position: absolute; 
width: 100% !important; 
min-width: 400px; 
min-height: auto; 
height: auto;} 

.feat-img img:empty{ 
left: 50%; 
-webkit-transform: translate(-50%,0); 
-moz-transform: translate(-50%, 0); 
-ms-transform: translate(-50%, 0); 
-o-transform: translate(-50%, 0); 
transform: translate(-50%, 0);} 

article{ 
width: 50%; 
margin: auto; 
background:#ccc;} 

Live: http://jsfiddle.net/wzvLa/4/

ответ

2

Я думаю, что это не может быть дон только с помощью CSS, потому что, когда вы установите position: absolute в img его родителей больше не содержат его. Вы можете написать немного яваскрипта код, чтобы сделать это:

$('.feat-img').css({ height: $('.feat-img img').height() }); 

Таким образом, вы установите высоту .feat-im быть таким же, как изображение в нем. Не забудьте сделать это и на $(window).resize(), так что он может быть отзывчивым.

Вот что я делаю: jsfiddle

+0

Это не показывает скрытый контент. –

+0

извините, моя ошибка :) попробуйте еще раз: http://jsfiddle.net/wzvLa/8/ – ndcweb

+0

Это лучше, но как только вы расширяете размер экрана, он снова скрывает содержимое. –

0

Вот один из способов сделать это:

html,body { margin: 0; } 
.feat-img img { 
    position: relative; 
    width: 133.33%; /* (100% divided by article width) */ 
    min-width: 400px; 
    height: auto; 
    left: 50%; 
    -webkit-transform: translateX(-50%); 
    transform: translateX(-50%); 
} 
article { 
    width: 75%; 
    margin: auto; 
    background: #ccc; 
} 

(jsfiddle demo)

+0

Это разбивает изображение, оно больше ширины 100% –

+0

@MathewMacLean Да, вам нужно удалить поля из HTML, чтобы получить его, чтобы растянуть на 100% ширины страницы нет. См. [Здесь] (http://jsfiddle.net/5pz2d/) – thykka

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