标签: viewport-units

CSS3 100vh在移动浏览器中不恒定

我有一个非常奇怪的问题...在每个浏览器和移动版本中我遇到这种行为:

  • 加载页面时所有浏览器都有一个顶级菜单(例如显示地址栏),当您开始滚动页面时,该菜单会向上滑动.
  • 100vh仅在视口的可见部分计算,因此当浏览器栏向上滑动100vh时增加(以像素为单位)
  • 所有布局都重新绘制并重新调整,因为尺寸已更改
  • 对用户体验的糟糕跳跃效果

怎么能避免这个问题?当我第一次听到视口高度时,我很兴奋,我认为我可以将它用于固定高度块而不是使用javascript,但现在我认为唯一的方法是实际上javascript与一些resize事件......

您可以在以下位置查看问题:示例站点

任何人都可以帮我/建议一个CSS解决方案吗?


简单的测试代码:

/* maybe i can track the issue whe it occours... */
$(function(){
  var resized = -1;
  $(window).resize(function(){
    $('#currenth').val( $('.vhbox').eq(1).height() );
    if (++resized) $('#currenth').css('background:#00c');
  })
  .resize();
})
Run Code Online (Sandbox Code Playgroud)
*{ margin:0; padding:0; }

/*
  this is the box which should keep constant the height...
  min-height to allow content to be taller than viewport if too much text
*/
.vhbox{
  min-height:100vh;
  position:relative;
}

.vhbox .t{
  display:table;
  position:relative;
  width:100%;
  height:100vh;
}

.vhbox .c{ …
Run Code Online (Sandbox Code Playgroud)

html css css3 viewport-units

209
推荐指数
14
解决办法
12万
查看次数

CSS单位 - vh/vw和%之间有什么区别?

我刚刚了解了一个新的,不常见的CSS单元.vh并分别vw测量视口高度和宽度的百分比.

我从Stack Overflow看了这个问题,但它使单位看起来更相似.

vw和vh单元如何工作

答案具体说明了

vw和vh分别是窗口宽度和高度的百分比:100vw是宽度的100%,80vw是80%等.

这看起来与%单位完全相同,这更常见.

在Developer Tools中,我尝试将值从vw/vh更改为%而反之亦然,并获得相同的结果.

这两者有区别吗?如果没有,为什么要引入这些新单位CSS3

css viewport-units

109
推荐指数
3
解决办法
5万
查看次数

如何实现max-font-size?

我想使用指定我的字体大小vw,如

font-size: 3vw;
Run Code Online (Sandbox Code Playgroud)

但是,我还想将字体大小限制为36px.如何才能实现max-font-size不存在的等价物- 是使用媒体查询的唯一选择?

css3 viewport-units

59
推荐指数
3
解决办法
7万
查看次数

是否可以在没有滚动条的情况下计算视口宽度(vw)?

如标题中所述,是否可以vw仅在css中计算没有滚动条的情况?

例如,我的屏幕宽度为1920px.vw回来1920px,太好了.但我的实际身体宽度只是像1903px.

有没有办法让我1903px只用css 检索值(不仅是直接的孩子body),还是我绝对需要JavaScript呢?

css viewport-units

56
推荐指数
5
解决办法
3万
查看次数

CSS Calc视口单元解决方法?

从我在其他 答案中看到的,CSS视口单元还不能在calc()语句中使用.我想要实现的是以下声明:

height: calc(100vh - 75vw)
Run Code Online (Sandbox Code Playgroud)

是否有一些解决方法我可以使用纯CSS实现这一点,即使视口单元不能在calc()语句中使用?或者只是CSS和HTML?我知道我可以使用javascript动态地完成它,但我更喜欢CSS.

html css css3 viewport-units css-calc

55
推荐指数
3
解决办法
10万
查看次数

CSS:广泛支持视图高度(vh)和视图宽度(vw)单位吗?

我使用100vh垂直居中div与行高.这个网站支持vh和vw在70%左右,这是一个公平的评估吗?您是否建议在构建网站时使用视口单元?我知道这有点主观,我只是寻找更有经验的网络开发人员的意见而不是我.

编辑:感谢大家的投入,我确实希望它在移动设备上看起来不错,所以我想我不得不放弃vh.

css viewport-units

37
推荐指数
4
解决办法
8万
查看次数

IE11 - flexbox和vh高度单位不兼容?

我正在尝试使用基于flexbox的布局来为我的页面获取粘性页脚.这适用于Chrome和Firefox,但在IE11中,页脚位于我的主要内容之后.换句话说,主要内容没有拉伸以填充所有可用空间.

这里的例子 - http://jsfiddle.net/ritchieallen/3tpuryso/

HTML:

body {
    border: red 1px solid;
    min-height: 100vh;
    display: -ms-flexbox;
    display: -webkit-flex;
    display: flex;
    -ms-flex-direction: column;
    -webkit-flex-direction: column;
    flex-direction: column;
}
header, footer  {
    background: #dd55dd;
}
main {
    background: #87ccfc;
    -ms-flex: 1 0 auto;
    -webkit-flex: 1 0 auto;
    flex: 1 0 auto;
}
Run Code Online (Sandbox Code Playgroud)

CSS:

<body>
    <header role="banner"><h1> .. </h1></header>
    <main role="main">
        <p>.....</p>
    </main>
    <footer>...</footer>
</body>
Run Code Online (Sandbox Code Playgroud)

在IE中 - 当容器高度单位以vh为单位测量时,如何在flex布局中获取主元素?我想看看这个行为是否是IE实现flexbox规范的方式中的错误的结果,但我在其他地方找不到任何提及此问题的方法.

html css flexbox internet-explorer-11 viewport-units

28
推荐指数
2
解决办法
2万
查看次数

如何为vh vw写css后备

任何人都可以解释回退如何在CSS中工作?我试图为vh和vw设置它,显然我没有得到它...

这是我尝试的解决方案,但不起作用.每次都会获取高度属性.

CSS:

-webkit-height: 5.2vh;
-moz-height: 5.2vh;
-ms-height: 5.2vh;
-o-height: 5.2vh;
height: 41px; /* The Fallback */
Run Code Online (Sandbox Code Playgroud)

css fallback css3 viewport-units

23
推荐指数
3
解决办法
2万
查看次数

"vw"Chrome中的计算单元格无效

新的vw(和vh,vminvmax)CSS单元非常有用calc.两者都在Chrome中工作正常(后者作为前缀-webkit-calc),但由于某种原因,我发现calc属性值包括v*单位,例如width: -webkit-calc(95vw - 25em)产生无效的属性值.这还没有实现,还是规范或错误?

css google-chrome viewport-units

19
推荐指数
2
解决办法
1万
查看次数

如何防止vh-units忽略滚动条?

我正在使用水平滚动条进行页面布局.我有一些水平顺序固定宽度的面板,它们都应该具有视口高度.我决定测试一下这个vh单元.

.panel { height: 100vh; }
Run Code Online (Sandbox Code Playgroud)

这工作正常,直到我得到一个滚动条.问题是,vh忽略滚动条使用的高度,因此添加了一个垂直滚动条.

我想从测量结果中减去滚动条的高度vh; 有没有办法做到这一点?

css units-of-measurement viewport-units

18
推荐指数
1
解决办法
1万
查看次数