2016-06-08 114 views
1

我正在开发一个带有AngularJS 1.x和Angular Material的Web应用程序。我正在尝试在md-display-4的大标题上创建着陆页。使用屏幕尺寸缩放字体大小?

这里是什么样子:

正如你所看到的,标题很好地满足了页面,并在同一行相符。

但是,这是在一个1680x1050监视器上。如果我移动浏览器窗口,我的小1366x768的显示器,我得到这个:

App on smaller screen

正如你所看到的,字体保持相同的物理尺寸和溢出到下一行,也不再居中。

如何确保字体根据屏幕尺寸缩放的一致外观?

这里是我的代码:

<html> 
    <head> 
     <title>FOOBY DOOBY</title> 

     <link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/angular_material/1.1.0-rc2/angular-material.min.css"> 
     <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,700,400italic"> 

     <link rel="stylesheet" href="styles.css" /> 

     <!-- Angular Material requires Angular.js Libraries --> 
     <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.5.3/angular.min.js"></script> 
     <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.5.3/angular-animate.min.js"></script> 
     <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.5.3/angular-aria.min.js"></script> 
     <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.5.3/angular-messages.min.js"></script> 

     <!-- Angular Material Library --> 
     <script src="http://ajax.googleapis.com/ajax/libs/angular_material/1.1.0-rc2/angular-material.min.js"></script> 

     <script src="app.js"></script> 
    </head> 
    <body ng-app="homePage"> 
     <div layout="column"> 
      <div layout layout-align="center"> 
       <h1 class="md-display-4">FOOBAR IS THE TITLE HERE</h1> 
      </div> 
      <div> 
       <!-- Description here --> 
      </div> 
     </div> 
    </body> 
</html> 

回答

3

您可以使用视单位,例如:

h1 { 
 
    font-size: 10vw; 
 
}
<h1>Foobar is the title here</h1>

Browser support reference

+1

是的,这是诀窍!阅读之前,它不能得到它的工作。原来我需要在CSS中选择'md-display-4'而不是'h1' –

1

看看到CSS媒体查询。它会根据屏幕大小为您提供对字体的控制。

您可以添加到引导程序的现有类来根据屏幕宽度修改字体大小。

0

视口单位使浏览器的缩放无效。但是,如果你愿意给它一个镜头,你可以通过按比例调整字体,屏幕尺寸:

  • 使用相对字体单位,比如EMREM
  • 然后使用JavaScript来调整根字体大小

document.documentElement.style.fontSize = x + 'rem';

  • X需要缩放到瓦特indow宽度,这是相当简单的事使用

document.documentElement.clientWidth

  • 随着窗口大小调整事件,但调整大小的宽度和缩放,尤其是考虑到跨浏览器支持之间进行区分时变得有点复杂,但如果您专注于为所有浏览器计算devicePixelRatio,这是可行的。

如果你不想与那个战斗,我已经建立了一个小型图书馆,properly handles font-scalling for all relative browsers IE9+