這是一個唯一的CSS的解決方案,假設廣場上有一個明確定義的最大寬度。這意味着每當用戶加載頁面並決定減小瀏覽器寬度時,子div可能不會立即開始減少。
HTML:
<div>
<div>
</div>
</div>
CSS:
* {
margin: 0;
padding: 0;
}
body {
padding: 10px;
}
body > div {
height: 300px;
outline: 1px solid red;
padding: 20px;
}
div > div {
outline: 1px solid blue;
width: 20%;
max-width: 100px;
}
div > div:before {
content: "";
display: block;
width: 0;
padding-top: 100%;
}
而且,這裏有一個小提琴:http://jsfiddle.net/L8e89/。
以下是JavaScript解決方案。子div的最大寬度未定義。相反,當頁面加載時,JS程序會記住初始寬度。如果用戶決定縮小視口尺寸,這次子div將立即開始減小。
相同的HTML:
<div>
<div>
</div>
</div>
稍有不同的CSS:
* {
margin: 0;
padding: 0;
}
body {
padding: 10px;
}
body > div {
height: 300px;
outline: 1px solid red;
padding: 20px;
}
div > div {
outline: 1px solid blue;
width: 20%;
}
div > div:before {
content: "";
display: block;
width: 0;
padding-top: 100%;
}
而且,JS/jQuery的:
$(function() {
var win = $(window).eq(0),
initialWinWidth = win.outerWidth(),
$squareDiv = $("div > div").eq(0),
squareDivWidth = $squareDiv.outerWidth(),
ratio = squareDivWidth/initialWinWidth;
$(window).resize(function(evt) {
var winWidth = win.outerWidth();
$squareDiv.css("width", winWidth > initialWinWidth ? squareDivWidth : winWidth * ratio);
});
});
而且,小提琴:http://jsfiddle.net/Yy5ah/。
來源
2014-07-15 19:23:50
DRD
設置'max-width:XYZpx',然後將寬度設置爲x%。 – royhowie