我下面有一张图片和一段文字。我正在尝试制作图像文本宽度的最大宽度。 (未定义图像的大小,也未定义父div的大小)
<div>
<img src="http://upload.wikimedia.org/wikipedia/commons/thumb/b/b8/NYers_celebrate_historic_vote_for_gay_marriage.webm/300px--NYers_celebrate_historic_vote_for_gay_marriage.webm.jpg"/>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam non risus dolor, a euismod leo. Phasellus viverra aliquet felis eget porttitor. Aenean sollicitudin, nulla id ultrices ullamcorper, sem lectus sagittis metus, ut sodales dui nunc id sem. Vestibulum nisl justo, aliquet id luctus eu, tincidunt sit amet diam. Suspendisse at nulla nisl. Duis sed sapien odio, eget commodo metus. Fusce ultricies lectus sit amet massa tristique eu ultricies elit accumsan. Donec mi mi, elementum sit amet faucibus sed, pellentesque sed neque. Pellentesque ut tincidunt dui. Nullam in urna vitae arcu lobortis porta sit amet a sapien. Maecenas at ultricies erat. Maecenas diam arcu, condimentum eu gravida quis, aliquam at nunc. Duis at fermentum orci. Donec porta feugiat purus faucibus euismod. In pretium auctor nulla, blandit dapibus ante auctor at.</p>
</div>
我画了一个快速模型以便更好地理解 -
Codepen - http://codepen.io/anon/pen/kJLrF
有没有办法实现这个? (不需要这样的标记,如果需要可以添加更多元素)
谢谢你的帮助!
答案 0 :(得分:1)
您需要将它们包装在另一个div
元素中,设置其max-width属性,然后为图像定义100%宽度,如下所示:
div {
max-width: 500px;
}
div img {
width: 100%;
}
请参阅此jsFiddle演示&gt; http://jsfiddle.net/Vt9CL/
答案 1 :(得分:1)
如果你坚持你建造的结构比JS是唯一的选择。
$(init);
function init()
{
var w = $("img").innerWidth();
$('p').css({"width": w});
}
将图像和段落文本包装在另一个容器中会更好。
答案 2 :(得分:1)
我玩了一下,我设法用html
和css
做到了:
HTML:
<div class="container">
<img src="http://dummyimage.com/300x200/000/fff&text=image" />
<p>Lorem ipsum [...]</p>
</div>
的CSS:
.container {
margin: 0 auto;
width: -moz-min-content;
width: -webkit-min-content;
}
<强> FIDDLE 强>
问题是它只适用于firefox和chrome。
答案 3 :(得分:0)
您可以使用这个小脚本完成此任务:
$('p').css('width',$('img').width() + 'px');
它正在使用width
的{{1}},并将其应用于img
的{{1}}。
这是jsFiddle
答案 4 :(得分:0)