调整大小时的Jquery将父宽度应用于子级

时间:2014-03-03 16:41:05

标签: jquery responsive-design resize

如何将li的宽度应用于a?这应该在调整大小时发生。 因此,a始终具有li宽度。

http://jsfiddle.net/JCVnY/5/

var parentWidth = $('ul li').parent().width();
var $window = $(window);
$window.resize(function resize() {
    $('ul li').each(function () {
        if ($(this).closest('a').length == 1) {
            parentWidth = $(this).closest('a').css('width').replace('px', '');
        }
    });
}

3 个答案:

答案 0 :(得分:3)

你可以这样做:

var $window = $(window);
$window.resize(function() {
    $('ul li').each(function () {
        var parentWidth = $(this).width();
        if ($(this).find('a').length) {
            $(this).find('a').width(parentWidth)
        }
    });
});

<强> Updated Fiddle

答案 1 :(得分:1)

如果你的锚标签的css属性为“block”,那么应该使锚元素获取它的父容器的宽度。在这种情况下,它是“li” - 默认情况下,它是一个块级元素。

如果要浮动列表元素,请为“li”元素指定宽度(使用css)。然后就像你现在一样,你可以使用“inline-block”给你的锚标签一个宽度(和/或高度)。

答案 2 :(得分:1)

正如dragonslovetaco所说,你真的应该使用CSS - 检查你的更新小提琴:

http://jsfiddle.net/JCVnY/6/

应用位置:相对于列表项+具有宽度:继承a&#39; s将导致它们复制宽度。

a{background:red;display:inline-block; width:inherit;} li{position:relative; width:100%;}