如果我有一個帶有三個DIV A的DOM結構B & C其中C是B的子元素;而B是A的孩子 - 有沒有辦法將C的寬度(或高度)設置爲A的寬度(或高度)的百分比?將元素的寬度(或高度)設置爲較高祖先元素的百分比
PS:jQuery可用,並且可以使用任何jQuery功能。
如果我有一個帶有三個DIV A的DOM結構B & C其中C是B的子元素;而B是A的孩子 - 有沒有辦法將C的寬度(或高度)設置爲A的寬度(或高度)的百分比?將元素的寬度(或高度)設置爲較高祖先元素的百分比
PS:jQuery可用,並且可以使用任何jQuery功能。
HTML width
支持百分比。我不明白你需要做什麼特殊的事情才能使它工作。
該寬度是父元素的百分比。他想將其定義爲父母父母的百分比。 –
...會通過CSS設置B的寬度爲'100%'沒有完成那個目標,那麼?繼承是一件有力的事情。 – 2011-08-29 20:02:43
馬特是正確的。如果你*不需要那麼顯然你有元素不遵循通常的流*你應該重新考慮你的HTML結構,或者只是使用JavaScript。 – Halcyon
如果必須只計算一次(不調整大小問題),只需獲取A的高度並相應地設置C的高度。
var heightA = $('#divA').height();
var heightC = heightA * 0.50; // 50%
$('#divC').height(heightC);
那麼,在這種情況下,嘗試$('#c').height($('#c').parent().parent().height() * pct/100)
試試這個
$(function(){
var height = $("#A").height();
var width = $("#A").width();
$("#c")
.width(width * 0.10);//10%, you can set whatever percent you need
.height(height * 0.10);//10%, you can set whatever percent you need
});
這會工作:
var height_A = $('#div_A').height();
var width_A = $('#div_a').width();
$('#div_C').height(height_A*0.30); // for 30%
$('#div_C')width(width_A*0.30); // for 30%
假設A的父母有沒有定義的寬度和A和B不能是寬度:100%的更輕量級和敏感的CSS解決方案:
$('#divC').height($('#divA').height() * (percentage/100));
如果這是針對現實世界的問題,這是一個不好的解決方案。永遠不要用JS錘子解決佈局問題。
以下將是理想的。
#parent_of_a { width:<anything>; }
#a, #b { width:100%; }
#c { width:<whatever>% };
CSS%width要求定義元素的父寬度。
試試這個:
$(function(){
var aheight = $("#a").height();
var awidth = $("#a").width();
$("#c").width(awidth * 0.50).height(aheight * 0.50);
});
你不應該解決佈局問題與javascipt的,因爲JS可以禁用。這是說...
即使窗口調整大小,此代碼應該工作。
function setDimension() {
var containerWidth = $('#divC').parent().parent().width();
$('#divC').width(containerWidth * 0.5);
}
$(setDimension); // do it on initial load
$(window).resize(setDimension); // do it when window is resized
如果你可以更具體地瞭解你的html(發佈它可能?),你會得到更好的答案。我認爲一般的答案是不適用於CSS,但根據您的確切情況,可能會有一些解決方法。我相信它可以在jQuery中完成,但很難說沒有更多的細節(所有3 div divs百分比寬度等) –