2017-04-07 96 views
0

我使用谷歌的CSS框架物化,这真的很好。字体真棒和Unicode字符物化

该框架有自己的select元素,它可以动态地改变为ul。

我也使用fontawesome图标CSS框架和我的想法是把一个图标在选择如下

<select name="note[type]"> 
    <option value="1"><i class="fa fa-car"></i>Car</option> 
</select> 

但是,如果我写它不会显示在另一方面的图标:&#xf07e;代替它的<i>标签显示正确(注意,这不是汽车图标的实际代码)。

所以我的问题是:我从数据库动态填充图标,有没有一种方式,从图标类,如fa-car你通过PHP/JavaScript获得unicode字符?

感谢和问候

+0

这里是一个相关的帖子:http://stackoverflow.com/questions/31549631/programmatically-get-fontawesome-unicode-value-by-name。它建议使用window.getComputedStyle函数 –

回答

0

我已经在这里我自己的方式来解决,这是为那些谁可能有我的问题的答案:

所有在计算器上我发现的第一个如何使用这breakcss到一个数组功能:

private function BreakCSS($css) 
{ 

    $results = array(); 

    preg_match_all('/(.+?)\s?\{\s?(.+?)\s?\}/', $css, $matches); 
    foreach($matches[0] AS $i=>$original) 
     foreach(explode(';', $matches[2][$i]) AS $attr) 
      if (strlen(trim($attr)) > 0) // for missing semicolon on last element, which is legal 
      { 
       list($name, $value) = explode(':', $attr); 
       $results[$matches[1][$i]][trim($name)] = trim($value); 
      } 
    return $results; 
} 

我使用file_get_contents加载所有fontawesome代码并将其传递给BreakCss。

所有如下:

public function GetIcon($icon) 
{ 
    $icon = $icon.":before"; 
    $fa = file_get_contents(A_CSS.DIRECTORY_SEPARATOR."font-awesome.min.css"); 
    $arr = $this->BreakCSS($fa); 
    $char = ""; 
    foreach($arr as $selector=>$style) 
    { 
     if (strpos($selector, $icon)) 
     { 
      $char = str_replace("\\", "&#x", str_replace("\"", "", $style['content'])).";"; 
     } 
    } 
    return $char; 
} 

使用GetIcon("fa-car");

希望这有助于!