2014-03-12 85 views
-1

我可以合法地更改使用的JS CSS宽度CSS - 改变固定的宽度来计算的宽度

width: 100% 

到:

width: calc(100% - 180px); 

即会JS后CSS3计算功能的工作已经插入它进入属性?

可能有更好的方法来做到这一点(float等),但这是由于左侧导航栏的外观。这也将工作与JQuery方法设置宽度?

+0

'将JS后CSS3钙功能的工作已经插入到它的属性'你能不能测试它?雅,它的作品!它不符合你的需求吗? –

+0

在这里发布问题通常很有用,即使我能很快找到答案,因为其他想法也会出现。在这种情况下,我并不完全乐于使用calc,所以一系列的回复是有帮助的 – vogomatix

+0

这是一个正确的观点! –

回答

1

我不能保证$().width('calc()')的兼容性,但它应该工作,如果你直接将其设置为宽度样式。

$('myselector').css('width','calc(100% - 180px)');

但有你不能把它直接在CSS的原因吗?

+0

在应用程序的某个时间点,菜单栏显示在以前没有的屏幕的左侧。我试图将代码/ css的更改保持在最低限度,而不是屈服于重新设置所有东西的诱惑... :-) – vogomatix

+0

是的,我这样做,它工作得很好。 – vogomatix

1

我认为你应该通过其他方式来解决这个问题。以下是一些选项:

  • 在元素上设置box-sizing: border-box;并在左侧添加180px填充。
  • 给内容包装(不包含导航栏)180px的左填充。

注:box-sizing: border-box可以说是所有元素优选的性质,因为它设置填充和边界时,不会弄乱你的宽度。

1

试试这个:

Some of the browsers not support calc(); so please try following jquery 
$('your id').css('width', '100%').css('width', '-=100px');