bootstrap 화면 Layout 예 (초보자 지금 들리지 않는 몇 가지)
배경
Html 쓸 때 매번 화면 LAYOUT에 고민합니다. 훨씬 옛날 table과 gif 사용했지만 CSS 시대의 방법을 다시 공부하고, 요점을 남겨 미래의 참고가 된다고 생각합니다.
 요구사항

그림 1: 화면 LAYOUT 상상도
사용 도구
bootstrap : LAYOUT 담당. 전체 배치, 크기, 테두리, 색상을 제어. CSS만 실현되고 javascript 쓸 필요가 없는 곳이 편리.
jquery 는 자바스크립트 내에서 HTML을 조작할 때 편리한 기능을 제공한다. 이번은 ADD 버튼과 jstree의 초기화에 이용. 이제 한 번 누가 jquery 사용할 것이라고 생각했지만, 조사하면 의외로.
jstree 는 데이터를 트리 모양으로 표시하는 라이브러리. 이번에 동적으로 아이템을 추가하고 화면 높이의 영향을 확인하기 위해 이용한다.

그림 2 : jquery는 건재
기본 LAYOUT
우선 전체를 그린다. bootscrap에 LAYOUT하는 방법 여러 ( 그리드 , float , position , 디스플레이 , flex ) 있습니다. flex는 가장 유연하고 내용에 맞게 자동으로 개행되거나 적절하게 배치할 수 있습니다만, 이번 요건은 고정 위치에서 표시하므로 grid를 선택했습니다.
<body>
    <div class="container-fluid">
      <div class="row">                  <!-- 行 -->
        <div class="col-8">              <!-- 左側 -->
          <div class="row">
            <div class="col">up</div>     <!-- 上 -->
          </div>
          <div class="row">
            <div class="col">down</div>   <!-- 下 -->
          </div>
        </div>
        <div class="col-4">right</div>    <!-- 右側 -->
      </div>
    </div>
</body>
그리드 레이아웃은
1. 우선 container를 세운다. container-fluid는 container와 달리 화면 가득 사용할 수 있습니다.
1. 하나의 행(row)
1. 행 안에 2열(col)이 있다
2. 전부 12 분할 중, 좌측은 8(col-8), 우측은 4(col-4)로 배치한다
2. 좌측의 열중에 2개의 행을 배치해, 각각 1개만 열을 가지는
이하의 느낌이 됩니다.
 
그림 3: LAYOUT 효과
 테두리 추가
문자 이외에는 아무것도 모르기 때문에 테두리를 넣는다.
<body>
    <div class="container-fluid">
      <div class="row">
        <div class="col-8 border border-warning">       <!-- 枠線 -->
          <div class="row">
            <div class="col border border-warning">up</div>
          </div>
          <div class="row">
            <div class="col border border-warning">down</div>
          </div>
        </div>
        <div class="col-4 border border-warning">right</div>
      </div>
    </div>
</body>
다음은 효과
 
덧붙여 pad나 margin를 미조정할 필요가 있다면 bootstrap를 참고해 주십시오.
 높이 고정
보통 내용에 따라 태그의 높이가 변동합니다. 높이를 고정하려면 height 를 명시합니다. bootstrap이 제공하는 vh-100 ( CSS 의 height:100vh;에 해당)를 이용하여 window(=viewport)의 100%를 사용합니다.
또, height 를 퍼센트로 지정할 때, 부모 태그도 height 를 지정이 필요합니다, 하지 않는 태그가 자동 확장되어 결국 화면을 찢어 버립니다.
<body class="vh-100 vw-100">                 <!-- 全体の高さ -->
    <div class="container-fluid h-100 w-100">              <!-- 各層全部高さ設定 -->
      <div class="row h-100">
        <div class="col-8 border border-warning">
          <div class="row">
            <div class="col border border-warning">up</div>
          </div>
          <div class="row">
            <div class="col border border-warning">down
              <button id="add" class="btn btn-success">add</button>
            </div>
          </div>
        </div>
        <div class="col-4 border border-warning h-100">   <!-- 各層全部高さ設定 -->
            <div id="jstree" class="h-100 overflow-auto">   <!-- ここの高さ指定したい -->
              <ul>
                <li id="rootnode" data-jstree='{"opened":true,"selected":true}'>Root node</li>
              </ul>
            </div>
        </div>
      </div>
    </div>
</body>
 덤
LAYOUT은 아니지만 jstree를 사용할 때 함정에주의하십시오.
<body>
    <div class="container-fluid">
      <div class="row">                  <!-- 行 -->
        <div class="col-8">              <!-- 左側 -->
          <div class="row">
            <div class="col">up</div>     <!-- 上 -->
          </div>
          <div class="row">
            <div class="col">down</div>   <!-- 下 -->
          </div>
        </div>
        <div class="col-4">right</div>    <!-- 右側 -->
      </div>
    </div>
</body>
문자 이외에는 아무것도 모르기 때문에 테두리를 넣는다.
<body>
    <div class="container-fluid">
      <div class="row">
        <div class="col-8 border border-warning">       <!-- 枠線 -->
          <div class="row">
            <div class="col border border-warning">up</div>
          </div>
          <div class="row">
            <div class="col border border-warning">down</div>
          </div>
        </div>
        <div class="col-4 border border-warning">right</div>
      </div>
    </div>
</body>
다음은 효과

덧붙여 pad나 margin를 미조정할 필요가 있다면 bootstrap를 참고해 주십시오.
높이 고정
보통 내용에 따라 태그의 높이가 변동합니다. 높이를 고정하려면 height 를 명시합니다. bootstrap이 제공하는 vh-100 ( CSS 의 height:100vh;에 해당)를 이용하여 window(=viewport)의 100%를 사용합니다.
또, height 를 퍼센트로 지정할 때, 부모 태그도 height 를 지정이 필요합니다, 하지 않는 태그가 자동 확장되어 결국 화면을 찢어 버립니다.
<body class="vh-100 vw-100">                 <!-- 全体の高さ -->
    <div class="container-fluid h-100 w-100">              <!-- 各層全部高さ設定 -->
      <div class="row h-100">
        <div class="col-8 border border-warning">
          <div class="row">
            <div class="col border border-warning">up</div>
          </div>
          <div class="row">
            <div class="col border border-warning">down
              <button id="add" class="btn btn-success">add</button>
            </div>
          </div>
        </div>
        <div class="col-4 border border-warning h-100">   <!-- 各層全部高さ設定 -->
            <div id="jstree" class="h-100 overflow-auto">   <!-- ここの高さ指定したい -->
              <ul>
                <li id="rootnode" data-jstree='{"opened":true,"selected":true}'>Root node</li>
              </ul>
            </div>
        </div>
      </div>
    </div>
</body>
 덤
LAYOUT은 아니지만 jstree를 사용할 때 함정에주의하십시오.
<body class="vh-100 vw-100">                 <!-- 全体の高さ -->
    <div class="container-fluid h-100 w-100">              <!-- 各層全部高さ設定 -->
      <div class="row h-100">
        <div class="col-8 border border-warning">
          <div class="row">
            <div class="col border border-warning">up</div>
          </div>
          <div class="row">
            <div class="col border border-warning">down
              <button id="add" class="btn btn-success">add</button>
            </div>
          </div>
        </div>
        <div class="col-4 border border-warning h-100">   <!-- 各層全部高さ設定 -->
            <div id="jstree" class="h-100 overflow-auto">   <!-- ここの高さ指定したい -->
              <ul>
                <li id="rootnode" data-jstree='{"opened":true,"selected":true}'>Root node</li>
              </ul>
            </div>
        </div>
      </div>
    </div>
</body>
"check_callback" : true, 는 필수 data-jstree='{"opened":true} 넣지 않으면 트리가 열리지 않습니다 예제 전체
 jsfiddle 에서 시도할 수 있습니다.
<!DOCTYPE html>
<html>
  <link rel="shortcut icon" type="image/x-icon" href="https://github.com/favicon.ico">
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css" integrity="sha384-9aIt2nRpC12Uk9gS9baDl411NQApFmC26EwAOH8WgZl5MYYxFfc+NcPb1dKGj7Sk" crossorigin="anonymous">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jstree/3.2.1/themes/default/style.min.css" />
  <head>
    <meta charset="UTF-8">
    <title>jstree bootstrap demo</title>
  </head>
<body class="vh-100 vw-100">
    <div class="container-fluid h-100 w-100">
      <div class="row h-100">
        <div class="col-8 border border-warning">
          <div class="row">
            <div class="col border border-warning">up</div>
          </div>
          <div class="row">
            <div class="col border border-warning">down
              <button id="add" class="btn btn-success">add</button>
            </div>
          </div>
        </div>
        <div class="col-4 border border-warning h-100">
            <div id="jstree" class="h-100 overflow-auto">
              <ul>                         <!-- ↓↓↓↓ opened指定しないとツリー開けない -->
                <li id="rootnode" data-jstree='{"opened":true,"selected":true}'>Root node</li>  
              </ul>
            </div>
        </div>
      </div>
    </div>
</body>
<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/js/bootstrap.min.js" integrity="sha384-OgVRvuATP1z7JjHLkuOU7Xw704+h835Lr+6QL9UvYjZE3Ipu6Tp75j7Bh/kR0JKI" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jstree/3.3.10/jstree.min.js"></script>
<script>
  $('#jstree').jstree({
    "core" : {
      "check_callback" : true, // これがないと修正系関数効かない
    },
    "plugins" : [
      "wholerow",
    ]
  });
  $('#add').on("click", function(e, data){
    $('#jstree').jstree().create_node('rootnode', "new item");
  });
</script>
</html>
                
                    
        
    
    
    
    
    
                
                
                
                
                    
                        
                            
                            
                            Reference
                            
                            이 문제에 관하여(bootstrap 화면 Layout 예 (초보자 지금 들리지 않는 몇 가지)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
                                
                                https://qiita.com/izayoi5776/items/37aa353de7ee70c7a500
                            
                            
                            
                                텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
                            
                            
                                
                                
                                 우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)
                            
                            
                        
                    
                
                
                
            
<!DOCTYPE html>
<html>
  <link rel="shortcut icon" type="image/x-icon" href="https://github.com/favicon.ico">
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css" integrity="sha384-9aIt2nRpC12Uk9gS9baDl411NQApFmC26EwAOH8WgZl5MYYxFfc+NcPb1dKGj7Sk" crossorigin="anonymous">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jstree/3.2.1/themes/default/style.min.css" />
  <head>
    <meta charset="UTF-8">
    <title>jstree bootstrap demo</title>
  </head>
<body class="vh-100 vw-100">
    <div class="container-fluid h-100 w-100">
      <div class="row h-100">
        <div class="col-8 border border-warning">
          <div class="row">
            <div class="col border border-warning">up</div>
          </div>
          <div class="row">
            <div class="col border border-warning">down
              <button id="add" class="btn btn-success">add</button>
            </div>
          </div>
        </div>
        <div class="col-4 border border-warning h-100">
            <div id="jstree" class="h-100 overflow-auto">
              <ul>                         <!-- ↓↓↓↓ opened指定しないとツリー開けない -->
                <li id="rootnode" data-jstree='{"opened":true,"selected":true}'>Root node</li>  
              </ul>
            </div>
        </div>
      </div>
    </div>
</body>
<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/js/bootstrap.min.js" integrity="sha384-OgVRvuATP1z7JjHLkuOU7Xw704+h835Lr+6QL9UvYjZE3Ipu6Tp75j7Bh/kR0JKI" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jstree/3.3.10/jstree.min.js"></script>
<script>
  $('#jstree').jstree({
    "core" : {
      "check_callback" : true, // これがないと修正系関数効かない
    },
    "plugins" : [
      "wholerow",
    ]
  });
  $('#add').on("click", function(e, data){
    $('#jstree').jstree().create_node('rootnode', "new item");
  });
</script>
</html>
Reference
이 문제에 관하여(bootstrap 화면 Layout 예 (초보자 지금 들리지 않는 몇 가지)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/izayoi5776/items/37aa353de7ee70c7a500텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
                                
                                
                                
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)