[Front-end🦁] #19 Linux, SASS


1. Linux
1-1. Cloud Service
業務上はdebian、redhatシリーズを多く採用している.
+)urlは、実際にサービスを実行するときに購入して貼り付けなければなりません.
1-2. NGINX
NGINXはWebサーバです!Apacheはかつて業界1位だったが、重くなるにつれてNGINXを使う人が増えている.NGINXとは?
1-3. Linux実習
余分にクマンドを勉強し、#18を整理した.
問題を解く
エイリアスを
  • lsコマンドですべての非表示ファイルを出力するように設定します.alias ls="ls -a"
  • に設定されている別名を解除してください.unalias ls
  • 個の長い指令を打って、間違えました.既存の条件でコマンドをロードおよび変更するにはどうすればいいですか?⬆️
  • 自動完了キーは何ですか?tab
  • の現在のフォルダに次のフォルダとファイルを作成し、treeコマンドを使用して次のように出力します.

  • treeにはデフォルトのインストールはありません.インターネットでtreeインストールコマンドを取得してください.apt-get install tree

  • フォルダツリーtree
    
    .
    ├── README.md
    ├── a
    │   ├── one.txt
    │   └── two.txt
    └── b
        ├── c
        │   └── four.txt
        └── three.txt
    
  • 現在のフォルダベースの拡張子はです.jsファイルを全部印刷します.cat *.js
  • 現在のフォルダベースの拡張子はです.結果はjsファイルです.txtに保存してください.cat *.js > result.txt
  • の現在のパスが表示されます.pwd
  • aフォルダのone.txtを変更します.名前をtxtに変更してください.mv one.txt change.txt
  • change.txtをbフォルダに移動してください.mv change.txt ../b
  • 2. SASS
    CSSが大きすぎると複雑になりメンテナンスが難しくなるので、変数を使って簡略化できます!CSSにコンパイルされた言語.iOSのUICOLOR、UIFONT Extensionのように!
    SASS、SCSS方式、SCSSは{コード;}です.SASSはPythonみたいCSSに似たSCSSを使用していますnode方式とruby方式があり、rubyを使います!
    2-0. 優先パラメータ
    VSC Live Sass拡張が必要です.
    //SCSS
    $font-stack: Helvetica, sans-serif;
    $primary-color : #333;
    
    body {
    	font: 100% $font-stack;
    	color: $primary-color;
    }
    ファイル名の前の表示はコンパイルされません.
    // style.scss 
    @import "variables";
    @import "mixin";
    @import "header";
    @import "main";
    
    // variables.scss
    $white: #fff;
    $dark-black: #1f1f1f;
    $light-black: #313030;
    各ファイルに読み込みます.分類して使用します.実行するとスタイルscssをコンパイルすると、@import文のために別のファイルにstyleを読み込みます.cssファイルを生成します.
    2-1. Nesting
    オーバーラップを避ける.at-rootキーワードを使用してオーバーラップを終了することもできます.
    // 부모 자식 관계 대로 중첩해서 사용하면 된다.
    .info-list {
      div {
        display: flex;
        font-size: 14px;
        color: #4f4f4f;
        dt {
          font-weight: 700;
          margin-right: 7px;
        }
      }
    }
    .add-icon {
    // 겹치는 속성명: 도 중첩해서 사용 가능.
      background : {
        image: url("./assets/arrow-right-solid.svg");
        position: center center;
        repeat: no-repeat;
        size: 14px 14px;
        // @at-root 를 쓰면 중첩에서 빠져나갈 수 있다.
        @at-root i {
          opacity: 0.5
        }
      }
    }
    2-2. ampersand (&)
    // &이 들어간 곳은 부모의 이름이 들어간다.
    .box {
        &:focus{} // 가상선택자
        &:hover{}
        &:active{}
        &:first-child{} 
        &:nth-child(2){}
        &::after{} // 가상요소
        &::before{} 
    }
    // 겹치는 클래스명에 쓰게 응용 가능.
    .box {
    	// global 키워드로 전역 변수로 변경 가능.
    	$line-normal: 1.34 !global;
      &-yellow {
        background: #ff6347;
      }
      &-red {
        background: #ffd700;
      }
      &-green {
        background: #9acd32;
      }
    }
    2-3. へんすう
    使用回数が2回を超える場合、または変更可能な場合に変数を指定します.領域変数.グローバル変数として指定できます.
    $변수이름:;
    @debug 변수 //이런식으로 값 확인 가능.
    type
    🔢 number : 1, .82, 20px, 2em,, ...
    🧵 string : "./images/a.png", bold, left, uppercase, ...
    🎨 color : green, #FFF, rgba(255,0,0,.5) 등
    👍 boolean : true, false
    📭 null
    📦 list : index 1부터 시작. -1 -2 -3 접근도 가능.
    🗺 map
    各タイプには組み込み関数があります.
    list
        // 공백 , 대신 /로 구분도 가능. 
        $font-size : 10px 12px 16px; //폰트사이즈 리스트
        $image-file : photo_01, photo_02, photo_03 //이미지 파일명 리스트
        //아래와 같은 형태로 사용(순회도 가능)
        list.nth(10px 12px 16px, 2); // 12px
        list.nth([line1, line2, line3], -1); // line3
        // 내장함수
        list.append(list,value,[separator])
        list.index(list,value)
        list.nth(list, n)
    map
        $font-weights: ("regular": 400, "medium": 500, "bold": 700); //글자 굵기 리스트
        map-get($font-weights, "medium"); // 500
        map-get($font-weights, "extra-bold"); // null
        //내장함수
        map-get(map,key)
        map-keys(map)
        map-values(map)
    2-4. 演算子
  • 比較< <= > >= (숫자) == != (모든 타입)
  • 単位は一致しなければならない.
  • 演算+ - * / % (문자열 + 가능)
  • boolean not and ortrue 1 false 0ここでもいいです
  • 2-5. Mixin
    コード再利用.複数回使用したblockを関数のように削除します.関連性の高いものは一緒に縛らなければならない.
    @mixin center-xy{
    	display: flex;
    	justify-content : center;
    	align-items : center;
    }
    .card{
    	@include center-xy; // 정의한 center-xy mixin을 사용하여 코드 한줄이면 끝!
    }
    .aside{
    	@include center-xy; 
    }
    // 진짜 함수처럼 인자를 이용할 수 있다.
    @mixin image-style($ul, $size, $repeat, $positionX, $positionY) {
      background-image: url($ul);
      background-size: $size;
      background-repeat: $repeat;
      background-position: $positionX $positionY;
    } 
    // @content를 이용해서 스타일을 추가할 수도 있다.
    @mixin my-font($x, $y) {
        font-size: $x * $y + px;
        @content
    }
    div {
        @include my-font(10, 10) {
            color: red;
        }
    }
    // 기본값을 줄 수 있다.
    @mixin flex($horizontal: cetner, $vertical: center) {
        display: flex;
        justify-content: $horizontal;
        align-items: $vertical;
    }
    @include flex; //로 사용할 수 있다. 만약 하나만 바꾸고 싶으면 인자 하나만 적어주면 된다.
    2-6. Extend
    他のクラスから属性値を取得できます.CSSでは、パケット処理を行う.完全に繰り返される場合にのみ使用します.
    .profile-user {
      background-image: url("../assets/user.jpg");
      background-size: cover;
    	background-position : 50% 50%;
      border-radius: 50%;
    	width : 50px;
    	height : 50px;
    }
    .comment-user {
      @extend .profile-user;
    }
    2-7. 選択者%
    // 기본 스타일을 선택자로 만들어서 extend로 가져다 쓸 수 있다. modal, btn(기본) 등에 쓸 수 있다.
    %modal {
      position: relative;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
      background-color: #fff;
      border-radius: 6px;
    }
    .login-modal {
      @extend %modal;
      width: 272px;
      height: 405px;
      padding: 10px 20px;
    }
    .event-modal {
      @extend %modal;
      width: 340px;
      height: 160px;
      padding: 18px;
    }
    初めて使った感想は…どうしてBEMの名前を使うのですか?と思っていたのですが、後で受講してみると、関数のように使えるので簡潔に使えます.
    2-8. 条件文
    if - else if - else
    @mixin theme-colors($light-theme: true) {
      @if $light-theme {
        background-color: $light-background;
        color: $light-text;
      } @else {
        background-color: $dark-background;
        color: $dark-text;
      }
    }
    .banner {
      @include theme-colors($light-theme: true);
      body.dark & { // 부모를 잡아서 처리.
        @include theme-colors($light-theme: false);
      }
    }
    2-9. 複文
    @for
    for ($변수) from (시작) through(){
    	// 반복할 내용
    }
    @for $i from 1 through 5 { // 5포함.
      // 해당 숫자를 넣고 싶은 곳에 #{$변수} 로 써야한다.
      // 숫자에 *10 하고 싶으면 {} 안쪽에 써야함.
      // #{$변수}의 결과는 문자열
      .photo-box:nth-child(#{$i}) { 
        background-image: url("../assets/phoster#{$i}.png");
      }
    } 
    @each
    @each ($변수) in (리스트나 맵){ 
    	// 반복할 내용
    }
    $color-palette: #dad5d2 #3a3532 #375945 #5b8767 #a6c198 #dbdfc8;
    @each $color in $color-palette {
      $i: index($color-palette, $color); //index는 list의 내장함수
      //index로 다시 가져올 수 있다.
      .color-circle:nth-child(#{$i}) {  //#{$i} 안감싸면 그냥 $i 문자열로 인식됨.
        background: $color;
        width: 20px;
        height: 20px;
        border-radius: 50%;
      }
    }
    @while
    @while 조건 {
    	// 반복할 내용
    }
    2-10. function
    必ず報われる.mixinとの違い
    @function 함수이름($매개변수) {
    	// 실행 코드
    	@return}
    @function scale-below($value, $base, $ratio: 1.618) {
      @while $value > $base {
        $value: ($value/$ratio);
      }
      @return $value;
    }
    $normal-font-size: 16px;
    .sup {
      // mixin과 다른 점 : @include 키워드 없이 사용.
      font-size: scale-below(20px, 16px); 
    }
    2-11. 組み込み関数
  • カラー関数lighten(color, amount):輝度を上げる(0~100%)darken(color, amount) mix(color1, color2, weight):混色
  • 数値関数max(number, ..)min(number, ..):最大最小返却parcentage(number):%を数値に変換comparable(num1,num2):数値1と数値2をブール値に戻して比較します.
  • 文字関数srt-insert(string,insert,index):文字列に必要な位置(index)に文字を入れ、新しい文字列を返します.str-index(string,substring):文字列のインデックス値を返します.to-upper-case(string):すべての文字列を大文字に変換します.to-lower-case(string):すべての文字列を小文字に変換します.
  • 確認関数unit(number):数値単位を返します.unitless(number):ブールvariable-exists(name):ブール関数の引数が現在の範囲内にあるかどうか、$は使用されません.
  • 3.ジョーントは
    今日は家のフロントを担当するジョーンの特別講座があります.
  • 良い開発者は私たちに、開発は基礎であり、問題を認識し、問題を解決する能力であり、コミュニケーションは基礎であると教えてくれた.

  • 私を差別化するためには、私が何が得意なのかを見つけることが大切です.
    特にToy Projectよりも、今のような勉強をブログにまとめることに重点を置いています.

  • また、行きたい会社だけを羨望の対象としないで、求人公告、技術ブログ、オープンソース、フロントエンド分析を行います.そして、実際に使うときは、サイトでどんな話題があるのか、私が持っている技術でどんな貢献ができるのかをよく考えてみましょう.

  • 1-3-5-10年の路線図を作成し、何をすればこの会社に行けるかを考え続けることも重要です.そして、なぜこの技術を使うのかという答えを出すことができるはずです.

  • 彼は多くの質問に答えたが、茫然とした恐怖は少し消えたようだ.
  • 4. JS Chaellenge
    interval & timeout
    // 인자 : 함수, 간격 ms.
    setInterval(sayHello, 5000); // interval : 일정 간격으로 일어나는.
    setTimeout(sayHello, 5000);  // timeout : 딜레이를 줌. 
    Date
    const date = new Date();
    date.getFullYear(); date.getMonth(); date.getDay();
    date.getHours(); date.getMinutes(); date.getSeconds();
    date.getMilliseconds();
    // 시계 만들기.
    function getClock() {
        const date = new Date();
        // padStart(2, "0"); - 어떤 문자열의 길이가 2 이상이면 아무것도 하지 않고,
        // 2 미만일 때 길이가 2가 될 때까지 앞에 0을 붙임. padEnd도 있다.
        const hours = String(date.getHours()).padStart(2, "0");
        const minutes = String(date.getMinutes()).padStart(2, "0");
        const seconds = String(date.getSeconds()).padStart(2, "0");
        clock.innerText = `${hours}:${minutes}:${seconds}`;
    }
    // 처음 들어갔을때는 출력이 되지 않으므로 한번은 직접 출력해준다.
    getClock()
    setInterval(getClock, 1000);
    今日は課題でDateを計算するjs Date timestamp標準はmsです演算を忘れたとき/1000はしていないので少し迷いましたそれでも40分くらいで終わりました.
    5.小回顧
    事実-何が起こったのか、何をしたのか.
  • Linux、SASSトレーニング、
  • トレーニング
    趙恩の講座を聞いた後、.
  • JSCiellengeの講義を聞いた後、課題を提出した.
  • feel-何かを感じて、
    find-はどんなウェブサイトがあります
    これまでLinuxは興味深い段階だった.难しくないことを勉强しているようです.
  • SASSは便利ですが、BEMと一緒に使うと重なりがあまり良くないようです.
  • SASSに精通している場合、jsでも関数変数のクリーンアップに役立ちます.
  • 技術ブログを真剣に運営し、アップロードされた内容を熟知しなければならない.
  • SWIFTでは、Dateは本当に派手すぎて、公式文書を読みながら征服しなければなりません.
  • future action-行動計画があるかどうか
  • Vending Machine SASSを使用して作成->1125#20で直接作成します.
  • のベルの中の内容を熟知しています.