【问题标题】:Set min-width of content with viewport meta tag使用视口元标记设置内容的最小宽度
【发布时间】:2012-10-23 10:47:33
【问题描述】:

我需要将内容的最小宽度设置为 480 像素,以便在屏幕上查看

这就是我所拥有的

<meta name="viewport" content="width=device-width,  initial-scale=1, maximum-scale=1, minimum-scale=1">

我需要这样的东西,但显然这不起作用

<meta name="viewport" content="width=device-width,, min-width=480px,  initial-scale=1, maximum-scale=1, minimum-scale=1">

【问题讨论】:

标签: html responsive-design meta-tags


【解决方案1】:

这是一种仅适用于平板电脑和台式机的响应式网络版本的解决方案。

此代码我们动态禁用移动版本。在移动设备上:

<!-- Meta Responsive -->
<meta id="myViewport" name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<script>
window.onload = function () {
    if(screen.width <= 767) {
        var mvp = document.getElementById('myViewport');
        mvp.setAttribute('content','width=767');
    }
}
</script>
<!-- End of Meta Responsive -->

【讨论】:

    【解决方案2】:

    听起来您正在尝试设置页面上内容的最小宽度,而不是视口本身。This article 可能会帮助您。

    您可能希望这样做:

    @media all and (max-width: 480px) {
        // styles assigned when width is smaller than 480px;
    
    }
    

    像这样,在那个块中,您可以在宽度为 480 像素及以下的屏幕上发送内容的样式。

    希望这就是你想要的。

    【讨论】:

      【解决方案3】:

      我尝试了很多代码并在重新加载视口方面取得了一些不错的结果...但是,我认为最好的方法是创建一个完全响应的网站(最大 320 像素;)

      这是最好的方法:

      <script>
      //VIEWPORT
      
      function mobileFriendly() {
          setTimeout(function () {
              if( /Android|webOS|iPhone|iPad|iPod|BlackBerry/i.test(navigator.userAgent) ) {
                  var ww = ( document.documentElement.clientWidth < window.screen.width ) ? jQuery(window).width() : window.screen.width; //get proper width
                  var mw = 725; 
                  //alert ("width" + ww);
                  var ratio = ww / mw; //calculate ratio
                  //alert ("ratio: " + ratio);
                      if( ratio < 1 ){ //smaller than minimum size
                          jQuery("meta[name='viewport']").attr('content', 'initial-scale=' + ratio + ', maximum-scale=' + ratio + ', minimum-scale=' + ratio + ', user-scalable=yes, width=' + mw);
                      }else{ //regular size
                          jQuery("meta[name='viewport']").attr('content', 'initial-scale=1.0, maximum-scale=2, minimum-scale=1.0, user-scalable=yes, width=' + ww);
                      }
                  }
              }, 600);
          }
          jQuery( document ).ready( function(){
          mobileFriendly()
          });
          window.addEventListener("orientationchange", mobileFriendly, false);
      
      </script>
      <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
      <meta content="user-scalable=yes, maximum-scale=1.6, width=device-width, initial-scale=1, target-densitydpi=device-dpi" name="viewport">

      【讨论】:

        【解决方案4】:

        您的第二个解决方案确实有效——您可能没有看到width=device-width 后面有两个逗号,这可能就是您没有让它工作的原因。我已经复制了,没有问题。

        有时新鲜的眼睛可以做到这一切。

        编辑: 但是,是的,就您而言,媒体查询正是您所需要的。

        【讨论】:

          【解决方案5】:
          <script>
                  //viewport just for screens under/with 480px width other screen widths show the whole page resized
                  if(screen.width <= 480) {
                      document.getElementById("viewport").setAttribute("content", "width=device-width, initial-scale=1.0; maximum-scale=1.0; user-scalable=0;");} 
                  //for devices with more and less/equal than 480px width 
                  window.onresize = changeViewport;
                      function changeViewport(){
                          if(screen.width <= 480) {
                              document.getElementById("viewport").setAttribute("content", "width=device-width, initial-scale=1.0; maximum-scale=1.0; user-scalable=0;");} 
                          if(screen.width > 480) {
                              document.getElementById("viewport").setAttribute("content", "");}           
                          }
              </script>
          

          【讨论】:

          • JavaScript 在这种情况下是多余的。
          • 根据我的经验,这种对元数据的 JavaScript 操作效果很好。
          猜你喜欢
          • 2013-03-14
          • 2013-02-09
          • 1970-01-01
          • 2016-01-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多