javascript - box-sizing x IE7, the last battle -


i've been searching through web solution can viabilize box-sizing in ie7 (i know, year 2014, project (therefore clients) still demand this). need box-sizing because entire project responsive.

i found boxsizing.htc , works pretty in case. but, unfortunately, not case. because i'm using angularjs , have div 3 columns (children divs float left) inside , can click on button change number of columns. when happens boxsizing.htc process calculations again making width , height smaller each time change number of columns.

so, thought, angularjs can solve this. found pretty interesting link

i adapt code this:

myapp.directive('resizable', function($window){ return {         restrict: 'a',         link: function(scope, element){             scope.initializewindowsize = function(){                 var win = angular.element($window);                 scope.windowheight = win.innerheight();                 scope.windowwidth = win.innerwidth();                 scope.sideheight = scope.windowheight - 80;                    /* ie 7 */                 var workarea = angular.element('.workarea');                 var workwidthpadding = parseint(workarea.css('paddingleft')) + parseint(workarea.css('paddingright')) + parseint(workarea.css('borderrightwidth')) + parseint(workarea.css('borderleftwidth'));                 var workheightpadding = parseint(workarea.css('paddingtop')) + parseint(workarea.css('paddingbottom')) + parseint(workarea.css('bordertopwidth')) + parseint(workarea.css('borderbottomwidth'));                  scope.workwidth = scope.windowwidth - 228 - 210 - workwidthpadding;                 scope.workheight = scope.sideheight - 60 - 25 - 2 - workheightpadding;                 console.log('height', scope.workheight);              };              scope.initializewindowsize();             angular.element($window).bind('resize',function(){                 scope.initializewindowsize();                 scope.$apply();              });          }     } }); 

but code don't solve of problems, when can relate div's width or height window width or height not cases.

finally, decide, let's make jquery plugin. came this:

$.fn.boxsizing = function(){ // if(navigator.appversion.indexof("msie 7.") != -1){      var thiswidth = this.width(),         thisheight = this.height(),          thisborderleft = parseint(this.css('borderleftwidth')),         thisbordertop = parseint(this.css('bordertopwidth')),         thisborderright = parseint(this.css('borderrightwidth')),         thisborderbottom = parseint(this.css('borderbottomwidth')),          thispaddingleft = parseint(this.css('paddingleft')),         thispaddingtop = parseint(this.css('paddingtop')),         thispaddingright = parseint(this.css('paddingright')),         thispaddingbottom = parseint(this.css('paddingbottom')),          newwidth = thiswidth - thisborderleft - thisborderright - thispaddingleft - thispaddingright,         newheight = thisheight - thisbordertop - thisborderbottom - thispaddingtop - thispaddingbottom;          console.log(newwidth, newheight);         this.css({'width':newwidth, 'height':newheight}); // } } 

this worked. can't figured how apply code in window resize.

$(window).resize(function(){   $('div.foo').boxresizing(); }); 

can help? don't know if angularjs can handle alone kind of stuff or, if need plugin and, how can make things work in window resize.

thank , sorry poor english.


Comments

Popular posts from this blog

android - Get AccessToken using signpost OAuth without opening a browser (Two legged Oauth) -

org.mockito.exceptions.misusing.InvalidUseOfMatchersException: mockito -

google shop client API returns 400 bad request error while adding an item -