基于移动定位改变CSS

时间:2011-11-11 23:30:44

标签: javascript android iphone mobile

当移动应用程序页面方向从横向更改为纵向时,更改css文件的最佳方法是什么,反之亦然。我只需要支持Android和iPhone。媒体查询似乎不是最干净的方式,任何其他想法?

4 个答案:

答案 0 :(得分:5)

实施例

/* For portrait */
@media screen and (orientation: portrait) {
  #toolbar {
    width: 100%;
  }
}

/* For landscape */

@media screen and (orientation: landscape) {
  #toolbar {
    position: fixed;
    width: 2.65em;
    height: 100%;
  }

  p {
    margin-left: 2em;
  }
}

有关详细信息,请参阅here

答案 1 :(得分:1)

首先给你的样式表包括一行id =“cssElement”或其他东西。

然后使用jQuery:

$(document).ready(function(){   

   // The event for orientation change
   var onChanged = function() {

      // The orientation
      var orientation = window.orientation;

      if(orientation == 90) { 
          $('#cssElement').attr('href', '/path/to/landscape.css');
      } else {
          $('#cssElement').attr('href', '/path/to/portrait.css');
      }

   };

   // Bind the orientation change event and bind onLoad
   $(window).bind(orientationEvent, onChanged).bind('load', onChanged);

});

答案 2 :(得分:1)

下面的JQuery代码似乎对我来说效果最好......绑定示例没有。

$(document).ready(function() {
               $(window).resize(function() {
                  alert(window.orientation);
                  });
               });

答案 3 :(得分:0)

您可以使用window.onorientationchange事件。