时间:2023-09-09 06:00:01 | 来源:网站运营
时间:2023-09-09 06:00:01 来源:网站运营
响应式网页中的高度设计,需要降低浏览器的高度吗?:大家看到这个标题可能会以为是不是又写错别字了,响应式高度设计?你认真的吗? 因为“响应式Web设计”通常是在多个宽度和设备尺寸上检查浏览器。 我们一般通过减小宽度调整水平方向的响应能力,但是我很少看到通过减小浏览器高度来进行垂直响应的考虑。 此时,智米么内心可能有一丝的波动,并带有许些疑问:我们需要降低浏览器的高度吗? 是的,我们一直探讨一下。@media (min-width: 700px) { .element { /* do something.. */ }}
较少使用的是垂直媒体查询,它检查视口高度。@media (min-height: 500px) { .element { /* do something.. */ }} /* or */ @media (orientation: landscape) { .element { /* do something.. */ }}
.hero__title { margin-bottom: calc(10px + 5vh);}
如上所示,大比较大的屏幕(例如iMac 27英寸),下边距就会变的很大。我们有两种方式来解决边距过大的问题。@media (min-width: 2200px) { .hero__title { margin-bottom: 40px; }}
另一种方法是使用CSS clamp()比较函数,clamp() 函数的作用是返回一个区间范围的值。.hero__title { margin-bottom: clamp(10px, 5vh, 40px);}
<p class="hero"> <p class="hero__wrapper"> <p class="hero__content"><!-- content --></p> <img class="hero__thumb" src="figure.png" alt="" /> </p></p>
css.hero { height: 100vh;}.hero__thumb { flex: 0 0 550px; width: 550px;}
下面是解决此类问题几种解决方案:.hero__thumb { width: 400px; height: 300px; object-fit: contain; /* To avoid compressing the image */}@media (min-height: 700px) { .hero { height: 100vh; }}
好的,现在我们同意使用垂直媒体查询更好。然而,使用100vh是有风险的,因为即使我们限制了插图的大小,也可能无法对文本内容执行相同的操作。如果文本内容变长,同样的问题会再次发生,参见下图:@media (min-height: 700px) { .hero { min-height: 100vh; }}
@media (min-height: 700px) { .site-header { /* position: fixed or position: sticky */ }}
.nav__item--secondary { display: none;}@media (min-height: 700px) { .nav__item--secondary { display: block; }}
.nav__item { padding-top: 4px; padding-bottom: 4px;} @media (min-height: 700px) { .nav__item { padding-top: 10px; padding-bottom: 10px; }}
.modal__body { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); width: 500px;}
但是,当内容变长时就会有问题,模态框会垂直填满屏幕,用户将无法滚动它。.modal__body { position: absolute; left: 50%; top: 3rem; transform: translateX(-50%); width: 500px; min-height: 200px; max-height: 500px; overflow-y: auto;} @media (min-height: 700px) { .modal__body { top: 50%; transform: translate(-50%, -50%); }}
注意,我使用了min-height和max-height。 min-height是即使内容很短也要保持模态看起来好,max-height是使用特定值限制其高度,而不是添加固定的高度。关键词:高度,降低,浏览,设计,响应