我在这里遇到一种情况,我无法理解。
.navigation {
position: absolute;
}
.navigation > img {
height: auto;
max-width: 50%;
}
<div class="navigation previous">
<img src="http://csharpcorner.mindcrackerinc.netdna-cdn.com/UploadFile/MinorCatImages/033256AM.png">
</div>
为什么怪异的div会得到png原始宽度的大小?我怎么解决这个问题?我需要父div使其子宽度和高度没有明确设置这些属性。
答案 0 :(得分:2)
因为您将导航样式应用于图像,而不是div。
如果您希望自己的图片占据div的大小,可以根据需要设置div的height
和width
,并为图片提供width: 100%
:
.navigation {
width: 20%; //change it
height: 20%; //change it
}
.navigation > img {
width: 100%;
}
分叉你的小提琴here。
答案 1 :(得分:1)
好吧,因为% percentage
这是真的。默认div width
的值为auto
,因此,如果您在% percentage
中定义子元素,那么在这种情况下,您的父级会根据子元素的宽度计算它的宽度当在% percentage
中将100%
的孩子分配给父母时。
在此处,我们将50% width
分配给child element
,而parent
没有任何宽度。但它会自动分配,因为孩子需要50%的父母。而在px
中两者都是相同的。
/*Using Percentage*/
.navigation {
position: absolute;
background:#111;
}
.navigation > img {
height: auto;
max-width: 50%;
}
/*using pixels*/
.previous {
position: absolute;
background:#111;
}
.previous > img {
height: auto;
width: 100px;
}
&#13;
<div class="navigation"><img src="http://csharpcorner.mindcrackerinc.netdna-cdn.com/UploadFile/MinorCatImages/033256AM.png">
</div>
<br><br><br><br><br>
<div class="previous">
<img src="http://csharpcorner.mindcrackerinc.netdna-cdn.com/UploadFile/MinorCatImages/033256AM.png">
</div>
&#13;