元素无法从纵向切换到横向 ipad

Posted

技术标签:

【中文标题】元素无法从纵向切换到横向 ipad【英文标题】:elements not going to proper position switching from portrait to landscape ipad 【发布时间】:2015-02-27 01:20:12 【问题描述】:

我在横向和纵向模式下对 ipad 进行媒体查询,以便在每个视图中以某种方式定位元素。我的一切看起来都应该是这样,但是当我从纵向旋转到横向时,设计就会中断。如果我在横向上刷新,正确的布局会卷土重来,但我不明白为什么它会从纵向变为横向。从横向旋转到纵向时我没有任何问题。

这是 html

<main class="cf container">
    <section class="cf weather-forecast">
        <div class="loc-time">
            <h1 id="location"></h1>
            <p class="day" id="day"></span></p>
        </div>

        <div class="cf main-forecast">
            <p class="temp" id="temp"></p>
            <p class="summary" id="summary"></p>
            <p class="icon" data-icon="" id="icon"></p>
        </div>

        <hr>

        <div class="sub-forecast">
            <p>Feels Like <span class="sub-forecast--feels" id="feels"></span></p>
            <p>Windspeed <span class="sub-forecast--wind" id="wind"></span></p>
            <p>Humidity <span class="sub-forecast--humidity" id="humidity"></span></p>
        </div>

        <footer>
            <p>Weather source <a href="http://www.weather.com/"></a>weather.com</p>
        </footer>
    </section>
</main>

and CSS
     body,
    html 
  background-color: #ffffff;
  height: 100%;


body 
  font-family:"Apercu Light", Calibri, sans-serif;
  font-size: 100%;
  font-size-adjust:0.508;
  font-style:normal;
  font-weight:200;


.container 
  min-height: 100%;
  margin: 0 auto;
  position: relative;
  width: 80%; /* 1280 / 16 */


.day 
  font-size: 1.000em;


.icon 
  font-size: 4.688rem;
  margin-left: 5.21472392638%;
  top: 4.063rem;


#location 
  font-size: 1.500em;


.icon,
.summary 
  position: absolute;


.icon,
.temp,
.summary 
  display: inline-block;


.summary 
  font-size: 1.063em;
  margin-left: 5.36809815951%;
  top: 1.875em;


.main-forecast 
  position: relative;
  margin-bottom: 1.250em;
  margin-top: 2.188em;


.sub-forecast 
  margin-top: 1.875em;
  width: 40%;
  max-width: 222px;


.sub-forecast > p 
  line-height: 24px;


.sub-forecast--feels 
  margin-left: 43.2432432432%; /* 96 / 252 */


.sub-forecast--humidity 
  margin-left: 45.045045045%; /* 100 / 222 */


.sub-forecast--wind 
  margin-left: 38.2882882883%;


.temp 
  font-size: 8.438em;


.temp-fahrenheit 
  font-size: 2.188rem;
  margin-left: 1.250rem;
  vertical-align: super;


.weather-forecast 
  margin-left: 8.875em;
  margin-top: 20.438em;
  width: 50.9375%; /* 652 / 1280 */


footer 
  bottom: 0;
  font-family:"Apercu Regular", Calibri, sans-serif; 
  font-size: 0.688em;
  font-weight:normal;
  position: fixed;


/*--------------------------media Queries----------------------------------------*/

/***** 
  Tablet
*****/

@media only screen and (min-device-width : 768px) and (max-device-width : 1024px) and (orientation : landscape) 
  .sub-forecast 
    min-width: 238px;
  

  .weather-forecast 
    margin-top: 12.188em;
  
 /* end @media max-width: 728px orientation: landscape */

@media only screen and (min-device-width : 768px) and (max-device-width : 1024px) and (orientation : portrait) 
  .icon 
    padding-top: 10px;
  

  .icon,
  .summary 
    margin: 0;
    position: static;
  

  .icon,
  .temp,
  .summary 
    display: block;
  

  .sub-forecast 
    min-width: 240px;
  

  .weather-forecast 
    margin-top: 16.500em;
  
 /* end @media max-width: 1024px orientation: portrait */

【问题讨论】:

也许问题隐藏在视口中……没有代码示例很难说 ;-) 当然。刚刚添加了代码。 这是我使用的视口 【参考方案1】:

我想知道如果您所说的与字体大小有关的问题发生了变化,请尝试将此行添加到您的 CSS 中,如果有帮助的话。

body  -webkit-text-size-adjust: none; 

编辑:问题可能实际上与position: absolute; 相关,没有设置特定位置,并且在切换方向时会混淆。尝试将其添加到全局 CSS 中(不在媒体查询中):

.icon,
.summary 
  position: absolute;
  top: 0; /*new*/
  right: 0; /*new*/

如果仍然无法正常工作,请尝试将代码添加到 landscape 媒体查询中。

【讨论】:

试过了,没用。具体来说,这是什么问题

它一直浮动到返回横向模式时屏幕的左侧。
您有实时站点吗?否则,很难看到那里到底发生了什么。 我没有直播。我刚刚尝试创建一个严重错误的 github 页面。 发现了一些东西并更新了我的答案,试试看是否可以解决它。 谢谢。那成功了;为绝对定位元素声明右值和上值。

以上是关于元素无法从纵向切换到横向 ipad的主要内容,如果未能解决你的问题,请参考以下文章

从纵向旋转到横向时,iPad 布局会放大

在 iPad/iPhone 上在纵向和横向之间切换时响应站点被放大

Iphone:无法从我的横向视图切换回纵向视图

从横向旋转到纵向 (iPad) 后 UITableView 的奇怪行为

将 ipad 从纵向旋转到横向时,Div 保持相同的宽度

iPad 纵向应用程序以横向模式加载 iAd