2014-03-03 143 views
0

如何将li的宽度应用于a?这应该发生在调整大小。 所以a总是有li宽度。jquery调整大小适用父宽度

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', ''); 
     } 
    }); 
} 
+0

化妆锚显示块,不需要宽度100%http://jsfiddle.net/JCVnY/4/ – Huangism

+0

@Huangism感谢,但我想申请到锚用的li与jquery。 – user2505665

+0

你可以随时在锚点上设置显示CSS的道具来阻止使用jquery :)也最接近的是用来查找当前元素的父母,找到孩子,使用.find()http://api.jquery.com/找到/ – Huangism

回答

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

如果你的锚标记有“块”是应该使锚元素取宽度它的父容器的CSS属性。在这种情况下,它是“li” - 默认情况下,它是块级元素。

如果你是浮动你的列表元素,给你的“李”元素的宽度(使用CSS)。然后就像现在你可以使用“inline-block”给你的锚标签一个宽度(和/或高度)。

+0

请看看我的新小提琴http://jsfiddle.net/JCVnY/5/这是一个jQuery的metter而不是css。 – user2505665

+0

除非您绝对需要,否则我会删除: “position:absolute;” 然后加上: “display:block;” – Damon

1

为dragonslovetaco的所指出的,你真的应该使用CSS这一点 - 检查更新的提琴:

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

应用位置:相对于列表项目+宽度:继承于t他的a会导致他们复制宽度。

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