在 HTML 5 Web 组件中使用 font awesome

Posted

技术标签:

【中文标题】在 HTML 5 Web 组件中使用 font awesome【英文标题】:Use font awesome inside an HTML 5 Web Component 【发布时间】:2016-09-07 16:13:48 【问题描述】:

我开始使用 html5 Web 组件。我正在使用pollyfill webcomponents.js 并使用 chrome 进行开发。如何让字体真棒在 Web 组件中工作。我已经尝试过他们提供的 cdn 和 script 标签。我认为这会起作用:(但它没有,为了简洁我也省略了js)

.wrapper 
  height: 100%;
  width: 100%;
  box-shadow: 0 2px 1px rgba(0, 0, 0, .1);

.month-title 
  height: 20%;
  padding: 10px;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;

.day-body 
  height: 70%;
  padding: 10px;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;

#title 
  height: 10%;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  display: flex;

#monthTitle 
  flex-grow: 1;
  background-color: #4cff00;

.month-button 
  background-color: #ffd800;
<script src="https://use.fontawesome.com/4483f1d3f2.js"></script>

<div class="wrapper snow">

  <div id="title">

    <div id="leftButton" class="month-button">

      <i class="fa fa-chevron-left"></i>


    </div>

    <div id="monthTitle">

    </div>

    <div id="rightButton" class="month-button">

      <i class="fa fa-chevron-right"></i>


    </div>

  </div>

  <div class="month-title">

  </div>

  <div class="day-body">

  </div>

</div>

【问题讨论】:

代码看起来还不错。您是否尝试下载字体真棒文件然后使用它?这将缩小问题范围。 上面的代码 sn-p 似乎工作正常。如果你运行它,这里会显示左右箭头。你检查了吗?这不是你想要的吗? 这是在 shadow dom 的 web 组件中。它不只是在一个页面中。 @MichaelWriemerJr 你现在找到解决方案了吗? 这是similar question 【参考方案1】:

我想你想要这个(替换 cdn):

.wrapper 
  height: 100%;
  width: 100%;
  box-shadow: 0 2px 1px rgba(0, 0, 0, .1);

.month-title 
  height: 20%;
  padding: 10px;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;

.day-body 
  height: 70%;
  padding: 10px;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;

#title 
  height: 10%;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  display: flex;

#monthTitle 
  flex-grow: 1;
  background-color: #4cff00;

.month-button 
  background-color: #ffd800;
<link href="http://maxcdn.bootstrapcdn.com/font-awesome/4.1.0/css/font-awesome.min.css" rel="stylesheet">

<div class="wrapper snow">

  <div id="title">

    <div id="leftButton" class="month-button">

      <i class="fa fa-chevron-left" aria-hidden="true"></i>

    </div>

    <div id="monthTitle">

    </div>

    <div id="rightButton" class="month-button">

      <i class="fa fa-chevron-right" aria-hidden="true"></i>


    </div>

  </div>

  <div class="month-title">

  </div>

  <div class="day-body">

  </div>

</div>

【讨论】:

如果你现在去 font-awesome,他们不会给你 CDN 的链接。他们通过电子邮件向您发送脚本标签。这也位于 Web 组件内部。客户端 dom 被封装。这是我真正遇到的问题。

以上是关于在 HTML 5 Web 组件中使用 font awesome的主要内容,如果未能解决你的问题,请参考以下文章

5.css文本样式[上]

如何在window Form中使用Font Awesome?

web移动端CSS使用em单位设置font-size自适应

web字体图标的使用

在iOS中使用icon font

Font Awesome 在 Stenciljs 组件中不起作用