【问题标题】:I am trying to make a responsive text, but it's size is fixed no matter how big the screen is我正在尝试制作响应式文本,但无论屏幕有多大,它的大小都是固定的
【发布时间】:2020-04-26 09:41:00
【问题描述】:

在模拟器上文字看起来还可以,但在我的手机上它对线路来说太大了

<label text="just some regular text" class="text"> </label>
.text{
font-size: 20%;
}

【问题讨论】:

  • {N} 不支持 % 字体大小,您可以根据屏幕大小计算您想要的字体大小并在运行时在application level 上注入 CSS。

标签: javascript css angular typescript nativescript


【解决方案1】:

font-size 属性使用% 值不会使大小与视口大小成比例。它只是相对于父元素的字体大小调整文本大小。

例如:

body {
  font-size: 32px;
}

.text {
  font-size: 50%;
}
&lt;div class="text"&gt;This text is 50% of 32px = 16px;&lt;/div&gt;

要使字体大小响应,有几个选项:

  1. 使用媒体查询来定义各种断点的字体大小
  2. 使用视口百分比单位使字体大小随视口大小缩放

1.媒体查询

.text {
  font-size: 16px;
}

@media screen and (min-width: 600px) {
  .text {
    font-size: 24px;
  }
}
&lt;div class="text"&gt;This font size is 16px when the viewport is between 320px and 599px, and 24px when the viewport is 600px or larger.&lt;/div&gt;

2。视口百分比单位

如果您希望字体大小与视口大小成比例,您可以使用viewport percentage units 中的任何一个:

  • vw - 整个视口宽度的百分比
  • vh - 整个视口高度的百分比
  • vmin - 视口宽度或高度的百分比,以较小者为准
  • vmax - 视口宽度或高度的百分比,以较大者为准

例如:

  .text {
    font-size: 5vw;
  }

表示font-size 是视口宽度的 5%。如果视口为 1200 像素,则字体大小为 60 像素;如果视口更小,那么 600 像素,字体大小将是 30 像素。

有一些创造性和有趣的方法可以使用这些视口百分比单位以及calc() 来创建具有最小尺寸的响应式字体大小。例如:

.text {
  font-size: calc(16px + 2vh);
}
&lt;div class="text"&gt;This text 16px + 2% of the viewport width.&lt;/div&gt;

CSS Tricks 有一个few great articles 以其他方式使用视口百分比单位。

【讨论】:

  • 感谢您的详细回答。我试图为媒体查询做广告,但由于某种原因它们没有生效: @media screen and (min-width: 20) { .info{ font -尺寸:30; } }
  • 您需要在媒体查询中添加单位,例如@media screen and (min-width: 300px) {}
  • 如果您查看上面的示例,当视口为 320 像素和 600 像素时,这些媒体查询将启动。
  • 另外,您应该在字体大小中添加一个单位,例如30px
  • 你能看看我的操场,告诉我我做错了什么吗? play.nativescript.org/?template=play-ng&id=qBJyv1
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-10-03
  • 1970-01-01
  • 2021-04-20
  • 1970-01-01
  • 2019-06-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多