0

コードに関連する提案は大歓迎です:)

function str-remove-alphabet() :- この関数は 1 つの文字列を引数として取り、その文字列内のアルファベットをすべて削除し、int 値を返します。

// 3.str-alpha-remove function. removes alphabet from given string.   
@function str-remove-alphabet($string) {                              
// local variables.                                                 
// loop alphabets list to index occurence of alphabets in string    
@each $i in $list-alphabets {                                       
// if occurence found.                                            
  @if(str-index($string, $i)) {                                     
    $string: str-replace($string, $i, '');                          
    @return $string; // than replace that character with null.      
  } @else {                                                         
    @return $string; // otherwise return string.                    
  }                                                                 
 }                                                                   
}                                                                     

function font-size() :- この関数は 2 つの引数を取ります。1.font-size と 2.unit。font-size (例: 15px) を変換し、str-remove-alphabet 関数を使用して (例: 15) に変換します。正常に返された後、指定された単位 (例: 1.223342rem) へのフォント サイズの計算が開始されます。

// 1.font-size calculator based on font-size given and unit.                   

//noinspection CssInvalidFunction                                              

@function font-size($size, $unit: 'em') {                                      
$size: str-remove-alphabet('17px');                                          
$base-font: str-remove-alphabet('15px');                                     
 @if($unit == 'em') {                                                         
   $font-size: ($size / $base-font) em;                                       
   @debug $font-size;                                                         
   @return $font-size; // returns font-size in em format                      
 } @else if($unit == 'per') {                                                 
   $font-size: ($size / $base-font) * 100%;                                   
   @debug $font-size;                                                         
   @return $font-size; // returns font-size in percentage format              
 } @else {                                                                    
   $font-size: ($size / $base-font) * 1rem;                                   
   @debug $font-size;                                                         
   @return $font-size; // else return in rem format                           
 }                                                                            

}                                                                              

問題:- font-size() 内で str-remove-alphabet() を呼び出すことができません。 ここに画像の説明を入力

4

2 に答える 2

1

たとえば、最初の文字が一致しない場合、残りの文字をチェックせずに文字列全体を返すため、関数str-remove-alphabetは必要な処理を行っていない可能性が最も高いlist-alphabetです... 同様に、最初に一致する文字が見つかった場合は、文字列を取得し、結果を返します。したがって、 の場合$list-alphabets: "p" "x";、入力17pxは を生成し17xます。

私はあなたが次のようなことを意味していたと思います(とにかくstr-index呼び出されるので必要ありませstr-replaceん):

@function str-remove-alphabet($string) {

 //$list-alphabets: "p" "x";

 // local variables.                                                 
 // loop alphabets list to index occurence of alphabets in string    
 @each $i in $list-alphabets {                                       
    $string: str-replace($string, $i, '');
 }
 @return $string;
}
于 2017-04-20T10:48:37.040 に答える