IBSheet.create 함수 호출 시 el 객체의 크기가 정의되지 않으면, IBSheet는 너비 100% 높이 800px로 고정됩니다.

el  객체가 크기를 갖고 있고, 리사이즈가 가능하면 IBSheet도 el Div 의 크기에 맞춰 자동 조정됩니다.

//시트객체 생성
IBSheet.create({
  id: "sheet", // 생성할 시트의 id
  el: "sheetDiv", // 시트를 생성할 Dom 객체 및 id
  options: opt // 생성될 시트의 속성
});

1. IBSheet를 그릴 DIV 객체가 리사이즈에 잘 반응하는지 확인한다.

순수 HTML 환경에서 IBSheet를 그릴 DIV가 리사이즈시 높이와 너비를 제대로 갖고 있는지 확인한다.

<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>가로세로 꽉찬 반응형 예제</title>
<style>
  /* 기본 리셋 */
  * {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
  }

  html, body {
    width: 100%;
    height: 100%;
    min-width: 1024px;
    min-height: 768px;
    font-family: Arial, sans-serif;
  }

  .page {
    display: flex;
    flex-direction: column;
    width: 100%;
    height: 100%;
    min-width: 1024px;
    min-height: 768px;
  }

  /* 고정 높이 영역 */
  .header, .form, .text-area {
    flex: 0 0 auto;
    padding: 20px;
    background-color: #f0f0f0;
    border-bottom: 1px solid #ccc;
  }

  .form {
    background-color: #e8e8e8;
    border-bottom: 1px solid #bbb;
  }

  .text-area {
    background-color: #f9f9f9;
    border-bottom: 1px solid #ccc;
    color: #333;
    font-size: 1.2rem;
  }

  /* 좌우 박스가 포함된 영역과 하단 박스가 동일 높이 분배 */
  .responsive-row,
  .responsive-box.bottom {
    flex: 1 1 0;
    display: flex;
    padding: 10px 20px;
    gap: 10px;
  }

  .responsive-row {
    background-color: #d0eaff;
    align-items: stretch;
  }

  /* 좌우 박스 */
  .responsive-box.left,
  .responsive-box.right {
    flex: 1 1 50%;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 1.5rem;
    border-radius: 8px;
    height: 100%;  /* 부모 높이 꽉 채우기 */
    min-height: 200px;
  }

  .responsive-box.left {
    background-color: #4CAF50;
    color: white;
  }

  .responsive-box.right {
    background-color: #FF9800;
    color: white;
  }

  /* 하단 박스 */
  .responsive-box.bottom {
    background-color: steelblue;
    color: white;
    margin: 0 20px 20px 20px;
    border-radius: 8px;
    justify-content: center;
    align-items: center;
    font-size: 1.5rem;
    min-height: 200px; /* 기본 높이 추가 */
  }

  /* footer 스타일 */
  .footer {
    flex: 0 0 auto; /* 고정 높이 */
    background-color: #222;
    color: #ccc;
    padding: 15px 20px;
    text-align: center;
    font-size: 0.9rem;
    border-top: 1px solid #444;
  }

  /* 폼 입력 요소 스타일 */
  .form label,
  .form input {
    display: block;
    margin-bottom: 10px;
  }
</style>
</head>
<body>
  <div class="page">
    <div class="header">
      <h1>상단 텍스트 영역</h1>
      <p>이곳은 페이지 상단에 표시되는 설명 텍스트입니다.</p>
    </div>

    <form class="form">
      <label for="name">이름</label>
      <input type="text" id="name" name="name" placeholder="이름을 입력하세요" />

      <label for="email">이메일</label>
      <input type="email" id="email" name="email" placeholder="이메일을 입력하세요" />
    </form>

    <div class="responsive-row">
      <div class="responsive-box left">IBSheet 왼쪽 박스</div>
      <div class="responsive-box right">IBSheet 오른쪽 박스</div>
    </div>

    <div class="text-area">
      <h2>공지사항</h2>
      <p>
        안녕하세요! 본 사이트는 최신 웹 표준과 반응형 디자인을 적용하여 제작되었습니다.<br />
        사용 중 궁금한 점이나 오류가 발견되면 언제든지 문의해 주세요.
      </p>
      <ul>
        <li>2025년 9월 1일 - 새로운 기능 추가 예정</li>
        <li>2025년 8월 15일 - 시스템 점검 완료</li>
        <li>2025년 7월 30일 - 사용자 피드백 반영 업데이트</li>
      </ul>
      <p>앞으로도 지속적인 개선을 통해 더 나은 서비스를 제공하겠습니다. 감사합니다.</p>
    </div>

    <div class="responsive-box bottom">
      IBSheet 하단 박스
    </div>

    <footer class="footer">
      <p>© 2025 Your Company. All rights reserved.</p>
      <p>문의: support@yourcompany.com | 전화: 02-1234-5678</p>
    </footer>
  </div>
</body>
</html>


2. IBSheet를 그린다.

 리사이즈시 el객체의 DIV 너비와 높이가 잘 설정되어 있다면 IBSheet를 초기화 한다.

<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>가로세로 꽉찬 반응형 예제</title>
  <link rel="stylesheet" href="https://www.ibsheet.com/v8/assets/lib/ibsheet/css/default/main.css"/>
<!--  ibsheet 필수 js -->
<script src="https://www.ibsheet.com/v8/assets/lib/iblicense.js"></script>
<script src="https://www.ibsheet.com/v8/assets/lib/ibsheet/ibsheet.js"></script>
<script src="https://www.ibsheet.com/v8/assets/lib/ibsheet/locale/ko.js"></script>

<!--  ibsheet 선택/추가 js -->
<script src="https://www.ibsheet.com/v8/assets/lib/ibsheet/plugins/ibsheet-common.js"></script>
<script src="https://www.ibsheet.com/v8/assets/lib/ibsheet/plugins/ibsheet-dialog.js"></script>
<script src="https://www.ibsheet.com/v8/assets/lib/ibsheet/plugins/ibsheet-excel.js"></script>
<script src="https://www.ibsheet.com/v8/assets/lib/ibsheet/plugins/jszip.min.js"></script>
<style>
  /* 기본 리셋 */
  * {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
  }

  html, body {
    width: 100%;
    height: 100%;
    min-width: 1024px;
    min-height: 768px;
    font-family: Arial, sans-serif;
  }

  .page {
    display: flex;
    flex-direction: column;
    width: 100%;
    height: 100%;
    min-width: 1024px;
    min-height: 768px;
  }

  /* 고정 높이 영역 */
  .header, .form, .text-area {
    flex: 0 0 auto;
    padding: 20px;
    background-color: #f0f0f0;
    border-bottom: 1px solid #ccc;
  }

  .form {
    background-color: #e8e8e8;
    border-bottom: 1px solid #bbb;
  }

  .text-area {
    background-color: #f9f9f9;
    border-bottom: 1px solid #ccc;
    color: #333;
    font-size: 1.2rem;
  }

  /* 좌우 박스가 포함된 영역과 하단 박스가 동일 높이 분배 */
  .responsive-row,
  .responsive-box.bottom {
    flex: 1 1 0;
    display: flex;
    padding: 10px 20px;
    gap: 10px;
  }


  .responsive-row {
    background-color: #d0eaff;
    align-items: stretch;
  }

  /* 좌우 박스 */
  .responsive-box.left,
  .responsive-box.right {
    flex: 1 1 50%;
    display: flex;
    justify-content: center;
    align-items: center;
    border-radius: 8px;
    height: 100%;  /* 부모 높이 꽉 채우기 */
    min-height: 200px;
  }

  .responsive-box.left {
    background-color: #4CAF50;
    color: white;
  }

  .responsive-box.right {
    background-color: #FF9800;
    color: white;
  }

  /* 하단 박스 */
  .responsive-box.bottom {
    background-color: #d0eaff;
    justify-content: center;
    align-items: center;
    min-height: 200px; /* 기본 높이 추가 */
     padding: 10px 20px;
  }

  /* footer 스타일 */
  .footer {
    flex: 0 0 auto; /* 고정 높이 */
    background-color: #222;
    color: #ccc;
    padding: 15px 20px;
    text-align: center;
    font-size: 0.9rem;
    border-top: 1px solid #444;
  }

  /* 폼 입력 요소 스타일 */
  .form label,
  .form input {
    display: block;
    margin-bottom: 10px;
  }

  .size{
    width:100%;
    height:100%;

  }
</style>
<script>
  document.addEventListener("DOMContentLoaded", function() {
    // DOM이 준비되었을 때 실행
    initSheet();
  });

  function initSheet(){
    var opt = {
      //공통기능 설정 부분
      "Cfg": {
        "SearchMode": 0,
        "Size":"Tiny",
        "MaxPages": 3,
        "SuppressMessage": 3,
        "SelFocusColor": 1
      },
      Def:{
        Col:{RelWidth :1}
      },
      //틀고정 좌측 컬럼 설정
      "LeftCols": [
        {"Header": "No","Type": "Int","MinWidth": 50,"Align": "Center","Name": "SEQ","CanMove": 0,"CanFocus": 0}
      ],
      //중앙(메인) 컬럼 설정
      "Cols": [
        {"Header": "부서명","Type": "Text","Name": "sDept","MinWidth":"170","Align": "Center","CanEdit": 1,"RawSort": 1,"Suggest": "|CEO|SI사업부|인사부|솔루션사업부|영업팀|기술연구소|경영지원팀","Color": "#EFFFEF"},
        {"Header": "팀명","Type": "Text","Name": "sTeam","MinWidth": "125","Align": "Center","CanEdit": 1,"RawSort": 1,"Suggest": "|임원|개발1팀|인사2팀|개발2팀|영업팀|기술지원팀|영업1팀|영업2팀|연구1팀|경영1팀","Color": "#EFFFEF"},
        {"Header": "직급","Type": "Text","Name": "sPos","MinWidth": "95","Align": "Center","CanEdit": 1,"RawSort": 1,"Suggest": "|대표이사|상무|부장|과장|대리|사원|차장|이사","Color": "#EFFFEF"},
        {"Header": "성명","Type": "Text","Name": "sName","MinWidth": "130","Align": "Center","CanEdit": 1,"RawSort": 1},
        {"Header": "성별","Type": "Enum","Name": "sSex","MinWidth": "70","Align": "Center","CanEdit": 1,"RawSort": 1,"Enum": "|남자|여자","EnumKeys": "|男|女"},
        {"Header": "연령대","Type": "Text","Name": "sAge2","MinWidth": "70","Align": "Center","CanEdit": 1,"RawSort": 1,"Suggest": "|10대|20대|30대|40대|50대|60대 이상","Color": "#EFFFEF"},
        {"Header": "거주지","Type": "Text","Name": "sAddr1","MinWidth": "80","Align": "Center","CanEdit": 1,"RawSort": 1,"Suggest": "|서울|경기|강원","Color": "#EFFFEF"},
        {"Header": "나이","Type": "Int","Name": "sAge","MinWidth": "65","Align": "Right","CanEdit": 1,"RawSort": 1,"Format": "#0세"},
        {"Header": "근속기간","Type": "Int","Name": "sYearOfService","MinWidth": "85","Align": "Right","CanEdit": 1,"RawSort": 1,"Format": "#0년"},
        {"Header": "급여","Type": "Int","Name": "sSalary","MinWidth": "100","Align": "Right","CanEdit": 1,"RawSort": 1,"Format": "#,##0원"}
      ],Events:{
        onRenderFirstFinish : function(paramObject) {
          //시트가 다 그려지고 나서 이후 동작 처리
        }
      }
    }
   
    //시트객체 생성 비동기로 동작한다. 시트 초기화 하고 조회 하려면 onRenderFirstFinish 이벤트나 onRenderFirstFinishAll 이벤트에서 처리해야 한다.
    IBSheet.create({
        id: "sheet", // 생성할 시트의 id
        el: "sheetDiv", // 시트를 생성할 Dom 객체 및 id
        options: opt
    });

     IBSheet.create({
        id: "sheet1", // 생성할 시트의 id
        el: "sheetDiv1", // 시트를 생성할 Dom 객체 및 id
        options: opt
    });

     IBSheet.create({
        id: "sheet2", // 생성할 시트의 id
        el: "sheetDiv2", // 시트를 생성할 Dom 객체 및 id
        options: opt
    });

    IBSheet.onRenderFirstFinishAll= function(obj){
      //조회 데이터
      let data = [{"sDept":"CEO","sTeam":"임원","sPos":"대표이사","sName":"황정열","sSex":"男","sAge2":"50대","sAddr1":"서울","sAge":50,"sYearOfService":15,"sSalary":10122200,"sBonus":1012220},{"sDept":"SI사업부","sTeam":"임원","sPos":"상무","sName":"강대호","sSex":"男","sAge2":"40대","sAddr1":"경기","sAge":47,"sYearOfService":15,"sSalary":6756170,"sBonus":675617},{"sDept":"SI사업부","sTeam":"개발1팀","sPos":"부장","sName":"김미경","sSex":"女","sAge2":"30대","sAddr1":"강원","sAge":39,"sYearOfService":12,"sSalary":4180950,"sBonus":418095},{"sDept":"SI사업부","sTeam":"개발1팀","sPos":"과장","sName":"김선희","sSex":"女","sAge2":"30대","sAddr1":"경기","sAge":34,"sYearOfService":7,"sSalary":3217000,"sBonus":321700},{"sDept":"SI사업부","sTeam":"개발1팀","sPos":"과장","sName":"최세희","sSex":"女","sAge2":"30대","sAddr1":"경기","sAge":32,"sYearOfService":3,"sSalary":2750800,"sBonus":275080},{"sDept":"SI사업부","sTeam":"개발1팀","sPos":"대리","sName":"이명희","sSex":"女","sAge2":"20대","sAddr1":"서울","sAge":29,"sYearOfService":3,"sSalary":2571900,"sBonus":257190},{"sDept":"SI사업부","sTeam":"개발1팀","sPos":"사원","sName":"노효일","sSex":"男","sAge2":"20대","sAddr1":"서울","sAge":23,"sYearOfService":1,"sSalary":1520150,"sBonus":152020},{"sDept":"SI사업부","sTeam":"개발1팀","sPos":"사원","sName":"원영국","sSex":"男","sAge2":"20대","sAddr1":"경기","sAge":28,"sYearOfService":2,"sSalary":2557000,"sBonus":255700},{"sDept":"SI사업부","sTeam":"개발1팀","sPos":"사원","sName":"이지선","sSex":"女","sAge2":"20대","sAddr1":"서울","sAge":24,"sYearOfService":2,"sSalary":2007500,"sBonus":200750},{"sDept":"인사부","sTeam":"인사1팀","sPos":"부장","sName":"김상도","sSex":"男","sAge2":"40대","sAddr1":"경기","sAge":40,"sYearOfService":9,"sSalary":4290850,"sBonus":429085},{"sDept":"인사부","sTeam":"인사1팀","sPos":"대리","sName":"한보라","sSex":"女","sAge2":"20대","sAddr1":"서울","sAge":28,"sYearOfService":5,"sSalary":1959500,"sBonus":195950},{"sDept":"인사부","sTeam":"인사2팀","sPos":"사원","sName":"장태우","sSex":"男","sAge2":"20대","sAddr1":"서울","sAge":28,"sYearOfService":1,"sSalary":1959500,"sBonus":195950},{"sDept":"인사부","sTeam":"인사2팀","sPos":"차장","sName":"정필석","sSex":"男","sAge2":"40대","sAddr1":"경기","sAge":40,"sYearOfService":4,"sSalary":3851150,"sBonus":385120},{"sDept":"솔루션사업부","sTeam":"임원","sPos":"이사","sName":"조성목","sSex":"男","sAge2":"40대","sAddr1":"경기","sAge":41,"sYearOfService":15,"sSalary":6313700,"sBonus":631370},{"sDept":"솔루션사업부","sTeam":"개발1팀","sPos":"부장","sName":"유봉근","sSex":"男","sAge2":"40대","sAddr1":"서울","sAge":42,"sYearOfService":5,"sSalary":5187610,"sBonus":518760},{"sDept":"솔루션사업부","sTeam":"개발1팀","sPos":"차장","sName":"오필환","sSex":"男","sAge2":"30대","sAddr1":"서울","sAge":37,"sYearOfService":4,"sSalary":3412510,"sBonus":341250},{"sDept":"솔루션사업부","sTeam":"개발1팀","sPos":"차장","sName":"송복석","sSex":"男","sAge2":"30대","sAddr1":"경기","sAge":39,"sYearOfService":6,"sSalary":3871680,"sBonus":387170},{"sDept":"솔루션사업부","sTeam":"개발1팀","sPos":"과장","sName":"김남연","sSex":"男","sAge2":"30대","sAddr1":"서울","sAge":36,"sYearOfService":4,"sSalary":3500700,"sBonus":350070},{"sDept":"솔루션사업부","sTeam":"개발1팀","sPos":"대리","sName":"한혜선","sSex":"女","sAge2":"20대","sAddr1":"서울","sAge":29,"sYearOfService":2,"sSalary":2746000,"sBonus":274600},{"sDept":"솔루션사업부","sTeam":"개발1팀","sPos":"사원","sName":"조미미","sSex":"女","sAge2":"20대","sAddr1":"서울","sAge":25,"sYearOfService":2,"sSalary":2297040,"sBonus":229700}];
      sheet.loadSearchData(data);
      sheet1.loadSearchData(data);
      sheet2.loadSearchData(data);
      
    }
  }


</script>
</head>
<body>
  <div class="page">
    <div class="header">
      <h1>상단 텍스트 영역</h1>
      <p>이곳은 페이지 상단에 표시되는 설명 텍스트입니다.</p>
    </div>

    <form class="form">
      <label for="name">이름</label>
      <input type="text" id="name" name="name" placeholder="이름을 입력하세요" />

      <label for="email">이메일</label>
      <input type="email" id="email" name="email" placeholder="이메일을 입력하세요" />
    </form>

    <div class="responsive-row">
      <div class="responsive-box left"><div id="sheetDiv" style="width:100%;height:100%"></div></div>
      <div class="responsive-box right"><div id="sheetDiv1" style="width:100%;height:100%"></div></div>
    </div>

    <div class="text-area">
      <h2>공지사항</h2>
      <p>
        안녕하세요! 본 사이트는 최신 웹 표준과 반응형 디자인을 적용하여 제작되었습니다.<br />
        사용 중 궁금한 점이나 오류가 발견되면 언제든지 문의해 주세요.
      </p>
      <ul>
        <li>2025년 9월 1일 - 새로운 기능 추가 예정</li>
        <li>2025년 8월 15일 - 시스템 점검 완료</li>
        <li>2025년 7월 30일 - 사용자 피드백 반영 업데이트</li>
      </ul>
      <p>앞으로도 지속적인 개선을 통해 더 나은 서비스를 제공하겠습니다. 감사합니다.</p>
    </div>
    
    <div class="responsive-box bottom">
      <div id="sheetDiv2" style="width:100%;height:100%"></div>
    </div>

    <footer class="footer">
      <p>© 2025 Your Company. All rights reserved.</p>
      <p>문의: support@yourcompany.com | 전화: 02-1234-5678</p>
    </footer>
  </div>
</body>
</html>


※ 예제 확인방법

위의 코드를 복사하여 .html  파일로 만든 후 브라우저로 실행한다.