随着屏幕尺寸的变化不断调整元素尺寸

Posted

技术标签:

【中文标题】随着屏幕尺寸的变化不断调整元素尺寸【英文标题】:Continuously adjust element size as screen size changes 【发布时间】:2016-07-30 03:31:26 【问题描述】:

有没有办法使用媒体查询来随着屏幕大小的变化(连续/平滑)逐渐改变 CSS 属性的值。而不是设置一堆有变化的断点(逐步)?

喜欢这个网站:http://www.bluegoji.com/? 当您缩小浏览器窗口时,页面顶部(导航栏)<ul><a> 标记的边距会不断减小。

这就是我想要实现的行为。

或者解决方案只是使用如此多的媒体查询以使其看起来变化顺利?

【问题讨论】:

【参考方案1】:

考虑使用视口百分比单位

来自规范:

5.1.2. Viewport-percentage lengths: the vw, vh, vmin, vmax units

视口百分比长度与 初始包含块。当初始的高度或宽度 包含块被更改,它们会相应地缩放。

vw unit - 等于初始包含块宽度的 1%。 vh unit - 等于初始包含高度的 1% 阻止。 vmin 单位 - 等于vwvh 中的较小者。 vmax 单位 - 等于vwvh 中的较大者。

DEMO

【讨论】:

【参考方案2】:

您要查找的不是媒体查询。 您可以按百分比设置宽度、边距和填充。这是正常的做法。

这是一个例子:

html

<div>
    <a>Link</a>
    <a>Link</a>
    <a>Link</a>
    <a>Link</a>
</div>

CSS

a 
    width:25%;
    display:block;
    float:left;

【讨论】:

【参考方案3】:

你给出的例子是这样使用 flexbox 的:

ul 
  margin: 0;
  padding:0;

li 
  list-style:none;
  margin:0;
  padding:0;
  text-align:center;
  outline: 1px solid silver;


@media screen and (min-width: 500px)
  ul 
    display: flex;
    flex-direction: row;
  
  li 
    flex-grow: 1;
  
<ul>
  <li>one</li>
  <li>two</li>
  <li>three</li>
</ul>

【讨论】:

以上是关于随着屏幕尺寸的变化不断调整元素尺寸的主要内容,如果未能解决你的问题,请参考以下文章

在 Xcode 中将图像尺寸调整为不同的 iPhone 屏幕尺寸

前端设置页面字体尺寸跟随屏幕大小而进行变化

如何使 AutoLayout 适应不断变化的图像尺寸

不能为不同的屏幕尺寸居中和弯曲分组元素

如何适应不同的屏幕尺寸

调整按钮以适应不同的屏幕尺寸