8 回答
TA贡献2051条经验 获得超10个赞
如果元素width是直接或间接的通过js代码改变的话。在那行js代码之后加上domObj.style.height = (domObj.currentStyle||getComputedStyle(domObj,null)).width;
如果元素width是因为浏览器窗口尺寸变化改变的话。可以在window.onresize中设置
window.onresize = function() { domObj.style.height = (domObj.currentStyle||getComputedStyle(domObj,null)).width; }
TA贡献1810条经验 获得超5个赞
<style>
#box {
width: 100%;
height: auto;
overflow: hidden;
}
#box li{
position: relative;
float: left;
width: 200px;
border: 1px solid red;
}
#box li::before{
content: '';
display: block;
width: 100%;
padding-top: 100%;
}
</style>
使用伪元素撑起li的高度,使得li保持正方形。
li里面的内容需要使用div包裹一下,使用position固定定位在li上。
TA贡献1790条经验 获得超9个赞
$("#box").find("li").each(function(index,value){ var $width=$(value).width(); $(value).height($width); });
以上是代码,还有实现的效果截图
添加回答
举报